YouTubeのプレイリスト動画をiPodに入れたい① | Python
動機
私はいわゆる「ASMR」が好きで毎晩聴きながら眠っています。ASMRは主にYouTubeから探してきているのですが、睡眠前のスマホの光は睡眠障害になりかねない。
そこで家にあるiPod Shuffleで聴けばいいんだと閃きました。YouTube の動画を mp3に落としてぶち込めばよい。
しかしここで問題が発生。分かる方には分かると思いますが、ASMR動画には明確な「アタリ」と「ハズレ」がある。「アタリ」を引くためには、少しでも気になったASMR動画を片っ端からプレイリストにまとめておいて、後で順次再生して試していくのが効率がよいのです。
なので、YouTube 上で作ったプレイリストからmp3を一括ダウンロードできるようにしたいと思いました。
後はそれぞれのmp3に対して、元動画の投稿者と投稿日時が分かるようにしたいです。その他、プレイリスト内の動画をひとまとめに管理しておきたいですね。
でも、以上のような要求を満たすYouTube音声ファイルダウンロードアプリを探してみたのですが見つかりませんでした。なので、自分で作ることにしました。
作った
例えばこのようなプレイリストを作ったら(投稿者に配慮して大部分を隠してますが)
このようにプレイリストの URL と任意のアルバム名を入力して実行するだけで
専用のディレクトリ上に mp3となって置いてもらえます。
後は iTunes にてプレイリストを作成し、iPod Shuffleに入れればよいです。
アルバム名が揃っているのでスマートプレイリストも楽々に作れます。
入った!!
処理内容
具体的には、Pythonは以下のような処理を受け持ちます。
① プレイリスト上にある全ての動画の投稿者、投稿年を取得する。
② 動画をそれぞれ音声形式でダウンロードする。
③ 音声ファイルをiPod Shuffleの読める形式に変換して、同じディレクトリに保存する。
④ 全ての音声ファイルに同じアルバム名を書き込んで、iTunesやiPod Shuffle上でも管理しやすいようにしておく。
⑤ 音声ファイルのアーティストタグに投稿者を、年タグに投稿年を書き込む。
使ったライブラリ
pytube
YouTubeの再生リストや動画の情報を取得したり、ダウンロードしたりできます。動画のダウンロードに関しては、音声のみダウンロードすることもできます。
ffmpeg-python
ffmpegのラッパーみたいなもので、ffmpegの機能を使えます。ffmpegとは、動画や音声、画像を形式変換したり編集したりできるAPIです。import ffmpegで呼び出します。
mutagen
mp3ファイルやmp4ファイル等に記載されているメタタグ(タイトルやアーティスト、アルバムの情報)を見たり、変更したりできます。
詳しい事
①, ②, pytubeの使用
③, ④, ffmpeg-pythonの使用
🧊工事中🧊
⑤, mutagenの使用
🧊工事中🧊
感想
無事iPod ShuffleにYouTube動画を入れることができました。全ての音声ファイルが同じディレクトリに保存され、同じアルバム名として管理されているので整理がついてスッキリしています。
音声ファイルの形式変換の処理速度を上げるためColaboratoryで実行しているのですが、GoogleDriveへのマウントやライブラリのインストールをいちいち行わないといけないので、そこに時間を取られてしまう感じがします。
実用化にはまだ課題がありそうです。