Como encontrar o feed RSS do canal no YouTube?

13

O YouTube suporta oficialmente os feeds RSS do canal , mas estou enfrentando sérias dificuldades em encontrar o feed. Usar o URL do canal não é possível pelo menos no Thunderbird. No momento, o Firefox parece não conseguir detectar o feed (costumava funcionar no passado, mas ocasionalmente era necessário atualizar a página de maneira pouco confiável e ocasionalmente necessária) e o Google Chrome não tem suporte nativo de RSS para o meu conhecimento.

Existe um método para criar manualmente um feed , mas ele pode não funcionar mais ( channel-external-idparece não existir na fonte de todos os canais, existe channel_id):

  1. Ver o código fonte da página
  2. Procure o seguinte texto: channel-external-id
  3. Obtenha o valor para esse elemento
  4. Substitua esse valor neste URL:

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

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

user598527
fonte

Respostas:

10

Na verdade, o que você sugeriu é exatamente o endereço do feed RSS, embora tenha sido um pouco alterado em relação ao procedimento descrito em sua pergunta, a string correta a ser pesquisada é externalId.

Com script

O script a seguir extrairá o URL do feed e o exibirá no 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;
    }
}

Resultado:

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

Onde salvar

  1. Você pode usá-lo como um script de usuário (com Greasemonkey ou Tampermonkey, por exemplo).
  2. Você pode usá-lo como um Bookmarklet .
  3. Copie o código e cole-o no console do desenvolvedor.

Nota: Se você escolher opções 1ou 2- seria mais conveniente substituir o console.logcomando alertpara obter um pop-up em vez de uma mensagem para o console.


Manualmente

  1. Abra a página do canal do YouTube desejada.
  2. Abra o view-sourcedessa página (um dos seguintes):
    • Ctrl+ U.
    • Clique com o botão direito -> View page source.
    • Adicione view-source:ao início do URL na barra de endereços.
  3. Pesquise o termo externalId
  4. Logo após, haverá um código aleatório (o ID do canal) na forma de: UCoookXUzPciGrEZEXmh4Jjg
  5. Adicione o código que você encontrou como sufixo https://www.youtube.com/feeds/videos.xml?channel_id=e agora esse é o seu feed RSS para esse canal.
arieljannai
fonte
rssUrlinfelizmente não existe na fonte de todos os canais, por exemplo, view-source:https://www.youtube.com/channel/UC0YagOInbZxj10gaWwb1Nag/e view-source:https://www.youtube.com/channel/UCEBTfxJ13zkpZVbZTF3aukg.
user598527
1
Eu vou dar uma olhada, e melhorar a minha resposta, graças
arieljannai
Achei a coisa, vou atualizar minha resposta ainda hoje!
Arieljannai
@ user598527 Atualizado :)
arieljannai
Obrigado por atualizar. Não consegui instalar o bookmarklet usando o método padrão (arrastando o código para a barra de favoritos). Com base na minha experiência, os bookmarklets começam com javascript:, pelo menos, que ajudará no procedimento de instalação do navegador.
user598527
1

O método que você menciona atualmente funciona, mas apenas em algumas circunstâncias, o texto exato a procurar é o ID do canal de dados externo e funciona no IE11, por exemplo. Muito mais fácil é obter o <channel-id>URL do canal, composto dessa maneira

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

De qualquer forma, existe uma maneira muito mais suportada de fazer isso, e isso reflete o fato de o YouTube gostar de você assinar os canais que deseja vincular através do feed RSS.

Se você inscreveu o canal em que está procurando o feed RSS, pode encontrá-lo listado na página Gerenciar assinatura , lá pode rolar todo o caminho até encontrar o botão "Exportar em leitores de RSS" : clicar nesse botão permitem baixar um arquivo XML que possui os nomes de canais e feeds RSS de todos os canais inscritos.

Esses feeds RSS sempre serão atualizados se algo mudar na maneira como o YouTube os expõe.

mrq
fonte
1

Abra o console com F12e execute

window["ytInitialData"].metadata.channelMetadataRenderer.rssUrl
goweon
fonte
Eu recebo o TypeError: window.ytInitialData.metadata is undefined erro ao executar no Firefox. Este comando deve funcionar em todas as páginas de um canal?
user598527
Hmm, parece que ele não funciona em todas as páginas
goweon