¿Cómo encontrar el canal RSS en YouTube?

13

YouTube admite oficialmente los canales RSS , pero me enfrento a graves dificultades para encontrarlos. Usar la URL del canal no es posible al menos en Thunderbird. Parece que Firefox actualmente no puede detectar el feed (solía funcionar en el pasado, pero de vez en cuando era necesario y de alguna manera poco confiable y refrescante la página era necesaria) y Google Chrome no tiene soporte RSS nativo para mi conocimiento.

Hay un método para crear manualmente un feed , pero puede que ya no funcione ( channel-external-idparece que no existe en la fuente de todos los canales, en su channel_idlugar):

  1. Ver el código fuente de la página
  2. Busque el siguiente texto: channel-external-id
  3. Obtenga el valor de ese elemento
  4. Reemplace ese valor en esta URL:

https://www.youtube.com/feeds/videos.xml?channel_id=UCBcRF18a7Qf58cCRy5xuWwQ

canal de ejemplo: https://www.youtube.com/user/SesameStreet/videos

usuario598527
fuente

Respuestas:

10

En realidad, lo que sugirió es exactamente la dirección de la fuente RSS, aunque se modificó un poco del procedimiento descrito en su pregunta, hay una cadena correcta para buscar externalId.

Con guión

El siguiente script extraerá la URL del feed y la enviará a la consola:

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;
    }
}

Resultado:

The rss feed of the channel 'Sesame Street' is:
https://www.youtube.com/feeds/videos.xml?channel_id=UCoookXUzPciGrEZEXmh4Jjg

Donde guardarlo

  1. Puede usarlo como un script de usuario (con Greasemonkey o Tampermonkey, por ejemplo).
  2. Puedes usarlo como Bookmarklet .
  3. Copie el código y péguelo en la consola del desarrollador.

Nota: Si elige opciones 1o 2, sería más conveniente reemplazar el console.logcomando con alertpara obtener una ventana emergente en lugar de un mensaje a la consola.


A mano

  1. Abra la página del canal de YouTube que desee.
  2. Abra el view-sourcede esa página (uno de los siguientes):
    • Ctrl+ U.
    • Haga clic derecho -> View page source.
    • Agregue view-source:al comienzo de la url en la barra de direcciones.
  3. Busque el término externalId
  4. Inmediatamente después, habrá un código aleatorio (la identificación del canal) en forma de: UCoookXUzPciGrEZEXmh4Jjg
  5. Agregue el código que encontró como sufijo https://www.youtube.com/feeds/videos.xml?channel_id=y ahora esa es su fuente RSS para ese canal.
arieljannai
fuente
rssUrldesafortunadamente no existe en la fuente de cada canal, por ejemplo view-source:https://www.youtube.com/channel/UC0YagOInbZxj10gaWwb1Nag/y view-source:https://www.youtube.com/channel/UCEBTfxJ13zkpZVbZTF3aukg.
user598527
1
Lo comprobaré y
mejoraré
Encontré la cosa, ¡actualizaré mi respuesta más tarde hoy!
arieljannai
@ user598527 Actualizado :)
arieljannai
Gracias por actualizar No he podido instalar el marcador usando el método estándar (arrastrando el código a la barra de herramientas de marcadores). Según mi experiencia, los bookmarklets comienzan javascript:, al menos eso ayudará con el procedimiento de instalación del navegador.
user598527
1

El método que menciona actualmente funciona, pero solo en algunas circunstancias, el texto exacto a buscar es data-channel-external-id y funciona en IE11, por ejemplo. Mucho más fácil es obtener la <channel-id>URL del canal, que se compone de esta manera

https://www.youtube.com/channel/<channel-id>

De todos modos, hay una forma mucho más compatible de hacer esto, y refleja el hecho de que a YouTube le gusta que suscribas los canales que deseas vincular a través de RSS.

Si se suscribió al canal para el que está buscando el feed RSS, puede encontrarlo en la lista en su página Administrar suscripción , allí puede desplazarse hacia abajo hasta encontrar el botón "Exportar en lectores RSS" : al hacer clic en ese botón aparecerá le permite descargar un archivo XML que tiene los nombres de los canales y las fuentes RSS de todos los canales suscritos.

Esos canales RSS siempre se actualizarán si algo cambia en la forma en que YouTube los expone.

mrq
fuente
1

Abra la consola con F12y ejecute

window["ytInitialData"].metadata.channelMetadataRenderer.rssUrl
goweon
fuente
Me sale el TypeError: window.ytInitialData.metadata is undefined error cuando se ejecuta en Firefox. ¿Debería este comando funcionar en todas las páginas de un canal?
user598527
Hmm, parece que no funciona en todas las páginas
goweon