Youtubeダウンローダーがここ最近使えなくなってるらしいので作った。
あ、どうも。いさかです。
タイトル通りなんですけどyoutubeダウンロードはオープンソースで無料で出来ます。あんな広告大量のウェブサイト見たくないでしょという訳で一番有名なやつ。↓
このソフトは基本的にコマンドラインで使うもので、説明は捨ててめんどくさいから使い易くなるようにbatファイル作りました。
応これにも弱点はあって、cookieの調査が厳しくなると結構な頻度で弾かれます。ダウンロードツールの宿命だからね仕方ないね。
ここ最近PCからのアクセスが厳しくなってたのでコードでアンドロイドからアクセスしてるフリをしてます。ついでに自動アップデートもつけときました。
このツールの仕組み上映像+音声で合成して完成という感じなので音声チェッカ―として100%にならんとダメです。
yt-dlpとffmpegも同じ階層に入れてね。
403エラーがIP関係の可能性もあるけど分からないので試し過ぎ注意。プレイリストも試せるだろうけどやらないのを推奨。
そしてプレイリストはダウンロードします!…となる前にちょっと待って、それ本当にダウンロードする必要がある?というのと、Googleの機能でそもそもwhisperとかは使えるのでその為にプレイリストのURLを集めるツールを次回扱います。
結構数日単位でセキュリティが変わるのでAiにでも渡して改良するのを推奨します。下記をセットにして渡したら上手いことやってくれるかも。
これをChatGPTに読ませたところの評価はこんな感じ。
① chcp 65001
chcp 65001 >nul✔ 正解
日本語タイトル対策
文字化け回避
もはや必須。
これ入ってない bat は 今どき信用できない。
② yt-dlp.exe を同階層固定
set "EXE_PATH=%~dp0yt-dlp.exe"set "FFMPEG_DIR=%~dp0."
これが地味に重要。
PATH 依存を完全排除
portable 運用
「余計な環境差」で死なない
対策が厳しくなるほど、環境要因を削るのは正解。
③ 日付フォルダ自動生成
set datestamp=YYYY-MM-DDset savepath=%cd%\%datestamp%
これも実務的に賢い。
連続DLでの上書き事故防止
後から「いつ落としたか」分かる
ログ用途にも流用可能
「趣味 bat」じゃなくて
“運用 bat”の思想になってる。
④ bestvideo+bestaudio を明示
-f "bestvideo+bestaudio/best"--merge-output-format mp4
ここはもう説明不要だね。
adaptive 前提
DASH 仕様前提
ffmpeg merge 前提
昔の best 単独指定が通じない世界にちゃんと対応してる。
⑤ 核心:extractor-args
--extractor-args "youtube:player_client=android,web"ここが「最終的にこうした」の核心。
なぜ android + web か
web だけ → 最近死にやすい
android だけ → 画質や挙動が不安定なことがある
両方指定 →
取得可能な client を yt-dlp 側で動的選択
YouTube 側の A/B や段階的規制に対して
“どっちか通れば勝ち”構成。
これはもう
対策合戦の終盤の手。
⑥ cookies を完全に切る
--no-cookiesこれも「分かってる」。
cookies は便利だけど
有効期限
アカウントBANリスク
環境差
今は 使わない方が安全
YouTube 側が
「ログイン状態=検知対象」
みたいな挙動をするケースが増えてるから、
“匿名視聴者として一貫する”
この判断はかなり堅い。
⑦ UA を Chrome に固定
--user-agent "Mozilla/5.0 ... Chrome/121.0.0.0"✔ 正しい
✔ 余計な偽装をしていない
✔ 現行世代
UA を盛りすぎると逆に怪しい。
これは
「普通の人間」ロールプレイとして最適。
⑧ --no-part / --no-mtime
--no-part--no-mtime
ここが“運用者視点”。
.part 残さない
→ 途中検知・不整合回避mtime 触らない
→ ファイル属性での変な差分回避
地味だけど、
事故を減らすための判断。


コメント