概要
皆さんお疲れ様! 今日はpythonをつかってyoutubeをダウンロードしてみましょう。
私は普段作業用bgmにYoutubeを活用していますが、広告が強制的に入ってくるから正直作業に集中できないですよね。
てことで今回はpythonをつかってYouTubeをダウンロードしてみましょう。
事前に必要なこと
- youtubeに公開タイプのプレイリストを作っておいて、そこにダウンロードしたい動画を入れておきましょう。
作ったものと使い方
- ↓のコードを自分の環境に置く。今回は「download_youtuibe.py」という名前にします。
#!/usr/bin/env python # coding: utf-8 import os import glob import youtube_dl import sys # consts VIDEO_DIR = os.path.join(os.getcwd(), "videos") OPTS = { "outtmpl": "{VIDEO_DIR}/%(title)s.mp4".format(VIDEO_DIR=VIDEO_DIR), 'ignoreerrors': True } def download(url): """ Download video from YouTube. Parameters ---------- url : str YouTube video URL Returns ---------- info : dict Downloaded video info. """ print("Downloading {url} start..".format(url=url)) with youtube_dl.YoutubeDL(OPTS) as y: info = y.extract_info(url, download=True) print("Downloading {url} finish!".format(url=url)) return info def rename(info): """ Rename downloaded video filename as camelcase. Parameters ---------- info : dict Downloaded video info. """ title = info["title"] pattern = '{VIDEO_DIR}/{title}.mp4'.format(VIDEO_DIR=VIDEO_DIR, title=title) for v in glob.glob(pattern, recursive=True): print("{title}.mp4 found! Renaming start..".format(title=title)) file_path = os.path.join(VIDEO_DIR, v) new_file_path = file_path.replace(' ', '_') os.rename(file_path, new_file_path) print("Renaming finish!".format(title)) if __name__ == "__main__": args = sys.argv url = args[1] info = download(url) rename(info)
- あとはコマンドを実行するだけ↓
python download_youtube_mp3.py <対象のURL>