【Pythonista】iPadでYouTubeダウンローダーを作る方法

「iPad、iPhoneでYouTubeの動画をダウンロードしたい」と思ったことはありませんか?

今ではYouTubeの認知率は96.9%、そして利用率は65.8%(NTTドコモ モバイル社会研究所調べ)という圧倒的No.1の動画配信サイトとなっています。 このYouTubeから動画をダウンロードしたいという方も多いのではないでしょうか。

今回はiPad(iPhoneも同じ)で動画ダウンローダーアプリ(Python)の作り方を説明します。

動画ダウンロードで注意しなければならないことに利用規約があります。 どのように気をつければ良いのかも合わせてお伝えします。

YouTube利用規約の注意点

YouTubeの動画ダウンロードは基本的には禁止です。
しかし、一部例外が認められていて、その範囲でダウンロードは可能です。

ダウンロード可能なものは利用規約から理解することができるので説明します。

YouTubeの利用規約

利用規約には下記のように記載されています。

本サービスの利用には制限があり、以下の行為が禁止されています。
  1. 本サービスまたはコンテンツのいずれかの部分に対しても、アクセス、複製、ダウンロード、配信、送信、放送、展示、販売、ライセンス供与、改変、修正、またはその他の方法での使用を行うこと。ただし、(a)本サービスによって明示的に承認されている場合、または(b)YouTube および(適用される場合)各権利所持者が事前に書面で許可している場合を除きます。

ダウンロードは禁止されていることがわかります。

ここでポイントとなるのは「(a)本サービスによって明示的に承認されている場合」または「(b)YouTube および(適用される場合)各権利所持者が事前に書面で許可している場合」は例外として扱われているということ。

そして、YouTubeで明示的に承認しているものが「クリエイティブ・コモンズ」となります。

クリエイティブ・コモンズとは

クリエイティブ・コモンズとは何でしょうか。
YouTubeのヘルプでは下記のように記載されています。

クリエイティブ・コモンズのライセンスは、コンテンツ作成者が他者に作品の使用を許可するための標準的な方法の 1 つです。

〜中略〜

著作権を保持したまま、ライセンスの条項に従って他のクリエイターに自分の作品を使用してもらえます。

https://support.google.com/youtube/answer/2797468?hl=ja より引用

つまり、クリエイティブ・コモンズであることを明記した動画は、著作権は放棄しないものの、他のクリエイターに使ってもらうことを承認していることになります。

YouTubeでクリエイティブ・コモンズの動画を探す方法

それではクリエイティブ・コモンズの動画はどのように見つければ良いのでしょうか。
YouTubeで検索する際に、検索キーワードの末尾に「creativecommons」を付けて検索するだけです。

ただし、検索結果すべてがクリエイティブ・コモンズに該当するわけではないので注意してください。

見分けるには、動画のタイトルと説明を確認する必要があります。

例えば、下記は動画のタイトルですが、末尾に「Creative Commons」と記載してくれています。

説明欄に記載されているケースもあります。

このような形でダウンロードできる動画を探すには一手間必要ですが、対象の動画を見つけることは可能です。

ダウンローダーの作り方

ここまでを理解した前提でダンローダーを作ってみます。

今回も利用するのはPythonistaです。
下記のアイコンですね。

YouTube動画を簡単にダウンロードできるライブラリをインストールします。

そのために「StaSh(スタッシュ)」と呼ばれるツールを事前にインストールする必要があります。
「StaSh」とはPythonistaでシェルのようなコマンドを実行できるようにするためのツールです。
公式サイトのフォーラムで紹介されているので安心してインストールできますね。

StaShのインストール

Pythonistaでプロンプトを開いて下記のコマンドを実行するだけです。
簡単ですね。

import requests as r; exec(r.get('http://bit.ly/get-stash').text)

インストールできるとlaunch_stash.pyという名前のファイルがあるので、これを実行します。

youtube-dlのインストール

StaShが起動できたらターミナルのような画面が表示されます。
そこで下記のコマンドを実行してください。

pip install youtube-dl

これで事前準備完了です。

ダウンローダーのPythonコード

いよいよPythonスクリプトを作成します。

ダウンローダーといってもyoutube-dlライブラリのおかげで実装は非常にシンプルで、下記のたった9行です。
場所はどこでも良いので作成して保存してください。

import appex
import youtube_dl

url = appex.get_url()
if not url:
    print('No URL found.')
else:
    with youtube_dl.YoutubeDL() as ydl:
        ydl.download([url])

ブラウザから実行できるようにする

スクリプトが用意できたので、今度はブラウザからスクリプトを呼び出せるようにします。
Pythonistaの画面右上の設定ボタンから「Share...」→「Share Extension」→「+」ボタンと順に押していくことで拡張機能としてブラウザから機能を呼び出せるようになります。

登録画面は下記のようになります。
アイコンはYouTubeっぽく赤色にしておくと分かりやすいですね。

ここまでできれば、SafariでYouTubeの動画を表示し、共有ボタンから「Run Pythonista Script」→「作成した拡張機能」の順に選択すれば、画面に表示されている動画のダウンロードを行うことができます。

ダウンロードした動画はPythonistのスクリプトと同じ場所に保存されているので確認してみてください。

最後に

YouTubeの動画をダウンロードするには利用規約に違反しないように注意する必要があります。
ここまでしなくても、YouTube Premiumに加入すれば簡単に端末に保存できるので、ここまで気にする必要はないかもしれませんね。
ただ、プログラミングのネタとしては興味をそそるものになっているのかな、とも感じています。

注意しないといけないこともありますが、色々と試して興味があることにチャレンジすると楽しいですね。それでは、また。

Twitterでフォローしよう

Pickup
おすすめの記事