youtube-dlでデフォルトのダウンロード場所を設定して、youtube-dlでダウンロードしたすべてのものがそのデフォルトディレクトリに格納されるようにするにはどうすればよいですか?
-o
_スイッチを使用する必要があります_youtube-dl
_の出力は、_--output
_または_-o
_スイッチで処理されます。オプションとして渡し、その後にダウンロードの保存先を指定します:
youtube-dl -o 'C:\Users\User\Downloads\%(title)s.%(ext)s' www.youtube.com/video
このコマンドには、変数を使用して出力ファイルに名前を付ける方法のテンプレートも設定するという二重の機能があることに注意してください。この例では、ダウンロードした元のビデオのタイトルに続いてファイル拡張子が出力されます。これは私の個人的な好みです。ファイル名で使用できるすべての変数については、 こちらのyoutube-dlのドキュメント をご覧ください。
_youtube-dl
_は、構成ファイルの使用も許可します-最も頻繁に使用するスイッチを構成して、プログラムがプルできるようにするために使用できるファイル代わりにそこから呼び出して、実行するたびに明示的に呼び出す必要がなくなります。 これは、探しているデフォルトのダウンロード場所に必要なものです。構成ファイルを使用して、デフォルトの出力先を設定できます。出力を再度明示的に設定する必要はありません。
Windowsを持っていると仮定して、youtube-dlの構成ファイルをセットアップするには:
_%APPDATA%\Roaming
_で、_youtube-dl
_フォルダーが存在しない場合は作成します。
そのフォルダー内に、_config.txt
_という名前のプレーンテキストファイルを作成します。
ファイルに_youtube-dl
_オプションを配置します。通常は、コマンドラインで_youtube-dl
_を使用してオプションを使用し、それぞれを新しい行に配置します。たとえば、出力スイッチの場合は、_-o C:\Users\User\Destination
_を使用します。設定ファイルの詳細については、 こちらのドキュメント をご覧ください。
オプションが構成ファイルで構成されている場合でも、コマンドラインから明示的に呼び出すことにより、オプションをオーバーライドできます。したがって、設定ファイルで_-o
_をダウンロードのデフォルトの場所に設定しているが、現在のジョブのためにダウンロードを別の場所に保存したい場合は、コマンドラインで_-o
_を呼び出すだけで、プログラムの現在の実行専用の構成ファイル。
あなたのニーズに応じて、後でファイルを移動するのも同じように便利だと思います。
--exec CMD Execute a command on the file after
downloading, similar to find's -exec
syntax. Example: --exec 'adb Push {}
/sdcard/Music/ && rm {}'
ファイルを移動する関数を作成することにより
Downloadsフォルダーにファイルを直接ダウンロードする方法を見つけました。長時間検索しています。関数全体をコピーすると、前後のコンテキストを理解できます。これは誰かのために役立つかもしれない私のコードです:
import os
def download_audio(request):
SAVE_PATH = '/'.join(os.getcwd().split('/')[:3]) + '/Downloads'
ydl_opts = {
'format': 'bestaudio/best',
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'mp3',
'preferredquality': '192',
}],
'outtmpl':SAVE_PATH + '/%(title)s.%(ext)s',
}
link = request.GET.get('video_url')
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download(["https://www.youtube.com/watch?v="+link])
問題がある場合は教えてください。