web-dev-qa-db-fra.com

Comment trouver le flux RSS de la chaîne sur YouTube?

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):

  1. Afficher le code source de la page
  2. Recherchez le texte suivant: channel-external-id
  3. Obtenir la valeur pour cet élément
  4. 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

11
user598527

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.

Avec script

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

Où le sauver

  1. Vous pouvez l'utiliser comme script utilisateur (avec Greasemonkey ou Tampermonkey par exemple).
  2. Vous pouvez l'utiliser comme un Bookmarklet .
  3. Copiez le code et collez-le dans la console du développeur.

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.


Manuellement

  1. Ouvrez la page de la chaîne YouTube souhaitée.
  2. Ouvrez le _view-source_ de cette page (une des suivantes):
    • Ctrl+U.
    • Clic droit -> _View page source_.
    • Ajoutez _view-source:_ au début de l'URL dans la barre d'adresse.
  3. Rechercher le terme externalId
  4. Juste après, il y aura un code aléatoire (l'ID de canal) sous la forme de: _UCoookXUzPciGrEZEXmh4Jjg_
  5. Ajoutez le code que vous avez trouvé en tant que suffixe à _https://www.youtube.com/feeds/videos.xml?channel_id=_ et c'est maintenant votre flux RSS pour ce canal.
8
arieljannai

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.

1
mrq