最近、YouTubeのチャンネルもRSS購読できることを知った。ものの、登録チャンネルをいっぺんにOPMLなりに書き出す方法はなかった(以前はあったらしい)。
調べてみるとブラウザのコンソールからクリップボードにOPML形式のテキストデータをコピーする方法を取ってる人がいたので試してみたものの、ちょっとうまく動かなかったので、参考にして動くようにしてみた(雑だよ)
// https://gist.github.com/aaronclimbs/091232147cca7c43349d3800695be21b
// ↑を参考にした、youtubeの登録チャンネルのRSSフィードリストのOPMLファイルを作成するコード。
// https://www.youtube.com/feed/channels
// ↑にログイン状態でアクセスし、ブラウザのコンソールでこのコードを実行するとクリップボードにOPMLデータがコピーされると思うので、適当な'.opml'ファイルを作って中身に貼り付ける
function youTubeToOPML() {
output = '<?xml version="1.0" encoding="UTF-8"?>\n<opml version="1.0">\n<head>\n<title>Feed Subscriptions</title>\n</head>\n<body>\n<outline title="Youtube Subscriptions" text="Youtube Subscriptions">';
arrOfATags = [...document.querySelectorAll('a#main-link')];
rss = arrOfATags.forEach(item => {
feedURL = "https://www.youtube.com/feeds/videos.xml?channel_id=" + item.data.browseEndpoint.browseId
OPMLLine = `<outline type="rss" xmlUrl="${feedURL}"/>\n`;
output += OPMLLine;
})
output += '</outline>\n</body>\n</opml>'
return output;
}
copy(youTubeToOPML());
あんまり良くわかってないんだけど、とりあえず機能したのでよしとする。どう書いたところで1年くらいで使えなくなる気もするし
RSSでプレミア公開がどう扱われるかとかは知らないし、YouTubeがRSSフィードの提供をやめる可能性とかも十分あるとは思う。
あくまで、自分のした記録ということで。と、書いて、おわり