YouTube prend officiellement en charge les flux RSS de la chaîne , mais je suis confronté à de graves difficultés pour trouver le flux. L'utilisation de l'URL du canal n'est pas possible, du moins dans Thunderbird. Firefox ne semble actuellement pas en mesure de détecter le flux (il fonctionnait jadis, mais il était parfois nécessaire de rafraîchir et d'actualiser la page) et Google Chrome ne dispose d'aucun support RSS natif à ma connaissance.
Il y a ne méthode pour créer manuellement un flux , mais cela risque de ne plus fonctionner (channel-external-id
ne semble pas exister dans le source de tous les canaux, mais il y a channel_id
):
- Afficher le code source de la page
- Recherchez le texte suivant:
channel-external-id
- Obtenir la valeur pour cet élément
- Remplacez cette valeur dans cette URL:
https://www.youtube.com/feeds/videos.xml?channel_id=UCBcRF18a7Qf58cCRy5xuWwQ
exemple de chaîne: https://www.youtube.com/user/SesameStreet/videos
En fait, ce que vous avez suggéré, est exactement l’adresse du fil RSS, bien que la procédure décrite dans votre question ait été légèrement modifiée, la chaîne correcte à utiliser pour la recherche est externalId
.
Le script suivant extraira l’URL du flux et l’enverra sur la console:
_for (var arrScripts = document.getElementsByTagName('script'), i = 0; i < arrScripts.length; i++) {
if (arrScripts[i].textContent.indexOf('externalId') != -1) {
var channelId = arrScripts[i].textContent.match(/\"externalId\"\s*\:\s*\"(.*?)\"/)[1];
var channelRss = 'https://www.youtube.com/feeds/videos.xml?channel_id=' + channelId;
var channelTitle = document.title.match(/\(?\d*\)?\s?(.*?)\s\-\sYouTube/)[1];
console.log('The rss feed of the channel \'' + channelTitle + '\' is:\n' + channelRss);
break;
}
}
_
Résultat:
_The rss feed of the channel 'Sesame Street' is:
_https://www.youtube.com/feeds/videos.xml?channel_id=UCoookXUzPciGrEZEXmh4Jjg
Remarque: Si vous choisissez les options _1
_ ou _2
_ - il serait plus pratique de remplacer la commande _console.log
_ par alert
pour obtenir un menu contextuel au lieu d'un message à la console.
view-source
_ de cette page (une des suivantes): View page source
_.view-source:
_ au début de l'URL dans la barre d'adresse.externalId
UCoookXUzPciGrEZEXmh4Jjg
_https://www.youtube.com/feeds/videos.xml?channel_id=
_ et c'est maintenant votre flux RSS pour ce canal.La méthode que vous mentionnez actuellement fonctionne, mais seulement dans certaines circonstances, le texte exact à rechercher est data-channel-external-id et fonctionne dans IE11, par exemple. Il est beaucoup plus facile d’obtenir le <channel-id>
dans l’URL du canal, qui est composé comme ceci
https://www.youtube.com/channel/<channel-id>
Quoi qu'il en soit, il existe depuis longtemps un moyen plus efficace de le faire, et cela reflète le fait que YouTube vous invite à souscrire aux chaînes que vous souhaitez lier via un flux RSS.
Si vous avez souscrit la chaîne pour laquelle vous recherchez le flux RSS, vous pouvez la trouver dans la liste = page de gestion de l'abonnement . Vous pouvez alors la faire défiler jusqu'à ce que vous trouviez le "Exporter dans" "Lecteurs RSS" : cliquer sur ce bouton vous permettra de télécharger un fichier XML contenant les noms de chaînes et les flux RSS de toutes les chaînes souscrites.
Ces flux RSS seront toujours mis à jour si quelque chose change dans la façon dont YouTube les expose.