raspberryPiでYoutubeをダウンロード&podcast化してiphoneで視聴したい


電車や、車移動中、建物の地下と、電波状態が悪い場所はたくさんあります。
どんな場所でもどんな時でもとにかくYouTubeがみたい。。
あぁ、iphoneにダウンロードできたらどんなに便利でしょう。
無いなら、そんなツール作っちゃえとモジョモジョした記事です。

注意! あくまで、個人で楽しむものとしてやってください。作成したpodcastチェンネルを公開すると違法アップロードとなります。絶対に、非公開サーバーでひとりの楽しみとしてください。

リポジトリを公開しています。合わせてご覧ください。
https://github.com/akiraseto/ytcast

ざっとやりたいこと

ラズパイでいつでも・・

  1. youtubeを音声/動画と選択してダウンロード
  2. ダウンロードしたファイルを最適化
  3. 目的に応じてディレクトリに振り分けされる
  4. podcast用のRSSファイルを自動生成。
  5. iphoneのpodcastのチャンネル設定しておいて
  6. 以後、iphone内のpodcastに自動で動画、音声ファイルが溜まっていく。

こんなものが作りたい!

準備

youtube-dlをダウンロード

これがメインのコマンドで、主役です。
というよりも、私のgitリポジトリはこのコマンドのラッパーのようなものです。

インストール

sudo pip install youtube-dl

詳しい参考サイト
http://d.hatena.ne.jp/masayoshi_9a7ee/20150905/1441414821

localでWEBサーバーを立ち上げる

ここは深く触れません。頑張って立ててくださいm(_ _)m

ディレクトリを準備

rasUSB                        #usbメモリの名前
└── youtube
    ├── audio                 #podcast化しない音声ファイル
    ├── movie                 #podcast化しない動画ファイル
    ├── podcast
    │   ├── audio             #podcast化する音声ファイル
    │   ├── audio.rss         #自動生成される。音声チャンネル用RSS
    │   ├── movie             #podcast化する動画ファイル
    │   ├── movie.rss         #自動生成される。動画チャンネル用RSS
    │   ├── thumb_audio.png   #作成してください。音声用サムネイル画像
    │   └── thumb_movie.png   #作成してください。動画用サムネイル画像
    └── tmp                   #一時作業用ディレクトリ

rasUSB

私が命名したUSBメモリの名前です。
ラズパイのmicroSDだと、容量の大きさ問題と書き込み回数制限が心配なので
頻繁に書込&削除するものはUSBメモリーにしてしています。
適宜、ご自分の設定に置き換えてください。

rasUSB/youtube/

podcast化しない音声ファイルや、動画ファイルを入れるディレクトリ

rasUSB/youtube/podcast

podcast化するにあたって、必要なファイルやディレクトリを格納。
また、各メディアファイルも生成される。

audio.rss, movie.rss

podcastチャンネル用のRSS
自動生成されるので、初期は不要。

thumb_audio.png, thumb_movie.png

podcastのチャンネル用の各サムネイル画像
初期から必要。作成してください。
私は200*200pxで作成。

ローカルWEBサーバーでpodcastディレクトリを公開する。

rasUSB/youtube/podcast

http://localhost/podcastとしてローカル公開したい

シンボリックリンク作成

/var/www/html/

html
└── podcast -> /media/pi/rasUSB/youtube/podcast

Webサーバー側でシンボリックリンクを許可

apache2なら任意の箇所に以下を追加

<Directory />
    Options FollowSymLinks
</Directory>

以後、
Gitリポジトリ内のファイルの説明となります。
(リポジトリのREADMEとかなりかぶります)
git clone後

使用方法

CLIにてコマンドを入力

./rec_youtube.sh [TYPE] [POD] [URL]

[TYPE] 保存したいフォーマットを指定。

movie :動画ファイルでダウンロード
audio :音声ファイルでダウンロード
movie-list :プレイリストを動画ファイルでダウンロード
audio-list :プレイリストを音声ファイルでダウンロード

[POD] ポッドキャストにするか否か

pod-on
ポッドキャスト用のディレクトリにファイル移動して、 RSSを生成
pod-off
動画、音声用のディレクトリにファイルを移動のみ

[URL] ダウンロードしたいyoutubeのURL

youtube動画のURL
youtube プレイリストのURL
プレイリストURLの場合、TYPEで-list形式を指定する必要がある。

ファイル説明

rec_youtube.sh

youtube-dlのラッパー機能です。

以下を行います。
・音声、動画は最高品質でDL
・音声:m4a 動画:mp4にフォーマット変更
・目的に応じて、任意のディレクトリに振り分け
・podcast化する場合は、makepodcast.rbを実行

makepodcast.rb

Matchy2氏から、拝借しカスタマイズしました。
https://gist.github.com/matchy2/5552631

・動画、音声ファイルからPodcast用rssを生成します。
rasUSB/youtube/podcast/audio.rss
rasUSB/youtube/podcast/movie.rss

iphoneとのpodcast設定の仕方

以下のURLをiphoneのpodcastに登録する

音声チャンネル
http://localhost/podcast/audio.rss
動画チャンネル
http://localhost/podcast/movie.rss

問題なければ、これで
ラズパイでダウンロードしたyoutube動画/音声が
iphoneでpodcastアプリで視聴することができます。


以上です。それではステキなYouTubeライフを♪
くれぐれもですが、個人で楽しむにとどめてください。
サーバー公開や配布は法律違反となります。