Après le compteur Twitter, je vous propose de créer un compteur d'abonnés YouTube (subscribers) dans une sonde virtuelle domoticz.
Bien-sûr cela fonctionne avec n'importe quelle chaine YouTube, qu'il s'agisse de la votre ou non.
Création du capteur virtuel
Si vous avez déjà réalisé cette étape lors du tutoriel du compter Twitter passez au point suivant.
Dans Réglages > Matériel ajouter un périphérique de type "dummy" (factice en anglais), sans délai d'attente des données.
Nommez-le "Bouton virtuel" et faire ajouter :
Puis créer un capteur virtuel :
Entrer le nom "twitter" (ou votre pseudo twitter) et choisir le type "custom sensor".
Notez bien l'identifiant "idx" du compteur nous allons en avoir besoin pour la suite.
Personnaliser l'icone avec le logo YouTube
Pour que ce soit plus sympa vous pouvez personnaliser l'icône avec celle du logo YouTube.
API YouTube : création d'une clé
Pour créer votre clé qui interrogera l'API YouTube :
- Aller sur https://console.developers.google.com/apis/library
- Identifiez-vous avec un compte Google
- Accepter les conditions (si présentées) et continuer
- Cliquez en haut à gauche sur Sélectionner un Projet > Nouveau projet
- Patientez le temps que le projet soit crée (un minute maximum)
- Retournez sur l'accueil en cliquant sur le logo "Google APIs"
- Menu "Sélectionnez un projet" > cliquez "Blogmotion-youtube" (nom du projet)
- Dans le menu gauche cliquer sur "Identifiants"
- Cliquer sur le bouton "Créer des identifiants" > "Clé API"
- Votre clé apparaît, sauvregardez-là :
Note : il n'est pas utile de restreindre la clé, cliquez sur Fermer. - Enfin : depuis la bibliothèque activez l'API YouTube Data API v3
Récupérer l'ID de la chaine YouTube
Nous avons besoin de l'identifiant de la chaine YouTube à grapher, celle-ci est dans l'URL après "channel/" :
https://www.youtube.com/channel/xxxxxxxxxxxxxxxxxxxxxx
Si la chaine est à l'ancien format "user" tel que :
https://www.youtube.com/user/TD72PRO/
Alors utilisez ce site pour récupérer l'ID, ou bien récupérez-le depuis l'URL :
https://www.googleapis.com/youtube/v3/channels?key=VOTRE_CLE_API&forUsername=TD72PRO&part=id
Cela donne "UC9_nxvBohH1G2yR77XTdA2g" pour la chaine TD72PRO.
Nous avons maintenant une clé API et l'ID de la chaine YouTube à grapher, continuons.
Et voici le script (bash)
C'est un script en bash qui va récupérer le nombre d'abonnés à intervalle régulier et l'injecter dans notre sonde domoticz correspondant au nombre d'abonnés YouTube (subscribers).
L'API twitter étant une vraie usine à gaz j'utilise celle de twimg, qui appartient maintenant à twitter et qui permet de lire le nombre d'abonnés en JSON depuis une simple URL sans token ni clé d'authentification.
Récupérez le script ▶️ github (raw).
Ce script sera exécuté par l'utilisateur pi (qui n'est pas root) à l'emplacement suivant :
/home/pi/scripts/youtube.sh
Rendre le script exécutable : chmod +x *.sh
puis exécutez-le pour vérifier le nombre d'abonnés est bien injecté dans le capteur virtuel.
Ajout dans crontab
Pour exécuter ce script toutes les 30 minutes nous ajoutons une entrée dans le crontab de l'utilisateur pi avec :
crontab -e
Choisir nano si le choix de l'éditeur est demandé.
Et ajouter :
# maj abonnes youtube (toutes les 30min) */30 * * * * /home/pi/scripts/youtube.sh >> /dev/null 2>&1
Vérifiez que le crontab met bien à jour dans domoticz en regardant la date de dernière mise à jour de notre fake capteur.
Pour lancer le crontab toutes les minutes et ainsi faciliter vos tests il suffit de saisir mettre 5 étoiles :
* * * * * /home/pi/scripts/youtube.sh >> /dev/null 2>&1
Si tout fonctionne pensez à bien repasser la fréquence d'exécution à 30min, ou toute autre valeur différente suivant ce dont vous avez besoin.
Bonus : une version en PHP
Et voici une version PHP au cas où (source) :
<?php $idchaine="UC9_nxvBohH1G2yR77XTdA2g"; $apikey="***************************"; $url = "https://www.googleapis.com/youtube/v3/channels?part=statistics&id=".$idchaine."&key=".$apikey; $subscribers = @file_get_contents($url); $response = json_decode($subscribers, true ); $count = intval($response['items'][0]['statistics']['subscriberCount']); echo "La chaine YouTube a $count abonnés :)"; ?>
Autre bonus PHP intéressant pour les chaines ayant <1000 abo (non testé).
Conclusion
J'espère que l'ajout de ce compteur vous sera utile, que ce soit pour faire clignoter vos lampes Hue quand vous passerez le cap des 100 000 ou bien pour suivre la progression de chaines YouTube qui vous plaisent.
J'essaierai de vous proposer un compteur pour instagram et facebook si le temps me le permet.
Auteur : Mr Xhark
Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter
Un commentaire
Bonjour,
Merci pour ce tuto.
As tu déjà fait le script pour Insta ?