Youtube Api avec ESP32 /micropython

API DE YOUTUBE AVEC MICROPYTHON ET ESP32

Bonjour a tous les développeurs et programmeurs je vous présente un petit projet qui est assez facile a faire mais surtout très rigolo et intéressante a faire, je vais essayer de vous expliquer le mieux possible, en avance je suis désolé par les possibles maladresses que je ferais dans ce poste.

Déjà je vais vous expliquer le but de ce projet : Dans ce projet on utilisera que l'ESP32 comme sera mentionnée un peu plus bas, on utilisera le système d'API de google pour récupérer 3 données très intéressantes de n'importe qu'elle chaine YouTube soit le total d'abonnées, le nombre de visualisations et la quantité de vidéos. Ceci est intéressant mais on verra comment on pourra l'associer a différents projets.

On commence par le plus important, par les objets utilises dans ce projet. En fait juste avec un ESP32 vous pouvez faire tout ce qu'on fera dans ce tutoriel, mais si vous avez l'ESP8266 vous devez juste faire attention a la compatibilité du code.

Dans ce tutoriel j'utiliserais l'ESP32


N'oublions pas que bien sur l'ESP32 sera flash avec micropython parce que sinon il ne pourra pas fonctionner :)

Alors la deuxième chose qu'on a besoin pour faire marcher ce projet c'est la librairie qui contient l'API pour pouvoir récupérer les 3 données qu'on a besoin, je vous mets ci dessous la librairie :


Dans cette libraire comme explique dedans on aura besoin de seulement 3 fichiers


Soit seulement ceux qui j'ai souligne en vert le "config.json" le "micropython_youtube_api.py" et finalement le "urequests.py"

A l'heure ou vous allez créer le projet dans votre éditeur de code préférée (ehem, VScode) vous allez devoir mettre ces 3 fichiers dans le même dossier. Suite a ça vous me direz que dans le config.json on nous demande une GoogleAPIKEY mais aussi l'ID d'une chaine YT, ne vous inquiétez pas je vous montre de suite comment faire.

Déjà on va devoir créer L'APIKEY soit la chose la plus importante pour faire marcher ce projet, on ira sur ce lien :
Suite a ça vous allez dans identifiants 
et vous cliquez dans créer un identifiant, et clé API, vous aurez un loooong code qui sera votre clé API surtout ne la montrez a personne, même si ça fait rien il vaut mieux se réserver ce code va ressembler a quelque chose comme ça : AIzaSyBOsto********HGrMkydpyV********** 
les étoiles c'est des chiffres et des lettres. Vous avez votre clé mais ceci ne suffit pas il faut la relier a l'API de yt car elle toute seule ne sert strictement a rien comme dit antérieurement
Vous devez la relier a cette API : 

C'est assez facile juste un bouton et choisir votre API, pas la peine de mettre des image pour vous guider :)
Suite a ça il nous faut la ChannelID, il y a des méthodes et des méthodes pour faire apparaitre celle ci mais la meilleure a c'est :
 
Vous allez dans n'importe qu'elle video:

Et ne surtout pas cliquer sur la chaine mais juste faire click droit et copier l'adresse du lien, vous aurez https://www.youtube.com/channel/UCSJ4gkVC6NrvII8umztf0Ow, quelque chose comme ça, vous allez devoir prendre juste les chiffres et lettres après la dernière parenthèse soit  UCSJ4gkVC6NrvII8umztf0Ow, et voila vous avez votre Channel ID.

Passons au code.

Tout d'abord on doit bien sur import la librairie soit faire 

import micropython_youtube_api

Suite a ça :

with open('config.json') as f:
    config = json.load(f)

with YoutubeAPI( config["channelid"], config["appkeyid"], config["query_interval_sec"] ) as data:
           
    print ("Subs {}".format( data.subs ) )
    print ("Views {}".format( data.views ) )
    print ("Videos {}".format( data.videos ) )

Bon ça fait trop de code d'une fois je sais, je vous explique la première partie permet de prendre les information qu'on va saisir dans le "config.json" et l'affecte a la variable "config" et finalement la deuxième partie permettra d'afficher la quentute de subs, views et vidéos qui a une chaine.

On revient au "config.json" 

{
    "ssid": "x",
    "ssid_password": "x",
    "appkeyid": "x",
    "channelid": "x",
    "query_interval_sec": 60
}
Vous allez devoir mettre vos info dans ce config d'avord le SSID de votre WIFI et le code de votre WIFI aussi, apres on va saisir l'API qu'on a cree et le channel id, et c'est tout, facile non?

Alors on a presque fini, mais vous vous en douterez sans se connecter a internet tout ceci ne sert a tien donc on fait  :

import network, json, time

wlan = network.WLAN(network.STA_IF)
wlan.active(True)

print ("Connecting to WiFi: {}".format( config['ssid'] ) )
wlan.connect( config['ssid'], config['ssid_password'])

# Wait until wifi is connected
while not wlan.isconnected:
    pass

Et bien sur ,vous devez le rajouter au code qu'on a fait juste avant sinon ça ne fonctionnera pas.

Passons au resultat finale : 


Vous aurez quelque chose qui ressemble fortement a ça les donnez que vous voyez c'est de la chaîne LofiGirl. 

Maintenant qu'on a fini je vous souhaite une agréable journée et si vous avez un problème n'hésitez pas a le poster en commentaire. :)

Commentaires