【Python】yt-dlpで動画のダウンロード先を指定する方法

code coder coding computer Python
Photo by Pixabay on Pexels.com

yt-dlpでPythonプログラムをいダウンロード先指定する方法で結構困ったので、備忘録として書いておきます。

単純な話しなのですぐに終わります。

yt-dlpでダウンロード先を指定したが反映されない

yt-dlpを使って動画をダウンロードして指定の場所に名前を変更して保存しようとググって「output」オプションを使えばできそうだなと思い試してみたのですが、全然指定された場所に保存されないという困ったことが発生しました。

その時のプログラムはコレです。

from yt_dlp import YoutubeDL

video_id = '動画ID'

download_url = 'https://www.youtube.com/watch?v=' + video_id + "'"

ydl_opts = {
            'output': '[指定先のPath]%(title)s.%(ext)s'
            }

with YoutubeDL(ydl_opts) as ydl:
    ydl.download([download_url])

原因

2時間ほどネットを探し続けたのですが全く回答が見当たらず、たまたま海外のstackoverflowを見つけて、そもそも書き方が違うということに気づきました。

原因は「output」ではなく「outtmpl」が正解でした。。

how to set directory in ydl_opts in using youtube-dl in python?
** What do i need to add to specify that all the download mp3 will go to this directory: e:/python/downloadedsongs ydl_opts = { 'format': 'bestaudio/best'...

公式サイトにはそんなこと書いてない。。

公式

対処法

原因は分かったので対処は簡単です。

というわけでプログラムを修正して実行したら無事指定したパスに指定した名前でダウロードできました。

from yt_dlp import YoutubeDL

video_id = '動画ID'

download_url = 'https://www.youtube.com/watch?v=' + video_id + "'"

ydl_opts = {
            'format': '22',
            'outtmpl': '[指定先のPath]%(id)s.%(ext)s'
            }

with YoutubeDL(ydl_opts) as ydl:
    ydl.download([download_url])

「outtmpl」はそもそも、yt-dlpの元となったyoutube-dlのコマンド何ですね。
最初からこれ見ておけばすぐに解決できたのに。。

同じように困ってる方がこれで解決できれば幸いです。

以上です。ありがとうございました。

コメント

タイトルとURLをコピーしました