🎧
yt-dlpでMixcloudのDJミックスをダウンロードする
Mixcloudにあるルイ・ベガのミックスを聴いています。外出先で聴くとデータ通信量を消費するため、ダウンロードしたいと考えました。
検索で見つかるWebサービスではうまくダウンロードできなかったため、対応できるツールを探しました。すると、yt-dlpというツールが見つかりました。
便利だったので、使い方を記録します。

yt-dlpについて
yt-dlpは、YouTubeやMixcloud、ニコニコ動画、SoundCloud、Vimeo、Bilibili、Twitter(X)など、数百種類以上の動画・音声配信サイトから動画や音声をダウンロードできる強力なオープンソースツールです。yt-dlpは、もともと有名なyoutube-dlのフォーク(派生プロジェクト)であり、より活発な開発と最新サイトへの対応、追加機能の充実が特徴です。
主な特徴
主な特徴は以下です。
- 多様なサイト対応: YouTubeだけでなく、MixcloudやTwitch、ニコニコ動画、Bilibili、SoundCloudなど、世界中の主要な配信サービスに対応しています。
- 高機能なオプション: 動画・音声のフォーマット選択、画質・音質の指定、プレイリストやチャンネル全体の一括ダウンロード、字幕やメタデータの取得、サムネイル画像の保存など、多彩なオプションが用意されています。
- ffmpegとの連携: HLS(m3u8)やDASH(mpd)などのストリーミング形式にも対応し、ffmpegと連携して自動的にセグメントの結合や音声抽出、フォーマット変換を行います。
- 認証・Cookie対応: ログインが必要なコンテンツも、Cookieファイルやユーザー名・パスワードを指定することでダウンロード可能です。
- 高速な更新: サイト側の仕様変更にも迅速に対応しており、youtube-dlよりも頻繁にアップデートされています。
- スクリプトや自動化との親和性: コマンドラインツールなので、シェルスクリプトやバッチ処理、Dockerなどの自動化環境でも簡単に利用できます。
Dockerでの私的使い方
Python製ですが、Python環境を用意する手間を省くため、以下のDockerfileを作成して使用しています。
FROM python:3.11-slim
# 必要なパッケージのインストール
RUN apt-get update && \
apt-get install -y --no-install-recommends \
ffmpeg \
ca-certificates \
wget \
&& rm -rf /var/lib/apt/lists/*
# yt-dlpのインストール
RUN pip install --no-cache-dir --upgrade pip yt-dlp
# デフォルトの作業ディレクトリ
WORKDIR /work
# デフォルトコマンド
ENTRYPOINT ["yt-dlp"]
以下のようなコマンドを使用します。Mixcloudからのダウンロードにはやや時間がかかり、60分のミックスで約30分かかる印象です。
docker run --rm -v "$PWD":/work yt-dlp <ダウンロードしたいURL>
代表的な使い方
コマンドそのものは以下のように使用します。
- 単一動画のダウンロード
yt-dlp https://www.youtube.com/watch?v=XXXX - プレイリスト全体のダウンロード
yt-dlp https://www.youtube.com/playlist?list=XXXX - 音声のみ抽出(mp3変換)
yt-dlp -x --audio-format mp3 https://www.mixcloud.com/xxxx/xxxx/ - ファイル名テンプレートの指定
yt-dlp -o '%(title)s.%(ext)s' https://www.youtube.com/watch?v=XXXX - 字幕やメタデータの同時取得
yt-dlp --write-subs --write-info-json https://www.youtube.com/watch?v=XXXX
よく使う主なオプション
-
-f:ダウンロードするフォーマット(画質・音質)を指定 -
-o:出力ファイル名テンプレートを指定 -
-x:音声のみ抽出 -
--audio-format:音声フォーマット(mp3、m4a、wavなど)を指定 -
--write-subs:字幕をダウンロード -
--write-thumbnail:サムネイル画像を保存 -
--write-info-json:メタデータをJSONで保存 -
--playlist-items:プレイリストの一部だけをダウンロード -
--cookies:Cookieファイルを指定して、認証が必要な動画も取得
注意事項
- yt-dlpは配信サイトの利用規約を尊重し、個人利用の範囲でご利用ください。
- 法的な問題や著作権には十分ご注意ください。
公式情報
yt-dlpは非常に柔軟で強力なツールです。
Discussion