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

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.

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.


1

Abra o console com F12e execute

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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.