(modifié le 14 juin 2019 à 16:56)

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 :

domoticz-chacon-bouton-virtuel-ajout

Puis créer un capteur virtuel :

domoticz-chacon-bouton-virtuel-creer

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 :

  1. Aller sur  https://console.developers.google.com/apis/library
  2. Identifiez-vous avec un compte Google
  3. Accepter les conditions (si présentées) et continuer
  4. Cliquez en haut à gauche sur Sélectionner un Projet > Nouveau projet
  5. Patientez le temps que le projet soit crée (un minute maximum)
  6. Retournez sur l'accueil en cliquant sur le logo "Google APIs"
  7. Menu "Sélectionnez un projet" > cliquez "Blogmotion-youtube" (nom du projet)
  8. Dans le menu gauche cliquer sur "Identifiants"
  9. Cliquer sur le bouton "Créer des identifiants" > "Clé API"
  10. Votre clé apparaît, sauvregardez-là :

    Note : il n'est pas utile de restreindre la clé, cliquez sur Fermer.
  11. 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