Parser les liens vidéos de Youtube 1
Au début, je voulais juste me faire un petit script qui m'affichait une vidéo au hasard, piochée dans une liste déjà existante.
Sauf que je me suis rendu compte, que ça aurait été fastidieux si je voulais enrichir ma liste de nouvelles vidéos.
Du coup, j'en suis arrivé à vouloir créer un parser.
Pour ce faire, il faut récupérer le flux RSS d'une chaîne, ce qui ressemble un truc comme ça : https://gdata.youtube.com/feeds/base/users/palmashow/uploads
J'ai ensuite crée un petit script en Python, pour parser tout le bordel. J'aurais pu et j'aurais dû le faire avec la librairie BeautifulSoup ou même avec HTMLParser...
Bon, ça marche, c'est vrai mais ce n'est pas élégant comme solution. Je pense recoder tout mon bazar un peu plus proprement (ceci dit, il faut bien commencer par quelque chose, quitte à faire un truc style usine à gaz, autant le faire au début).
J'aurais pu notamment utiliser l'API de Youtube, sauf qu'il faut s'inscrire afin d'obtenir une clé et blabla et blabla. Et vu que je n'aime pas la facilité, autant le faire à l'ancienne (Ouais !)
Ce que le script peut faire :
- Obtenir les 25 dernières vidéos (titre et image incluse) d'une chaîne
- Repérer les liens en double
- Donc il peut savoir s'il y a de nouvelles vidéos postées
- Le script obtient l'url des chaînes à partir du fichier chaine.txt
- Possibilité de lire les flux de X chaînes (si on a par exemple 40 chaînes, pour éviter d'envoyer des requêtes massivement aux serveurs, le script se contente de prendre les trois première chaînes, d'obtenir leur flux rss, et au prochainement lancement du script, ce sera trois autres chaînes différents qui seront lues etc.)
- Création d'un fichier parsed_channel.txt dans lequel contient les données parsées triés par date de upload et par chaîne
J'ai utilisé un autre script programmé par mes soins, permettant de générer une page html avec l'intégralité des liens parsés.
Plus de 1200 liens sur une seule page, j'ai pas foutu les vignettes, parce que le poids et le chargement de la page en prendraient un sacré coup.
C'pas cool ça ! Hein :)
J'ai prévu autres choses encore. Pas envie de m'arrêter en si bon chemin... ce sera l'occasion d'un prochain article.