ワンクリックでYouTubeプレイリストをシャッフル再生する

プログラミング関係

YouTubeのプレイリストでシャッフル再生をするには、一度プレイリストの一覧を開いて「シャッフル」をクリックする必要があります。ショートカットやブックマークから、直接シャッフル再生することはできません。

操作が多いだけなら、Seleniumで何とかなります。しかし、原因はわかりませんが、途中でシャッフル再生が解除されてしまうことがあります。この問題はSeleniumでは解決できません。

そこで、スタートメニューやデスクトップ上に作成したショートカットから、ワンクリックでプレイリストのシャッフル再生ができるプログラムを作成することにしました。

環境

  • OS – Windows 11
  • ブラウザ – Firefox
  • 使用言語 – Python, JavaScript, HTML, CSS

前提条件

前提条件は、シャッフル再生が解除されないことと、ワンクリックでシャッフル再生が開始されることです。

加えて、キーボードやイヤホンのメディアキーが使えることも前提にします。メディアキーとは、再生・次の曲・前の曲などの、メディア再生に関する操作を行うキーです。メディアキーが使えれば、再生しているブラウザがアクティブウィンドウでなくても操作ができます。

これらを前提に、YouTubeのプレイリスト再生環境を簡単に実装できる方法を検討した結果、YouTubeの埋め込みプレーヤーが最適であると考えました。

プランA 埋め込みコードをHTMLファイルにコピペする(失敗)

もっとも簡単な方法は、プレイリストの埋め込みコードを(任意のファイル名).htmlにコピペして、そのファイルをブラウザで開くことだと思います。
早速、普段聴いているプレイリストで試したところ、「動画を再生できません」と表示されます。

原因は、プレイリストに入れている、YOASOBIの「アイドル」でした。「アイドル」の埋め込みコードで試すと、同様に「動画を再生できません」と表示されます。

YouTubeには、動画投稿者側の設定で、埋め込み可否の項目があります。当初は埋め込みが無効にされているのだろうと考えていました。

しかし、投稿者が埋め込みを許可していない場合、埋め込みコードを取得する画面に「他のウェブサイトでの再生は、動画の所有者によって無効にされています」と表示されるはずです。

「アイドル」の場合はというと、

このように、埋め込みが無効にされているとは表示されません。

結局、なぜ「アイドル」だけが埋め込みプレーヤーで再生できないのかはわかりませんでした。

いろいろ試したところ、開発者ツールでYouTubeのサイト上に埋め込みコードを挿入すると、「アイドル」も再生できることがわかりました。

プランB ブラウザのアドオンを自作する

YouTubeのサイト上であれば再生できることがわかったので、特定のURLを開いたとき、埋め込みコードを自動で書き込み、シャッフル再生が始まるようなアドオンを作成することにしました。

問題は、埋め込みコードを書き込むサイトをどこにするかでしたが、現状はYouTubeのエラーページが最適であると考えています。

このエラーページは、body内に、idを持つdiv要素があるだけなので、まずはdiv要素を削除し、body内に埋め込みコードを挿入する、という流れで処理を行うアドオンを作成することにしました。

個人的なこだわりで、ブラウザのウィンドウサイズに応じて、埋め込みプレーヤーのサイズが変化するようにしました。

自作したアドオンはmanifest.jsonとスクリプトファイルの2つで構成されています。ソースコードと使い方はGitHubにありますのでご覧ください。(現在準備中です。使用は自己責任でお願いします。)

GitHub - nahi-da/EmbedYTPlayerAddon
Contribute to nahi-da/EmbedYTPlayerAddon development by creating an account on GitHub.

課題と余談

アドオンの動作は完璧なのですが、問題があります。まず、IFrameを埋め込むにあたって、IFrame APIのスクリプトをYouTubeのエラーページ上に埋め込む必要がありますが、リモートコードにあたるため、アドオンの審査が通りません。

アドオンの審査が通らないため、Firefoxを起動するたびに、アドオンのインストールが必要になります。

そこで、アドオンをインストールする作業を自動化するスクリプトを、Pythonで作成しました。こちらもGitHubにあります。スクリプトを実行すれば、ブラウザの起動・アドオンのインストール・YouTubeエラーページを開くという操作を、すべて自動で行います。

余談ですが、このアドオンをAndroid版Firefoxで使う場合は、PCとスマホを接続して、コマンドでアドオンをインストールする必要がありますが、アプリを閉じるとアドオンは削除されるので、使うたびに面倒なインストールの作業が必要になります。

そもそも、Android版Firefoxは、アプリ自体がメディアキーによる曲変更に対応していないので、音楽鑑賞には向いていません。別のブラウザを探した結果、Kiwi Browserを発見しました。

Kiwi BrowserはChromiumベースのブラウザで、Chrome拡張機能が使えます。自作したアドオンはManifestV2で作成したので使えないと思っていましたが使えました。メディアキーによる曲変更もできました。

以上で終わります。ご覧いただきありがとうございました。

コメント

タイトルとURLをコピーしました