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

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

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

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

<img width="375" alt="IMG_6366.JPG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215645/a435bb93-244b-1e93-58a1-00b408606ea9.jpeg">


#ざっとやりたいこと
ラズパイでいつでも・・

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ライフを♪
くれぐれもですが、個人で楽しむにとどめてください。
サーバー公開や配布は法律違反となります。