Come trovare il feed RSS del canale su YouTube?


13

YouTube supporta ufficialmente i feed RSS del canale , ma sto incontrando gravi difficoltà nel trovare il feed. L'uso dell'URL del canale non è possibile almeno in Thunderbird. Firefox sembra attualmente non essere in grado di rilevare il feed (funzionava in passato, ma in qualche modo in modo poco gradevole e occasionalmente era necessario aggiornare la pagina) e Google Chrome non ha supporto RSS nativo per quanto ne so.

C'è un metodo per creare manualmente un feed , ma potrebbe non funzionare più ( channel-external-idsembra non esistere nella fonte di tutti i canali, c'è channel_idinvece):

  1. Visualizza il codice sorgente della pagina
  2. Cerca il seguente testo: channel-external-id
  3. Ottieni il valore per quell'elemento
  4. Sostituisci quel valore in questo URL:

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

canale di esempio: https://www.youtube.com/user/SesameStreet/videos

Risposte:


10

In realtà quello che hai suggerito è esattamente l'indirizzo del feed RSS, sebbene sia stato leggermente modificato dalla procedura descritta nella tua domanda, c'è una stringa corretta da cercare externalId.

Con sceneggiatura

Il seguente script estrarrà l'URL del feed e lo produrrà sulla 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;
    }
}

Risultato:

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

Dove salvarlo

  1. Puoi usarlo come script utente ( ad esempio con Greasemonkey o Tampermonkey ).
  2. Puoi usarlo come Bookmarklet .
  3. Copia il codice e incollalo nella console dello sviluppatore.

Nota: se si scelgono le opzioni 1o 2- sarebbe più conveniente sostituire il console.logcomando con alertper ottenere un popup anziché un messaggio alla console.


manualmente

  1. Apri la pagina del canale YouTube desiderata.
  2. Apri il view-sourcedi quella pagina (una delle seguenti):
    • Ctrl+ U.
    • Tasto destro del mouse -> View page source.
    • Aggiungi view-source:all'inizio dell'URL nella barra degli indirizzi.
  3. Cerca il termine externalId
  4. Subito dopo, ci sarà un codice casuale (l'id del canale) sotto forma di: UCoookXUzPciGrEZEXmh4Jjg
  5. Aggiungi il codice che hai trovato come suffisso https://www.youtube.com/feeds/videos.xml?channel_id=e ora è il tuo feed RSS per quel canale.

rssUrlpurtroppo non esiste nella fonte di ogni canale, per esempio view-source:https://www.youtube.com/channel/UC0YagOInbZxj10gaWwb1Nag/e view-source:https://www.youtube.com/channel/UCEBTfxJ13zkpZVbZTF3aukg.
user598527,

1
Lo controllerò e migliorerò la mia risposta, grazie
arieljannai,

Ho trovato la cosa, aggiornerò la mia risposta più tardi oggi!
Arieljannai,

@ user598527 Aggiornato :)
arieljannai il

Grazie per l'aggiornamento Non sono stato in grado di installare il bookmarklet utilizzando il metodo standard (trascinando il codice nella barra degli strumenti dei segnalibri). Sulla base della mia esperienza, i bookmarklet iniziano con javascript:, almeno, ciò aiuterà nella procedura di installazione del browser.
user598527

1

Il metodo che menzioni attualmente funziona, ma solo in alcune circostanze, il testo esatto da cercare è id canale esterno-dati e funziona in IE11, ad esempio. Molto più facile è ottenere l' <channel-id>URL del canale, composto in questo modo

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

Ad ogni modo c'è un modo molto più supportato per farlo, e riflette il fatto che a YouTube piace che tu abboni i canali che desideri collegare tramite feed RSS.

Se hai sottoscritto il canale per cui stai cercando il feed RSS, puoi trovarlo elencato nella pagina Gestisci abbonamento , lì puoi scorrere fino in fondo fino a trovare il pulsante "Esporta nei lettori RSS" : facendo clic su quel pulsante consentono di scaricare un file XML con i nomi dei canali e i feed RSS per tutti i canali sottoscritti.

Quei feed RSS saranno sempre aggiornati se qualcosa cambia nel modo in cui YouTube li espone.


1

Apri la console con F12ed esegui

window["ytInitialData"].metadata.channelMetadataRenderer.rssUrl

Ottengo l' TypeError: window.ytInitialData.metadata is undefined errore quando si esegue in Firefox. Questo comando dovrebbe funzionare su tutte le pagine di un canale?
user598527,

Hmm, sembra che non funzioni su tutte le pagine
Goweon,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.