今回は今や機械学習などで人気のプログラミング言語となったPythonのネタです。

みんな大好きYoutube!

人気のプログラミング言語であるPythonを使ってYoutubeの動画をダウンロードしちゃいましょう。

実は以前も似たような記事を投稿しているのですが、
その際は「youtube-dl」というPythonのライブラリを使用する手順についての紹介でした。

今回は「youtube-dl」とは別のライブラリである「pytube」の方法を紹介します。

と言いますのも、「youtbe-dl」の更新が6月以降止まってしまっているため、
他のライブラリはないかなぁと探して見つけたのがこの「pytube」です。

pytube3もありますが、更新停止しており、pytubeに引き継がれたようです。

まだ「youtube-dl」も使っていて問題はないのですが、半年も更新されないと、
ちょっと不安になったというのと新しいのを試したかったという気持ちで今回利用してみました。

というわけで前置きはこれくらいにしておいて、まずは環境の準備です。

(※筆者はLinux上にインストールして検証していますが、Pythonはクロスプラットフォームで動作する言語ですので、WindowsでもmacOSXでも使えると思います。)

pytubeをインストールする

以下コマンドにて「pytube」をインストールしましょう。

$ python3 -m pip install pytube 

YoutubeのURLのファイルをダウンロードする

インストールが終わったら、以下のサンプルのようにコーディングします。


#!/usr/bin/python3

from pytube import YouTube

url="https://www.youtube.com/watch?v=[name]"

yt = YouTube(url)

yt.streams.filter(
    progressive=True,
    file_extension='mp4'
    ).first().download(output_path='/home/User/Movie/')

上記を実行すると、動画のmp4ファイルが所定のフォルダにダウンロードされます。

ここまでは簡単ですね。

次に、禁断の方法を紹介します。

なんとチャンネルの動画を全ダウンロードする方法です。


Youtubeチャンネルの全動画を一括ダウンロードする!

例えば、音楽系のチャンネルの動画を全部ダウンロードして保存して、
ドライブ中、通勤や通学中に聞きたい、そんな願いがあったかと思います。
実はこの方法でそれが簡単に叶えられますよ。

それが今回の「pytube」でできてしまうんです。

サンプルコードは以下になります。
サンプルコードのURLは筆者の大好きなNCSチャンネルになります。

お好みのチャンネルでお試しください。


from pytube import Channel

c = Channel('https://www.youtube.com/channel/UC_aEa8K-EOJ3D6gOs7HcyNg')
print(f'Downloading videos by: {c.channel_name}')
for video in c.videos:
	print(video.title)
	video.streams.filter(
		progressive=True,file_extension='mp4'
		).first().download(output_path='/home/User/Movie/')

Downloading videos by: NoCopyrightSounds
Tollef - Capsized [NCS Release]
Dirty Palm & Benix - Legacy [NCS Release]
The Best of NCS10 [NCS Mix]
PHI NIX - The Word Is Out  [NCS Release]
Sam Day - Nothing To Hide [NCS Release]
Chime & MDK - Arcade Dwellers [NCS Release]
Clarx - Disco [NCS Release]
OVSKY - Time [NCS Release]
NCT, Shiah Maisel & Too Martian - News To Me [NCS Release]
EBEN - Promise [NCS Release]
FROZT, Andrew A - Sleeping Till Noon (feat. Moav) [NCS Release]
Facading - Feelings [NCS Release]
Slashtaq & Wanden - Full Speed Ahead [NCS Release]
Sam Ourt & FERGO - Love Me [NCS Release]
Syn Cole - Melodia [NCS Release]
Mo Falk & OVSKY - Home [NCS Release]
STAR SEED - Cayenne (feat. Zoe Moon) [NCS Release]
M.I.M.E x The LJ - Push The Gas [NCS Release]
Lost Identities x Rob Roth - For Me [NCS Release]
Jack Shore & Tollef - Dreaming of Me (feat. Jaime Deraz) [NCS Release]
Tokyo Machine - SLASH [NCS10 Release]
Dirty Palm - Ropes (feat. Chandler Jewels) [NCS10 Release]
ROY KNOX x Derpcat - Only You (Feat. imallryt) [NCS10 Release]
NCS: The Most Popular Songs of 2011 - 2021 [NCS Mix]
Lost Sky - Vision pt. II (feat. She Is Jules) [NCS10 Release]
Deaf Kev - Invincible Part II (feat. Sendi Hoxha) [NCS10 Release]
Le Malls - FOR YOU [NCS10 Release]
SirensCeol - Stay [NCS10 Release]
Netrum - Pixie Dust [NCS10 Release]
Jonth, Tom Wilson, Facading, MAGNUS, Jagsy, Vosai, RudeLies & Domastic - Heartless [NCS10 Release]

いかがでしたでしょうか。

というわけで今回はpythonでYoutubeの動画をダウンロードするライブラリのpytubeの使い方の紹介でした。

参考になれば幸いです。