YouTubeでチャンネルRSSフィードを見つける方法は?


13

YouTubeはチャンネルRSSフィードを正式にサポートしていますが、フィードを見つけるのが非常に困難です。少なくともThunderbirdではチャネルURLを使用することはできません。Firefoxは現在フィードを検出できていないようです(以前は機能していましたが、信頼性が低く、ページを更新する必要が時々ありました)。GoogleChromeは私の知る限りRSSをネイティブでサポートしていません。

手動でフィードを作成する方法はありますが、機能しない可能性がありchannel-external-idます(すべてのチャネルのソースには存在しないようです。channel_id代わりにあります)。

  1. ページのソースコードを表示する
  2. 次のテキストを探します。 channel-external-id
  3. その要素の値を取得する
  4. その値をこのURLに置き換えます。

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

サンプルチャンネル:https : //www.youtube.com/user/SesameStreet/videos

回答:


10

実際にあなたが提案したのは、RSSフィードアドレスですexternalId。質問で説明されている手順から少し変更されましたが、検索する正しい文字列があります。

スクリプトあり

次のスクリプトはフィードURLを抽出し、コンソールに出力します。

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

結果:

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

保存する場所

  1. ユーザースクリプトとして使用できます(たとえば、GreasemonkeyまたはTampermonkeyを使用)。
  2. ブックマークレットとしてお使いいただけます。
  3. コードコピーして、開発者コンソールに貼り付けます。

注:オプションを選択する1場合2- または、コンソールへのメッセージではなく、ポップアップを表示するためにconsole.logコマンドを置き換える方が便利alertです。


手動で

  1. 目的のYouTubeチャンネルページを開きます。
  2. 開いてview-sourceいるページ(次のいずれか)のを:
    • Ctrl+ U
    • 右クリック-> View page source
    • view-source:アドレスバーのURLの先頭に追加します。
  3. 用語を検索 externalId
  4. その直後に、次の形式のランダムコード(チャネルID)があります。 UCoookXUzPciGrEZEXmh4Jjg
  5. 見つけたコードをサフィックスとして追加するhttps://www.youtube.com/feeds/videos.xml?channel_id=と、そのチャネルのRSSフィードになります。

rssUrl残念ながら、たとえば、すべてのチャンネルのソースには存在しないview-source:https://www.youtube.com/channel/UC0YagOInbZxj10gaWwb1Nag/view-source:https://www.youtube.com/channel/UCEBTfxJ13zkpZVbZTF3aukg
user598527 2018

1
私はそれをチェックして、私の答えを改善します、ありがとう
arieljannai '25

見つかったので、今日は後で回答を更新します。
arieljannai 2018

@ user598527更新:)
arieljannai

更新していただきありがとうございます。標準の方法(ブックマークツールバーにコードをドラッグ)でブックマークレットをインストールできませんでした。私の経験に基づくと、ブックマークレットはで始まりますがjavascript:、少なくともブラウザのインス​​トール手順に役立ちます。
user598527

1

あなたが言及する方法は現在機能しますが、特定の状況でのみ、探すべき正確なテキストはdata-channel-external-idであり、たとえばIE11で機能します。<channel-id>このように構成されているチャネルURLでを取得する方がはるかに簡単です。

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

とにかく、これを行うにはより長いサポートされた方法があり、YouTubeがRSSフィードを通じてリンクしたいチャンネルを購読することを望んでいるという事実を反映しています。

RSSフィードを探しているチャンネルを購読している場合は、[購読の管理]ページに一覧表示され、[ RSSリーダーにエクスポート]ボタンが見つかるまで下にスクロールできます。そのボタンをクリックすると、購読しているすべてのチャンネルのチャンネル名とRSSフィードを含むXMLファイルをダウンロードできます。

これらのRSSフィードは、YouTubeによる公開方法に変更があった場合は常に更新されます。


0

でコンソールを開いてF12実行します

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

Firefoxで実行するとTypeError: window.ytInitialData.metadata is undefined エラーが発生します。このコマンドはチャンネルのすべてのページで機能する必要がありますか?
user598527

うーん、すべてのページで機能しないようです
goweon
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.