
Security News
Open Source Maintainers Demand Ability to Block Copilot-Generated Issues and PRs
Open source maintainers are urging GitHub to let them block Copilot from submitting AI-generated issues and pull requests to their repositories.
node-fluent-ytdlp
Advanced tools
Node.jsで簡単にyt-dlpを実行します。独自のコードを作成する必要はありません。
このAPIは、fluent-ffmpegを参考に作成されました。
このAPIはインストールする際にyt-dlpやffmpegなどの必要なバイナリをダウンロードします。
そのためインストール時に時間がかかる場合がありますがバグではありませんので終了するまでお待ちください。(ダウンロードにかかる時間はインターネットの速度によって異なります。)
yt-dlpなどを自動的にダウンロードさせないようにするには、環境変数「FLUENT_YTDLP_NO_AUTO_DOWNLOAD」に何かしらの値を設定してください。(設定したあとは、一度ターミナルを終了してください。終了しないと環境変数が取得できないため。)
このAPIは、yt-dlpをNode.jsで利用できるようにするAPIです。
このAPIの開発は、YBD Projectが行っています。
1. 自己責任での利用をお願いします。このAPIの利用によって発生した損害・損失等に関して開発者は一切の責任を取りません。
2. このAPIは、Node.jsでの実行を目的としたものであり、ブラウザ等のNode.js以外の環境での動作は保証できません。
現時点でこのAPIを支援する方法は、このAPIを利用(npmからダウンロード)していただくかSNS等で拡散する方法の二つがあります。
少しだけでも利用していただくだけで相当な支援となります!(開発者側としてはうれしいです!)
このAPIのバグ報告などはCONTRIBUTING.md
をご覧ください。
このAPI自体、READMEやCONTRIBUTINGなどのドキュメントの改善点はDiscussions(議論)の「改善点」に質問として送信してください。ここに送信された改善点は開発者が定期的に閲覧し、その質問に対する回答として返信していきます。
npm install node-fluent-ytdlp
yarn add node-fluent-ytdlp
このAPIは、実行(run()
を実行)するとNode.jsのChildProcessでストリームを返します。
run()
を使用して実行してください。
noStreamRun()
を使用して実行してください。
scheduleRun()
を使用して実行してください。
デバッグを有効にしない場合は、以下のコードを使用してください。
const fluentYTDlp = require('node-fluent-ytdlp'); //モジュールの読み込み
const ytdlp = new fluentYTDlp('URL'); //インスタンスの作成
TypeScriptで使用する場合は、requireのコードをimportに変更するだけで対応できます。
import fluentYTDlp from 'node-fluent-ytdlp'; //モジュールの読み込み
const ytdlp = new fluentYTDlp('URL'); //インスタンスの作成
デバッグ(実行のログ出力)を行う場合は、以下のコードを使用してください。(インスタンス作成の第二引数にtrue
を指定します。)
注意: 間違った形式で指定しているオプションを強制的に適応したい場合は、run()
の引数に{force: true}
を渡してください。
const ytdlp = new fluentYTDlp('URL', true); //インスタンスの作成
const ytdlpProcess = ytdlp.run(); //yt-dlpの実行
ytdlpProcess.stdout.on('data', () => {/* yt-dlpの標準出力 */});
ytdlpProcess.stderr.on('data', () => {/* yt-dlpの標準エラー出力 */});
ytdlpProcess.on('close', () => {/* 終了した場合の処理 */});
const ytdlpProcess = ytdlp.resolution('1920x1080').run(); //yt-dlpの実行
ytdlpProcess.stdout.on('data', () => {/* yt-dlpの標準出力 */});
ytdlpProcess.stderr.on('data', () => {/* yt-dlpの標準エラー出力 */});
ytdlpProcess.on('close', () => {/* 終了した場合の処理 */});
その他使用方法については、examplesフォルダをご覧ください。
複数のオプションを指定してyt-dlpを実行したい場合は以下のように記述します。
ytdlp.resolution('1920x1080').filename('Test').format('bestvideo+bestaudio[ext=m4a]').run();
yt-dlpのオプションには、同じ意味を持つ別名のオプションが存在するためそのような関数は「・」で区切り、全く違うオプションは、「、」で区切っています。
ここに記載されているオプションは、全てyt-dlpと同じ名前となります。その他、このAPIを簡単に利用するための簡易オプション等は独自命名となります。
関数に引数を渡す場合は、文字列(String型)・数字(Number型)・真偽(Boolean型)・日付(Date型)・JSON(Object型)のいずれかを指定する必要があります。
オプションには、一つの型を受け付ける関数と、複数の型を受け付ける関数があることに注意してください。
受け付けない型を引数として渡された場合は、そのオプションは既定で適応されません。適応する場合は、yt-dlpの実行をご覧ください。
yt-dlpで非推奨になったオプション等はotherOptions()
で指定することが可能ですが、動作については保証できません。
yt-dlpのオプションには、独自の指定方法をしなければならないオプションが多数あります。(--playlist-itemsなど)
これらのオプション等の指定方法については、このドキュメントに随時追加していく予定ですので追加されていないオプションについては説明欄にあるyt-dlpの公式ドキュメントをご覧ください。
yt-dlpなどを指定されたパスで実行できるようになります。
関数名: setBinaryPath()
引数の型: Object型
引数説明:(以下のオプションは、絶対パスで指定しないと正常に機能しない場合があります。値がない場合は、設定されません。)
ytdlp
: yt-dlpのバイナリパスを指定します。ffmpeg
: ffmpegのバイナリパスを指定します。ffprobe
: ffprobeのバイナリパスを指定します。/* バイナリパスを設定する */
ytdlp.setBinaryPath({
ytdlp: 'Path',
ffmpeg: 'Path'
});
yt-dlpを指定されたオプションで実行します。引数の説明は以下をご覧ください。
関数名: run()
引数の型: Object型
引数説明:
force
: 間違ったオプションの指定をしていても強制的に適応します。(デフォルトはfalse
)spawnOptions
: Node.jsのspawn
に渡すオプションを指定できます。/* 間違ったオプションを強制的に適応しない(デフォルト) */
ytdlp.run();
ytdlp.run({});
ytdlp.run({
force: false
});
/* 間違ったオプションを強制的に適応する */
ytdlp.run({
force: true
});
/* spawnにオプションを渡す */
ytdlp.run({
spawnOptions: {
shell: true,
cwd: '/cwd/dir/'
}
});
yt-dlpを指定された時間に実行します。引数の説明は以下をご覧ください。
関数名: scheduleRun()
引数の型: Object型
引数説明:
force
: 間違ったオプションの指定をしていても強制的に適応します。(デフォルトはfalse
)spawnOptions
: Node.jsのspawn
に渡すオプションを指定できます。schedule
: yt-dlpを実行する日時を指定できます。このオプションを指定するとこの関数はPromise
を返すようになります。このオプションでは、new Date
を内部的に使用するためnew Date
で使用できない日時の引数を渡されるとエラーが発生する可能性があります。/* スケジュールを設定する(Promise) */
ytdlp.run({
schedule: '2023/03/27 15:30'
}).then(ytdlpProcess => {
ytdlpProcess.stdout.on('data', () => {/* yt-dlpの標準出力 */});
ytdlpProcess.stderr.on('data', () => {/* yt-dlpの標準エラー出力 */});
ytdlpProcess.on('close', () => {/* 終了した場合の処理 */});
}).catch(err => {
/* 日時が過去の場合などにエラー(Reject)が返される */
console.log(err);
});
データの取得をストリーム以外で行う必要がある場合は、以下のオプション(noStreamRun()
)を使用してください。このオプションは、指定しない場合と比べて不安定な場合があります。
このオプションを指定した場合は、引数を指定することで値を指定できます。
関数名: noStreamRun()
引数の型: Object型
引数説明:
type
: 実行するChild_processの関数を指定できます。(exec
またはexecFile
)callback
: 実行結果を受け取るコールバック関数を指定できます。force
: 間違ったオプションの指定をしていても強制的に適応します。(デフォルトはfalse
)/* 「exec」で実行する */
ytdlp.noStreamRun({
type: 'exec',
callback: function (err, stdout, stderr) {/* Process... */}
});
/* 「execFile」で実行する */
ytdlp.noStreamRun({
type: 'execFile',
callback: function (err, stdout, stderr) {/* Process... */}
});
このセクションでは、このAPIを簡単に利用するためのオプション等を紹介します。細かにオプションを指定する必要がある場合はこの簡易オプションを使用しないでください。
解像度を指定できます。「横×縦」で指定することができます。このオプションには、何かしらの値を指定する必要があります。
関数名: resolution()
引数の型: String型
ytdlp.resolution('1920x1080').run();
縦と横を個別で指定する必要がある場合は以下のオプションを使用してください。このオプションには、何かしらの値を指定する必要があります。
関数名: width()
、height()
引数の型: String型
、Number型
ytdlp.width('1920').run(); //横の指定
ytdlp.height('1080').run(); //縦の指定
ダウンロード後のファイル名を指定できます。(拡張子の指定は、extension()
を使用してください。)このオプションには、何かしらの値を指定する必要があります。
関数名: filename()
引数の型: String型
ytdlp.filename('Name').run();
ダウンロード後のファイル拡張子を指定できます。この拡張子はyt-dlpで利用できる拡張子を指定してください。このオプションには、何かしらの値を指定する必要があります。
関数名: extension()
引数の型: String型
ytdlp.extension('Ext').run();
URLを途中で変更することができます。このオプションは複数回指定することができ、一番最後に指定されたオプションが適応されます。このオプションには、何かしらのURLを指定する必要があります。
関数名: url()
引数の型: String型
ytdlp.url('URL').run();
yt-dlpで非推奨等になっているオプションは、このAPIでは正式に対応していないため、このオプションを使用して指定することができます。
指定形式は、JSONのキー名をオプション名とし、JSONの値をそのオプションへ値とします。オプションへの値が必要ない場合は、true
を指定します。
注意: オプション名はハイフンの次の文字を大文字とします。ここを間違えると正常にオプションが適応されない可能性があります。
関数名: otherOptions()
引数の型: Object型
ytdlp.otherOptions({
allFormats: true
}).run(); //「--all-formats」を適応する場合(yt-dlpで非推奨のオプション)
ytdlp.otherOptions({
autonumberStart: 2
}).run(); //「--autonumber-start」に「2」を渡して適応する場合(yt-dlpで非推奨のオプション)
このAPIが、内部で使用するyt-dlpのパスを返します。
関数名: _ytdlpPath()
ytdlp._ytdlpPath();
このAPIが、内部で使用するffmpegのパスを返します。
関数名: _ffmpegPath()
ytdlp._ffmpegPath();
このAPIが、内部で使用するffprobeのパスを返します。
関数名: _ffprobePath()
ytdlp._ffprobePath();
このAPIが、内部で使用するffmpeg等をダウンロードするbinディレクトリパスを返します。
関数名: _binPath()
ytdlp._binPath();
ここからはオプションの値を細かく指定できます。yt-dlpを使用したことがないユーザーは簡易オプションを使用するか、公式ドキュメントを見てからオプションを使用することをおすすめします。
yt-dlpの--help
オプションを適応します。
関数名: help()
yt-dlpのオプション: -h
・--help
ytdlp.help().run();
yt-dlpの--version
を適応します。
関数名: version()
yt-dlpのオプション: --version
ytdlp.version().run();
yt-dlpをアップデートします。
この際にアップデート先のバージョンを指定する必要がある場合は、yt-dlpのアップデート先のバージョンを指定するをご覧ください。
関数名: update()
、noUpdate()
yt-dlpのオプション: -U
・--update
、--no-update
ytdlp.update().run(); //バージョンを指定しない
ytdlp.noUpdate().run(); //アップデートしない(yt-dlpのデフォルト)
yt-dlpのアップデート先のバージョンを指定できます。このオプションには、何かしらのバージョンを指定する必要があります。
関数名: updateTo()
引数の型: String型
yt-dlpのオプション: --update-to
ytdlp.updateTo('Version').run();
yt-dlpによるダウンロードプロセスが、エラー等で失敗したとしても成功とみなすようにします。
関数名: ignoreErrors()
yt-dlpのオプション: -i
・--ignore-errors
ytdlp.ignoreErrors().run();
ダウンロード中にエラーが発生した場合、処理を中止するかを指定できます。このオプションは、どの関数を指定しても同じ結果となります。
関数名: abortOnError()
、noIgnoreErrors()
、noAbortOnError()
yt-dlpのオプション: --abort-on-error
・--no-ignore-errors
・--no-abort-on-error
/* 処理を中止する */
ytdlp.abortOnError().run();
ytdlp.noIgnoreErrors().run();
/* 処理を中止しない(yt-dlpのデフォルト) */
ytdlp.noAbortOnError().run();
userAgentを取得できます。このオプションを指定するとその他のオプションを指定できなくなり、動画のダウンロードは実行されません。
関数名: dumpUserAgent()
yt-dlpのオプション: --dump-user-agent
ytdlp.dumpUserAgent().run();
extractorの一覧を配列で取得できます。このオプションを指定するとその他のオプションを指定できなくなり、動画のダウンロードは実行されません。
関数名: listExtractors()
yt-dlpのオプション: --list-extractors
ytdlp.listExtractors().run();
extractorの一覧と説明を配列で取得できます。このオプションを指定するとその他のオプションを指定できなくなり、動画のダウンロードは実行されません。
関数名: extractorDescriptions()
yt-dlpのオプション: --extractor-descriptions
ytdlp.extractorDescriptions().run();
ダウンロード等に使用するextractorを指定します。このオプションには、何かしらの値を指定する必要があります。
関数名: useExtractors()
引数の型: String型
yt-dlpのオプション: --use-extractor
ytdlp.useExtractors('Extractor Name').run();
URLではない値を、URLとして与えられた場合の処理を指定できます。このオプションには、何かしらの値を指定する必要があります。
関数名: defaultSearch()
引数の型: String型
yt-dlpのオプション: --default-search
ytdlp.defaultSearch('Method').run();
設定ファイルのパス、フォルダのパスを指定できます。このオプションには、何かしらの値を指定する必要があります。この設定ファイルのみを適応する場合は、設定ファイルを限定するをご覧ください。
関数名: configLocation()
引数の型: String型
yt-dlpのオプション: --config-locations
ytdlp.configLocation('PATH').run();
configLocation('PATH')
を使用して指定した設定ファイル以外を適応しない場合は、ignoreConfig()
またはnoConfig()
を使用してください。このオプションは、どちらの関数を指定しても同じ結果となります。
関数名: ignoreConfig()
、noConfig()
yt-dlpのオプション: --ignore-config
・--no-config
ytdlp.ignoreConfig().run();
ytdlp.noConfig().run();
どのようなオプションで設定ファイルを指定されてもその設定ファイルを無視します。このオプションを指定するとその他の設定ファイルに関するオプションが指定できなくなります。
関数名: noConfigLocations()
yt-dlpのオプション: --no-config-locations
ytdlp.noConfigLocations().run();
プレイリストの展開をするかを指定できます。
関数名: flatPlaylist()
, noFlatPlaylist()
yt-dlpのオプション: --flat-playlist
、--no-flat-playlist
ytdlp.flatPlaylist().run(); //プレイリスト展開をする
ytdlp.noFlatPlaylist().run(); //プレイリスト展開をしない
YouTubeのライブを放送開始時からダウンロードするかを指定できます。
関数名: liveFromStart()
, noLiveFromStart()
yt-dlpのオプション: --live-from-start
、--no-live-from-start
ytdlp.liveFromStart().run(); //放送開始時からダウンロードする
ytdlp.noLiveFromStart().run(); //ダウンロードしない(yt-dlpのデフォルト)
ライブの予約ダウンロードの待機中の再試行間隔を指定できます。指定する場合は、秒数を指定してください。
関数名: waitForVideo()
, noWaitForVideo()
引数の型: String型
、Number型
yt-dlpのオプション: --wait-for-video
、--no-wait-for-video
ytdlp.waitForVideo('Seconds').run(); //再試行間隔を指定する
ytdlp.noWaitForVideo().run(); //再試行間隔を指定しない(yt-dlpのデフォルト)
再生履歴を残すことができます。このオプションはユーザー名・パスワードを指定しないと動作しません。
関数名: markWatched()
, noMarkWatched()
yt-dlpのオプション: --mark-watched
、--no-mark-watched
ytdlp.markWatched().run(); //再生履歴を残す
ytdlp.noMarkWatched().run(); //再生履歴を残さない(yt-dlpのデフォルト)
このオプションを指定すると標準出力にカラーコードを生成しなくなります。
関数名: noColors()
yt-dlpのオプション: --no-colors
ytdlp.noColors().run();
各オプションのデフォルト動作の違いを元に戻すことができます。このオプションには、何かしらの値を指定する必要があります。
関数名: compatOptions()
引数の型: String型
yt-dlpのオプション: --compat-options
ytdlp.compatOptions('OPTS').run();
注意: 正常に動作しない可能性があるため利用できません。改善策が見つかり次第、利用を可能にします。
オプション文字列のエイリアスを作成できます。エイリアスの引数はPythonの文字列フォーマットにしたがってパースされます。
関数名: alias()
引数の型: String型
yt-dlpのオプション: --alias
ytdlp.alias('Alias').run();
yt-dlpで使用するプロキシを指定することができます。このオプションには、プロキシURLの指定が必要です。
関数名: proxy()
引数の型: String型
yt-dlpのオプション: --proxy
ytdlp.proxy('Proxy URL').run();
タイムアウトの秒数を指定できます。このオプションには、タイムアウトの秒数の指定が必要です。
タイムアウトの単位は、秒での指定となります。
関数名: socketTimeout()
引数の型: String型
、Number型
yt-dlpのオプション: --socket-timeout
ytdlp.socketTimeout('Seconds').run();
バインド先のクライアントIPアドレスを指定できます。このオプションには、何かしらのアドレスを指定する必要があります。
関数名: sourceAddress()
引数の型: String型
yt-dlpのオプション: --source-address
ytdlp.sourceAddress('Address').run();
IPv4の使用を強制できます。
関数名: forceIpv4()
yt-dlpのオプション: -4
・--force-ipv4
ytdlp.forceIpv4().run();
IPv6の使用を強制できます。
関数名: forceIpv6()
yt-dlpのオプション: -6
・--force-ipv6
ytdlp.forceIpv6().run();
「file://」で始まるURLの使用を許可できます。
関数名: enableFileUrls()
yt-dlpのオプション: --enable-file-urls
ytdlp.enableFileUrls().run();
サイトへのアクセス時にのみプロキシを適応できます。プロキシの指定と異なるのはダウンロード時にプロキシを適応するかしないかです。このオプションには、何かしらのプロキシURLを指定する必要があります。
関数名: geoVerificationProxy()
引数の型: String型
yt-dlpのオプション: --geo-verification-proxy
ytdlp.geoVerificationProxy('Proxy URL').run();
ヘッダーを偽装することにより地域制限を回避できます。
関数名: geoBypass()
、noGeoBypass()
yt-dlpのオプション: --geo-bypass
、--no-geo-bypass
ytdlp.geoBypass().run(); //ヘッダーを偽装する(yt-dlpのデフォルト)
ytdlp.noGeoBypass().run(); //ヘッダーを偽装しない
ISO 3166-2で規定された国コードを指定して地域制限を回避します。このオプションには、何かしらの国コードが必要です。
関数名: geoBypassCountry()
引数の型: String型
yt-dlpのオプション: --geo-bypass-country
ytdlp.geoBypassCountry('Country Code').run();
CIDR表記で指定されたIPブロックを使用して強制的に地域制限を回避できます。このオプションには、何かしらのCIDR表記のIPブロックが必須です。
関数名: geoBypassIpBlock()
引数の型: String型
yt-dlpのオプション: --geo-bypass-ip-block
ytdlp.geoBypassIpBlock('IP BLOCK').run();
プレイリストから動画をダウンロードするときに、その動画をプレイリストのインデックスで指定できます。このオプションには、何かしらの値を指定する必要があります。指定形式はyt-dlpの公式ドキュメントをご覧ください。
関数名: playlistItems()
引数の型: String型
yt-dlpのオプション: -I
・--playlist-items
ytdlp.playlistItems('Index').run();
ダウンロードする動画の最大ダウンロード数を指定できます。このオプションには、何かしらの値を指定する必要があります。
関数名: maxDownloads()
引数の型: String型
、Number型
yt-dlpのオプション: --max-downloads
ytdlp.maxDownloads('Number').run();
最小ファイルサイズを指定できます。このオプションには、何かしらの値が必要です。
関数名: minFileSize()
引数の型: String型
yt-dlpのオプション: --min-filesize
ytdlp.minFileSize('Size').run();
最大ファイルサイズを指定できます。このオプションには、何かしらの値が必要です。
関数名: maxFileSize()
引数の型: String型
yt-dlpのオプション: --max-filesize
ytdlp.maxFileSize('Size').run();
動画のアップロード日時を指定できます。日時の指定形式はyt-dlpの公式ドキュメントを見るかJavaScriptのDate
を引数として指定してください。
関数名: date()
引数の型: String型
、Date型
yt-dlpのオプション: --date
ytdlp.date('Date').run();
指定した日時より以前の動画を処理できます。日時の指定形式は動画のアップロード日時の指定をご覧ください。
関数名: dateBefore()
引数の型: String型
、Date型
yt-dlpのオプション: --datebefore
ytdlp.dateBefore('Date').run();
指定した日時より以前の動画を処理できます。日時の指定形式は動画のアップロード日時の指定をご覧ください。
関数名: dateAfter()
引数の型: String型
、Date型
yt-dlpのオプション: --dateafter
ytdlp.dateAfter('Date').run();
ダウンロードする動画をフィルタすることができます。指定形式はyt-dlpの公式ドキュメントをご覧ください。
関数名: matchFilters()
、noMatchFilter()
引数の型: String型
yt-dlpのオプション: --match-filters
、--no-match-filter
ytdlp.matchFilters('Filter').run(); //フィルタの指定
ytdlp.noMatchFilter().run(); //フィルタを指定しない(yt-dlpのデフォルト)
動画が拒否された場合に処理を停止したい場合は、以下のオプションを使用してください。指定形式は上記と変わりありません。
関数名: breakMatchFilters()
、noBreakMatchFilters()
引数の型: String型
yt-dlpのオプション: --break-match-filters
、--no-break-match-filters
ytdlp.breakMatchFilters('Filter').run(); //フィルタの指定
ytdlp.noBreakMatchFilters().run(); //フィルタを指定しない(yt-dlpのデフォルト)
プレイリストを無視するかどうかを指定できます。
関数名: noPlaylist()
、yesPlaylist()
yt-dlpのオプション: --no-playlist
、--yes-playlist
ytdlp.noPlaylist().run(); //プレイリストを無視する
ytdlp.yesPlaylist().run(); //プレイリストを無視しない
指定された年齢に合った動画のみをダウンロードします。
関数名: ageLimit()
引数の型: String型
、Number型
yt-dlpのオプション: --age-limit
ytdlp.ageLimit('Years').run();
ダウンロードした動画IDを記録し、記録された動画は二回目以降ダウンロードをスキップします。downloadArchive()
を使用する場合、何かしらの値を指定する必要があります。
関数名: downloadArchive()
、noDownloadArchive()
引数の型: String型
yt-dlpのオプション: --download-archive
、--no-download-archive
ytdlp.downloadArchive('File').run(); //動画IDを記録する
ytdlp.noDownloadArchive().run(); //動画IDを記録しない(yt-dlpのデフォルト)
アーカイブに含まれるファイルがある場合に処理を停止するかを指定できます。
関数名: breakOnExisting()
yt-dlpのオプション: --break-on-existing
ytdlp.breakOnExisting().run();
--break-on-existing
、--break-on-reject
、--max-download
のオプションを、指定されているURLのみに適応できます。noBreakPerInput()
は、ダウンロードキュー自体を中止します。
関数名: breakPerInput()
、noBreakPerInput()
yt-dlpのオプション: --break-per-input
、--no-break-per-input
ytdlp.breakPerInput().run();
ytdlp.noBreakPerInput().run();
指定されたエラー数を超えるとプレイリスト自体をスキップします。このオプションには、エラー数の上限を指定する必要があります。
関数名: skipPlaylistAfterErrors()
引数の型: String型
、Number型
yt-dlpのオプション: --skip-playlist-after-errors
ytdlp.skipPlaylistAfterErrors('Number').run();
DASHまたはhls動画の同時にダウンロードするフラグメント数を指定できます。このオプションには、何かしらの値を指定する必要があります。
関数名: concurrentFragments()
引数の型: String型
、Number型
yt-dlpのオプション: -N
・--concurrent-fragments
ytdlp.concurrentFragments('Number').run();
動画をダウンロードする際の最大速度を制限できます。このオプションには、何かしらの値を指定する必要があります。指定形式はyt-dlpの公式ドキュメントをご覧ください。
関数名: limitRate()
引数の型: String型
yt-dlpのオプション: -r
・--limit-rate
ytdlp.limitRate('RATE').run();
動画をダウンロードする際の最小ダウンロード速度を指定できます。指定された値を下回ると再ダウンロードされます。このオプションには、何かしらの値を指定する必要があります。指定形式はyt-dlpの公式ドキュメントをご覧ください。
関数名: throttledRate()
引数の型: String型
yt-dlpのオプション: --throttled-rate
ytdlp.throttledRate('Rate').run();
ダウンロードの再試行回数を指定できます。このオプションには、何かしらの値を指定する必要があります。指定形式はyt-dlpの公式ドキュメントをご覧ください。
関数名: retries()
引数の型: String型
、Number型
yt-dlpのオプション: -R
・--retries
ytdlp.retries('Retries').run();
ファイルアクセスエラー時に再試行する回数を指定できます。このオプションには、何かしらの値を指定する必要があります。指定形式はyt-dlpの公式ドキュメントをご覧ください。
関数名: fileAccessRetries()
引数の型: String型
、Number型
yt-dlpのオプション: --file-access-retries
ytdlp.fileAccessRetries('Retries').run();
フラグメントのダウンロード再試行回数を指定できます。このオプションには、何かしらの値を指定する必要があります。指定形式はyt-dlpの公式ドキュメントをご覧ください。
関数名: fragmentRetries()
引数の型: String型
、Number型
yt-dlpのオプション: --fragment-retries
ytdlp.fragmentRetries('Retries').run();
再試行の間にスリープする時間を秒単位で指定できます。このオプションには、何かしらの値を指定する必要があります。指定形式はyt-dlpの公式ドキュメントをご覧ください。
関数名: retrySleep()
引数の型: String型
、Number型
yt-dlpのオプション: --retry-sleep
ytdlp.retrySleep('Seconds').run();
DASHまたはhls、ISMのダウンロードできないフラグメントをスキップできます。このオプションは、どちらの関数を指定しても同じ結果となります。
関数名: noAbortOnUnavailableFragments()
、skipUnavailableFragments()
yt-dlpのオプション: --no-abort-on-unavailable-fragments
・--skip-unavailable-fragments
ytdlp.noAbortOnUnavailableFragments().run();
ytdlp.skipUnavailableFragments().run();
動画にダウンロードできないフラグメントがある場合に、ダウンロードを中止できます。このオプションは、どちらの関数を指定しても同じ結果となります。
関数名: abortOnUnavailableFragments()
、noSkipUnavailableFragments()
yt-dlpのオプション: --abort-on-unavailable-fragments
・--no-skip-unavailable-fragments
ytdlp.abortOnUnavailableFragments().run();
ytdlp.noSkipUnavailableFragments().run();
ダウンロード終了後、ダウンロードしたフラグメントを消さずにディスクに保存します。
関数名: keepFragments()
、noKeepFragments()
yt-dlpのオプション: --keep-fragments
、--no-keep-fragments
ytdlp.keepFragments().run(); //フラグメントを残す
ytdlp.noKeepFragments().run(); //フラグメントを残さない(yt-dlpのデフォルト)
ダウンロードバッファのサイズを指定できます。
関数名: bufferSize()
引数の型: String型
yt-dlpのオプション: --buffer-size
ytdlp.bufferSize('Size').run();
バッファサイズを--buffer-sizeのデフォルト値(1024)から自動的に調整できます。
関数名: resizeBuffer()
、noResizeBuffer()
yt-dlpのオプション: --resize-buffer
、--no-resize-buffer
ytdlp.resizeBuffer().run(); //バッファサイズを自動的に調整する(yt-dlpのデフォルト)
ytdlp.noResizeBuffer().run(); //バッファサイズを自動的に調整しない
HTTPダウンロードの際のチャンクのサイズを指定できます。このオプションには、何かしらの値を指定する必要があります。指定形式はyt-dlpの公式ドキュメントをご覧ください。
このオプションは実験的なオプションです。
関数名: httpChunkSize()
引数の型: String型
yt-dlpのオプション: --http-chunk-size
ytdlp.httpChunkSize('Size').run();
プレイリストの動画をランダムな順番でダウンロードできます。
関数名: playlistRandom()
yt-dlpのオプション: --playlistRandom
ytdlp.playlistRandom().run();
プレイリストのエントリーを処理しながらプレイリストの動画をダウンロードできます。このオプションを使用すると、%(n_entries)s
、--playlist-random
、--playlist-reverse
は無効になります。
関数名: lazyPlaylist()
、noLazyPlaylist()
yt-dlpのオプション: --lazy-playlist
、--no-lazy-playlist
ytdlp.lazyPlaylist().run(); //プレイリストのエントリーを処理しながらダウンロードする
ytdlp.noLazyPlaylist().run(); //プレイリストの解析が終了してからダウンロードする(yt-dlpのデフォルト)
拡張ファイル属性に予想されるファイルサイズを書き込むことができます。
関数名: xattrSetFileSize()
yt-dlpのオプション: --xattr-set-filesize
ytdlp.xattrSetFileSize().run();
hls動画にmpegtsコンテナを使用することができます。
関数名: hlsUseMpegts()
、noHlsUseMpegts()
yt-dlpのオプション: --hls-use-mpegts
、--no-hls-use-mpegts
ytdlp.hlsUseMpegts().run(); //hls動画にmpegtsコンテナを使用する(ライブ配信の場合はyt-dlpのデフォルト)
ytdlp.noHlsUseMpegts().run(); //hls動画にmpegtsコンテナを使用しない(ライブ配信以外の場合はyt-dlpのデフォルト)
動画のチャプターのタイトルが正規表現にマッチしたチャプターのみをダウンロードできます。このオプションには、何かしらの値を指定する必要があります。
関数名: downloadSections()
引数の型: String型
yt-dlpのオプション: --download-sections
ytdlp.downloadSections('Regex').run();
使用する外部ダウンローダーの名前、パスと使用するプロトコルを指定できます。このオプションには、何かしらの値を指定する必要があり、複数回の指定が可能です。このオプションは、どちらの関数を指定しても同じ結果となります。指定形式はyt-dlpの公式ドキュメントをご覧ください。
関数名: downloader()
、externalDownloader()
引数の型: String型
yt-dlpのオプション: --downloader
・--external-downloader
ytdlp.downloader('[Proto:]Name').run();
ytdlp.externalDownloader('[Proto:]Name').run();
使用するダウンローダーに引数を与えることができます。このオプションには、何かしらの値を指定する必要があり、複数回の指定が可能です。このオプションは、どちらの関数を指定しても同じ結果となります。指定形式はyt-dlpの公式ドキュメントをご覧ください。
関数名: downloaderArgs()
、externalDownloaderArgs()
引数の型: String型
yt-dlpのオプション: --downloader-args
・--external-downloader-args
ytdlp.downloaderArgs('Name:Args').run();
ytdlp.externalDownloaderArgs('Name:Args').run();
動画URLを記述したファイルを指定してまとめてダウンロードできます。このオプションには、何かしらの値を指定する必要があります。--no-batch-file
はバッチファイルを無視します。
関数名: batchFile()
、noBatchFile()
引数の型: String型
yt-dlpのオプション: -a
・--batch-file
、--no-batch-file
ytdlp.batchFile('File').run(); //ファイルを指定してダウンロードする
ytdlp.noBatchFile().run(); //バッチファイルからURLを読み込まない(yt-dlpのデフォルト)
ファイルをダウンロードするパスを指定できます。このオプションには、何かしらの値を指定する必要があります。このオプションは、--outputオプションが絶対パスの場合、無効になります。指定形式はyt-dlpの公式ドキュメントをご覧ください。
関数名: paths()
引数の型: String型
yt-dlpのオプション: -P
・--paths
ytdlp.paths('[Types:]Path').run();
ファイル名のテンプレートを指定できます。このオプションには、何かしらの値を指定する必要があります。指定形式はyt-dlpの公式ドキュメントをご覧ください。
関数名: output()
引数の型: String型
yt-dlpのオプション: -o
・--output
ytdlp.output('[Types:]Template').run();
上記(--output)オプションで指定したテンプレート名で使用できないものを、指定された文字で置き換えることができます。このオプションには、何かしらの値を指定する必要があります。
関数名: outputNaPlaceholder()
引数の型: String型
yt-dlpのオプション: --output-na-placeholder
ytdlp.outputNaPlaceholder('Text').run();
ファイル名をASCII文字のみにすることができます。このオプションを指定すると&
やスペース等、ASCII文字ではないものは使用されなくなります。
関数名: restrictFilenames()
、noRestrictFilenames()
yt-dlpのオプション: --restrict-filenames
、--no-restrict-filenames
ytdlp.restrictFilenames().run(); //ASCII文字に限定する
ytdlp.noRestrictFilenames().run(); //ASCII文字に限定しない(yt-dlpのデフォルト)
ファイル名を強制的にWindows互換にすることができます。windowsFilenames()
を指定するとどのような場合でもファイル名をWindows互換にします。
関数名: windowsFilenames()
、noWindowsFilenames()
yt-dlpのオプション: --windows-filenames
、--no-windows-filenames
ytdlp.windowsFilenames().run(); //どのような場合でもWindows互換にする
ytdlp.noWindowsFilenames().run(); //Windowsの場合のみWindows互換にする(yt-dlpのデフォルト)
ファイル名の長さ(拡張子を除いて)を指定された文字数までに制限できます。このオプションには、何かしらの値を指定する必要があります。
関数名: trimFilenames()
引数の型: String型
、Number型
yt-dlpのオプション: --trim-filenames
ytdlp.trimFilenames('Length').run();
同じファイルが存在する際に一切上書きさせないことができます。
関数名: noOverwrites()
yt-dlpのオプション: -w
・--no-overwrites
ytdlp.noOverwrites().run();
動画ファイルおよびメタデータのファイルを全て上書きします。noForceOverwrites()
を指定すると関連ファイルのみが上書きされます。
関数名: forceOverwrites()
、noForceOverwrites()
yt-dlpのオプション: --force-overwrites
、--no-force-overwrites
ytdlp.forceOverwrites().run(); //全て上書き
ytdlp.noForceOverwrites().run(); //関連ファイルのみ上書き(yt-dlpのデフォルト)
部分的にダウンロードされた動画を途中からダウンロードを再開できます。
関数名: continue()
、noContinue()
yt-dlpのオプション: -c
・--continue
、--no-continue
ytdlp.continue().run(); //途中から再開する(yt-dlpのデフォルト)
ytdlp.noContinue().run(); //途中から再開しない
ダウンロードの際に.partファイルを使用することができます。
関数名: part()
、noPart()
yt-dlpのオプション: --part
、--no-part
ytdlp.part().run(); //.partファイルを使用する(yt-dlpのデフォルト)
ytdlp.noPart().run(); //.partファイルを使用せずファイルに直接書き込む
ファイルの更新日時をLast-modified
ヘッダーの値にすることができます。
関数名: mtime()
、noMtime()
yt-dlpのオプション: --mtime
、--no-mtime
ytdlp.mtime().run(); //更新日時をLast-modifiedヘッダーの値にする(yt-dlpのデフォルト)
ytdlp.noMtime().run(); //更新日時をLast-modifiedヘッダーの値にしない
動画の説明を.description
ファイルに書き込むことができます。
関数名: writeDescription()
、noWriteDescription()
yt-dlpのオプション: --write-description
、--no-write-description
ytdlp.writeDescription().run(); //.descriptionファイルに書き込む
ytdlp.noWriteDescription().run(); //.descriptionファイルに書き込まない(yt-dlpのデフォルト)
動画のメタデータを.info.json
ファイルに書き込むことができます。(個人情報が含まれる可能性があります。)
関数名: writeInfoJson()
、noWriteInfoJson()
yt-dlpのオプション: --write-info-json
、--no-write-info-json
ytdlp.writeInfoJson().run(); //.info.jsonに書き込む
ytdlp.noWriteInfoJson().run(); //.info.jsonに書き込まない(yt-dlpのデフォルト)
ファイル名等のプライベートなデータを削除したい場合は以下のオプションを使用します。(このオプションを使用しても個人情報等が完全に削除されるわけではありません。)
関数名: cleanInfoJson()
、noCleanInfoJson()
yt-dlpのオプション: --clean-info-json
、--no-clean-info-json
ytdlp.cleanInfoJson().run(); //プライベートなデータを削除する(yt-dlpのデフォルト)
ytdlp.noCleanInfoJson().run(); //プライベートなデータを削除せずに全てのデータを書き込む
writeDescription()
やwriteInfoJson()
を使用する際にプレイリストのメタデータも書き込むかを指定できます。
関数名: writePlaylistMetafiles()
、noWritePlaylistMetafiles()
yt-dlpのオプション: --write-playlist-metafiles
、--no-write-playlist-metafiles
ytdlp.writePlaylistMetafiles().run(); //プレイリストのメタデータを書き込む(yt-dlpのデフォルト)
ytdlp.noWritePlaylistMetafiles().run(); //プレイリストのメタデータを書き込まない
.info.json
に書き込む動画のコメントを.info.json
に書き込むことができます。
関数名: writeComments()
、getComments()
、noWriteComments()
、noGetComments()
yt-dlpのオプション: --write-comments
、--get-comments
、--no-write-comments
、--no-get-comments
/* コメントを.info.jsonに書き込む(どちらの関数の結果は同じです。) */
ytdlp.writeComments().run();
ytdlp.getComments().run();
/* コメントを.info.jsonに書き込まない(どちらの関数の結果は同じです。) */
ytdlp.noWriteComments().run();
ytdlp.noGetComments().run();
.info.json
から情報を読み込む.info.json
のファイルパスから動画情報を読み込みます。書き込みは、writeInfoJson()
を使用して書き込むことができます。このオプションには、何かしらの値を指定する必要があります。
関数名: loadInfoJson()
引数の型: String型
yt-dlpのオプション: --load-info-json
ytdlp.loadInfoJson('File').run();
クッキーを読み込むかを指定できます。読み込む場合は、何かしらの値を指定する必要があります。
関数名: cookies()
、noCookies()
引数の型: String型
yt-dlpのオプション: --cookies
、--no-cookies
ytdlp.cookies('File').run(); //クッキーを読み込む
ytdlp.noCookies().run(); //クッキーを読み込まない(yt-dlpのデフォルト)
ブラウザからクッキーを読み込むことができます。読み込む場合は、何かしらの値を指定する必要があります。指定形式はyt-dlpの公式ドキュメントをご覧ください。
関数名: cookiesFromBrowser()
、noCookiesFromBrowser()
引数の型: String型
yt-dlpのオプション: --cookies-from-browser
、--no-cookies-from-browser
ytdlp.cookiesFromBrowser('Browser[+Keyring][:Profile][::Container]').run(); //ブラウザからクッキーを読み込む
ytdlp.noCookiesFromBrowser().run(); //ブラウザからクッキーを読み込まない(yt-dlpのデフォルト)
ダウンロードした情報を永久に保存するディレクトリパスを指定できます。指定する場合は、何かしらの値を指定する必要があります。
関数名: cacheDir()
、noCacheDir()
、rmCacheDir()
引数の型: String型
yt-dlpのオプション: --cache-dir
、--no-cache-dir
、--rm-cache-dir
ytdlp.cacheDir('Dir').run(); //キャッシュを保存する
ytdlp.noCacheDir().run(); //キャッシュを保存しない
ytdlp.rmCacheDir().run(); //キャッシュを保存せず、すべて削除する
サムネイル画像をダウンロードすることができます。writeAllThumbnails()
を使用すると全ての形式のサムネイル画像がダウンロードされます。
関数名: writeThumbnail()
、writeAllThumbnails()
、noWriteThumbnail()
yt-dlpのオプション: --write-thumbnail
、--write-all-thumbnails
、--no-write-thumbnail
ytdlp.writeThumbnail().run(); //サムネイルをダウンロードする
ytdlp.writeAllThumbnails().run(); //全てのサムネイルをダウンロードする
ytdlp.noWriteThumbnail().run(); //サムネイルをダウンロードしない(yt-dlpのデフォルト)
指定された動画の利用可能なサムネイルをリストアップします。
関数名: listThumbnails()
yt-dlpのオプション: --list-thumbnails
ytdlp.listThumbnails().run();
インターネットショートカットを書き込むことができます。
関数名: writeLink()
、writeUrlLink()
、writeWeblocLink()
、writeDesktopLink()
yt-dlpのオプション: --write-link
、--write-url-link
、--write-webloc-link
、--write-desktop-link
ytdlp.writeLink().run(); //プラットフォームに応じてインターネットショートカットの種類を変えて書き込む
ytdlp.writeUrlLink().run(); //Windowsのインターネットショートカットを書き込む
ytdlp.writeWeblocLink().run(); //MacOSのインターネットショートカットを書き込む
ytdlp.writeDesktopLink().run(); //Linuxのインターネットショートカットを書き込む
yt-dlpの出力するログを最小限することができます。このオプションは、verbose()
と一緒に使用するとログをstderrに出力します。
関数名: quiet()
yt-dlpのオプション: -q
・--quiet
ytdlp.quiet().run();
yt-dlpによる警告を完全に無視します。
関数名: noWarnings()
yt-dlpのオプション: --no-warnings
ytdlp.noWarnings().run();
simulate()
を使用するとシミュレートのみが実行され、ダウンロードも書き込みも実行されません。
関数名: simulate()
、noSimulate()
yt-dlpのオプション: -s
・--simulate
、--no-simulate
ytdlp.simulate().run(); //シュミレーションのみを実行する
ytdlp.noSimulate().run(); //一覧表示等のオプションを使用しても動画をダウンロードする
「No video formats」のエラーを無視することができます。実際にダウンロードできない動画でもメタデータを抽出するのに便利です。
このオプションは実験的なオプションです。
関数名: ignoreNoFormatsError()
、noIgnoreNoFormatsError()
yt-dlpのオプション: --ignore-no-formats-error
、--no-ignore-no-formats-error
ytdlp.ignoreNoFormatsError().run(); //エラーを無視する
ytdlp.noIgnoreNoFormatsError().run(); //エラーを無視しない(yt-dlpのデフォルト)
動画のダウンロードをスキップし、その他関連ファイルのみを書き込みます。
関数名: skipDownload()
、noDownload()
yt-dlpのオプション: --skip-download
・--no-download
ytdlp.skipDownload().run();
ytdlp.noDownload().run();
シュミレーションするだけだが、テンプレートを使用して指定された動画の諸情報を表示する。このオプションは、複数回指定することができます。
関数名: print()
引数の型: String型
yt-dlpのオプション: -O
・--print
ytdlp.print('[When:]Template').run();
シュミレーションするだけだが、テンプレートを使用して指定された動画の諸情報をファイルに書き込むことができます。このオプションは、複数回指定することができます。
関数名: printToFile()
引数の型: String型
yt-dlpのオプション: --print-to-file
ytdlp.printToFile('[When:]Template File').run();
各動画のJSON情報を表示します。指定されたURLに対してのJSON情報がほしい場合は、dumpSingleJson()
を使用してください。
関数名: dumpJson()
yt-dlpのオプション: -j
・--dump-json
ytdlp.dumpJson().run();
指定されたURLのJSON情報を表示します。各動画のJSON情報がほしい場合は、dumpJson()
を使用してください。
関数名: dumpSingleJson()
yt-dlpのオプション: -J
・--dump-single-json
ytdlp.dumpSingleJson().run();
シュミレーションでの実行でもエラーが発生しない限りダウンロードアーカイブにエントリーを記述します。このオプションは、どちらの関数を指定しても同じ結果となります。
関数名: forceWriteArchive()
、forceDownloadArchive()
yt-dlpのオプション: --force-write-archive
・--force-download-archive
ytdlp.forceWriteArchive().run();
ytdlp.forceDownloadArchive().run();
進捗状況(プログレスバー)を改行して出力できます。
関数名: newline()
yt-dlpのオプション: --newline
ytdlp.newline().run();
進捗状況を表示したくない場合は、noProgress()
を使用してください。progress()
を使用するとquiet()
が適応されていても進捗状況を表示します。
関数名: noProgress()
、progress()
yt-dlpのオプション: --no-progress
、--progress
ytdlp.noProgress().run(); //進捗状況を表示しない
ytdlp.progress().run(); //quiet()を適応していても進捗状況を表示する
コンソールのタイトルバーを進捗状況にすることができます。
関数名: consoleTitle()
yt-dlpのオプション: --console-title
ytdlp.consoleTitle().run();
進捗状況をテンプレートで指定することができます。このオプションには、何かしらの値を指定する必要があります。指定形式はyt-dlpの公式ドキュメントをご覧ください。
関数名: progressTemplate()
引数の型: String型
yt-dlpのオプション: --progress-template
ytdlp.progressTemplate('[Types:]Template').run();
ダウンロード等に関する各種デバッグ情報を表示できます。
関数名: verbose()
yt-dlpのオプション: -v
・--verbose
ytdlp.verbose().run();
ダウンロードしたページを、base64エンコードしたものを表示できます。このオプションは、問題のデバッグに使用されます。ファイルに書き込む必要がある場合は、writePages()
を使用してください。
関数名: dumpPages()
yt-dlpのオプション: --dump-pages
ytdlp.dumpPages().run();
ダウンロードした中間ページをyt-dlpを実行しているディレクトリに書き込みます。このオプションは、問題のデバッグに使用されます。base64でログに出力する必要がある場合は、dumpPages()
を使用してください。
関数名: writePages()
yt-dlpのオプション: --write-pages
ytdlp.writePages().run();
HTTPの送受信トラフィックを表示する必要がある場合は、このオプションを使用してください。
関数名: printTraffic()
yt-dlpのオプション: --print-traffic
ytdlp.printTraffic().run();
指定されたエンコーディングの使用を強制できます。このオプションには、何かしらの値を指定する必要があります。
このオプションは実験的なオプションです。
関数名: encoding()
引数の型: String型
yt-dlpのオプション: --encoding
ytdlp.encoding('Encoding').run();
RFC 5746 secure renegotiationをサポートしないサーバーへのHTTPS接続を許可する必要がある場合は、このオプションを使用してください。
関数名: legacyServerConnect()
yt-dlpのオプション: --legacyServerConnect
ytdlp.legacyServerConnect().run();
HTTPS証明書の検証をスキップしたい場合は、このオプションを使用してください。
関数名: noCheckCertificates()
yt-dlpのオプション: --no-check-certificates
ytdlp.noCheckCertificates().run();
暗号化されていない接続を使用して動画情報を取得できます。このオプションは、現在YouTubeのみのサポートとなっています。
関数名: preferInsecure()
yt-dlpのオプション: --prefer-insecure
ytdlp.preferInsecure().run();
追加してHTTPヘッダーを指定する必要がある場合は、このオプションを使用してください。このオプションには、何かしらの値を指定する必要があります。指定形式はyt-dlpの公式ドキュメントをご覧ください。
関数名: addHeaders()
引数の型: String型
yt-dlpのオプション: --add-headers
ytdlp.addHeaders('Field:Value').run();
アラビア語などの右から書く言語等を扱うときにこのオプションを使用してください。詳細はyt-dlpの公式ドキュメントをご覧ください。
関数名: bidiWorkaround()
yt-dlpのオプション: --bidi-workaround
ytdlp.bidiWorkaround().run();
データ抽出中のリクエストの間に一時停止する時間を指定できます。このオプションには、秒数を指定してください。
関数名: sleepRequests()
引数の型: String型
、Number型
yt-dlpのオプション: --sleep-requests
ytdlp.sleepRequests('Seconds').run();
各ダウンロードの前に一時停止する時間を指定できます。このオプションには、秒数を指定してください。このオプションと、maxSleepInterval()
が一緒に使用された場合は一時停止する最小時間となります。
このオプションは、どちらの関数を使用しても同じ結果となります。
関数名: sleepInterval()
・minSleepInterval()
引数の型: String型
、Number型
yt-dlpのオプション: --sleep-interval
・--min-sleep-interval
ytdlp.sleepInterval('Interval').run();
ytdlp.minSleepInterval('Interval').run();
一時停止する時間の最大秒数を指定できます。このオプションには、秒数を指定してください。このオプションは、sleepInterval()
やminSleepInterval()
と一緒に使用することが可能です。一緒に使用すると、sleepInterval()
やminSleepInterval()
は一時停止の最小時間の指定オプションとなります。
関数名: maxSleepInterval()
引数の型: String型
、Number型
yt-dlpのオプション: --max-sleep-interval
ytdlp.maxSleepInterval('Interval').run();
字幕をダウンロードする際の一時停止秒数を指定できます。このオプションには、秒数を指定してください。
関数名: sleepSubtitles()
引数の型: String型
、Number型
yt-dlpのオプション: --sleep-subtitles
ytdlp.sleepSubtitles('Interval').run();
ダウンロードする動画の映像・音声等のフォーマットを指定できます。このオプションには、何かしらの値を指定する必要があります。指定形式はyt-dlpの公式ドキュメントをご覧ください。
関数名: format()
引数の型: String型
yt-dlpのオプション: -f
、--format
ytdlp.format('Format').run();
「best」とみなされるフォーマットの判断基準を指定できます。このオプションには、何かしらの値を指定する必要があります。指定形式はyt-dlpの公式ドキュメントをご覧ください。
関数名: formatSort()
引数の型: String型
yt-dlpのオプション: -S
、--format-sort
ytdlp.formatSort('SortOrder').run();
この判断基準を強制したい場合は以下のオプションを使用してください。指定形式等は上記と同じです。
関数名: formatSortForce()
・SForce()
、noFormatSortForce()
引数の型: String型
yt-dlpのオプション: --format-sort-force
・--S-force
、--no-format-sort-force
/* 強制する */
ytdlp.formatSortForce().run();
ytdlp.SForce().run();
/* 強制しない(yt-dlpのデフォルト) */
ytdlp.noFormatSortForce().run();
複数の動画ストリームを1つのファイルに統合する必要がある場合は、このオプションを使用してください。noVideoMultiStreams()
を使用すると1つの動画ストリームに対して1つのファイルがダウンロードされます。
関数名: videoMultiStreams()
、noVideoMultiStreams()
yt-dlpのオプション: --video-multistreams
、--no-video-multistreams
ytdlp.videoMultiStreams().run(); //複数の動画ストリームを1つのファイルに統合する
ytdlp.noVideoMultiStreams().run(); //複数の動画ストリームを1つのファイルに統合しない(yt-dlpのデフォルト)
複数の音声ストリームを1つのファイルに統合する必要がある場合は、このオプションを使用してください。noAudioMultiStreams()
を使用すると1つの音声ストリームに対して1つのファイルがダウンロードされます。
関数名: audioMultiStreams()
、noAudioMultiStreams()
yt-dlpのオプション: --video-multistreams
、--no-video-multistreams
ytdlp.audioMultiStreams().run(); //複数の音声ストリームを1つのファイルに統合する
ytdlp.noAudioMultiStreams().run(); //複数の音声ストリームを1つのファイルに統合しない(yt-dlpのデフォルト)
同じ品質でフリーなフォーマットを優先できます。品質に関わりなく優先したい場合は、formatSort('ext')
を使用します。
関数名: preferFreeFormats()
、noPreferFreeFormats()
yt-dlpのオプション: --prefer-free-formats
、--no-prefer-free-formats
ytdlp.preferFreeFormats().run(); //優先する
ytdlp.noPreferFreeFormats().run(); //優先しない(yt-dlpのデフォルト)
動画のフォーマットを利用可能なチェックすることができます。
関数名: checkFormats()
、checkAllFormats()
、noCheckFormats()
yt-dlpのオプション: --check-formats
、--check-all-formats
、--no-check-formats
ytdlp.checkFormats().run(); //選択されているフォーマットが利用可能かを確認する
ytdlp.checkAllFormats().run(); //全てのフォーマットが利用可能かを確認する
ytdlp.noCheckFormats().run(); //利用可能なフォーマットであることを確認しない(yt-dlpのdエフォート)
動画の利用可能なフォーマットをリストアップできます。
関数名: listFormats()
yt-dlpのオプション: --list-formats
ytdlp.listFormats().run();
動画をマージする際に使用するコンテナを指定できます。現時点では、「avi・flv・mkv・mov・mp4・webm」がサポートされています。マージする必要がない場合は無視されます。このオプションには、何かしらの値を指定する必要があります。
関数名: mergeOutputFormat()
引数の型: String型
yt-dlpのオプション: --merge-output-format
ytdlp.mergeOutputFormat('Format').run();
字幕ファイルをディスクに書き込む必要がある場合は、このオプションを使用してください。
関数名: writeSubs()
、noWriteSubs()
yt-dlpのオプション: --write-subs
、--no-write-subs
ytdlp.writeSubs().run(); //字幕ファイルを書き込む
ytdlp.noWriteSubs().run(); //字幕ファイルを書き込まない(yt-dlpのデフォルト)
自動生成された字幕を書き込む必要がある場合は、以下のオプションを使用してください。
関数名: writeAutoSubs()
・writeAutomaticSubs()
、noWriteAutoSubs()
・noWriteAutomaticSubs()
yt-dlpのオプション: --write-auto-subs
・--write-automatic-subs
、--no-write-auto-subs
・--no-write-automatic-subs
/* 自動生成された字幕を書き込む */
ytdlp.writeAutoSubs().run();
ytdlp.writeAutomaticSubs().run();
/* 自動生成された字幕を書き込まない(yt-dlpのデフォルト) */
ytdlp.noWriteAutoSubs().run();
ytdlp.noWriteAutomaticSubs().run();
指定された動画で利用可能な字幕をリストアップできます。
関数名: listSubs()
yt-dlpのオプション: --list-subs
ytdlp.listSubs().run();
フォーマットの優先順位を指定することができます。このオプションには、何かしらの値を指定する必要があります。
関数名: subFormat()
引数の型: String型
yt-dlpのオプション: -sub-format
ytdlp.subFormat('Format').run();
ダウンロードする字幕の言語を指定できます。このオプションには、何かしらの値を指定する必要があります。指定形式はyt-dlpの公式ドキュメントをご覧ください。
関数名: subLangs()
引数の型: String型
yt-dlpのオプション: --sub-langs
ytdlp.subLangs('Regex').run();
ログイン時に、ユーザー名とパスワードを指定できます。このオプションには、何かしらの値を指定する必要があります。
関数名: username()
、password()
引数の型: String型
yt-dlpのオプション: -u
・--username
、-p
・--password
ytdlp.username('Username').run(); //ユーザー名の指定
ytdlp.password('Password').run(); //パスワードの指定
二要素認証コードを指定することができます。このオプションには、何かしらの値を指定する必要があります。
関数名: twofactor()
引数の型: String型
yt-dlpのオプション: -2
・--twofactor
ytdlp.twofactor('Code').run();
.netrc 認証データを使用したい場合は、このオプションを使用してください。
関数名: netrc()
引数の型: String型
yt-dlpのオプション: -n
・--netrc
ytdlp.netrc().run();
.netrc 認証データの場所を既定(~/.netrc)から変更したい場合は、以下のオプションを使用してください。
関数名: netrcLocation()
引数の型: String型
yt-dlpのオプション: --netrc-location
ytdlp.netrcLocation('Path').run();
動画のパスワードを指定する必要がある場合は、このオプションを使用してください。このオプションには、何かしらの値を指定する必要があります。
関数名: videoPassword()
引数の型: String型
yt-dlpのオプション: --video-password
ytdlp.videoPassword('Password').run();
Adobe PrimetimeのTVプロバイダーのIDを指定できます。このオプションには、何かしらの値を指定する必要があります。TVプロバイダーのIDをリストアップしたい場合は、apListMso()
を使用してください。
関数名: apMso()
引数の型: String型
yt-dlpのオプション: --ap-mso
ytdlp.apMso('Mso').run();
Adobe Primetimeへのログイン時に、ユーザー名とパスワードを指定できます。このオプションには、何かしらの値を指定する必要があります。
関数名: apUsername()
、apPassword()
引数の型: String型
yt-dlpのオプション: --ap-username
、--ap-password
ytdlp.apUsername('Username').run(); //ユーザー名の指定
ytdlp.apPassword('Password').run(); //パスワードの指定
Adobe PrimetimeのTVプロバイダーのIDをリストアップできます。
関数名: apListMso()
引数の型: String型
yt-dlpのオプション: --ap-list-mso
ytdlp.apListMso().run();
PEM形式のクライアント証明書ファイルのパスを指定できます。このオプションには、何かしらの値を指定する必要があります。秘密鍵を指定したい場合は、clientCertificateKey()
を使用してください。
関数名: clientCertificate()
引数の型: String型
yt-dlpのオプション: --client-certificate
ytdlp.clientCertificate('Path').run();
clientCertificate()
で指定された証明書の秘密鍵ファイルのパスを指定します。このオプションには、何かしらの値を指定する必要があります。
関数名: clientCertificateKey()
引数の型: String型
yt-dlpのオプション: --client-certificate-key
ytdlp.clientCertificateKey('Path').run();
clientCertificateKey()
で指定された秘密鍵にパスワードが存在する場合は、このオプションを使用してください。このオプションには、何かしらの値を指定する必要があります。
関数名: clientCertificatePassword()
引数の型: String型
yt-dlpのオプション: --client-certificate-password
ytdlp.clientCertificatePassword('Password').run();
動画が含まれるファイルを音声のみに変換できます。このオプションで必要なffmpegとffprobeはこのAPIによって自動でダウンロードされます。
変換先のフォーマットを指定したい場合は、audioFormat()
を使用し、音声品質を指定したい場合は、audioQuality()
を使用してください。
関数名: extractAudio()
yt-dlpのオプション: -x
・--extract-audio
ytdlp.extractAudio().run();
extractAudio()
を使用して変換された後の音声ファイルのフォーマットを指定できます。このオプションには、「best・aac・alac・flac・m4a・mp3・opus・vorbis・wav」のいずれかを指定する必要があります。(bestがyt-dlpのデフォルト)
関数名: audioFormat()
引数の型: String型
yt-dlpのオプション: --audio-format
ytdlp.audioFormat('Format').run();
extractAudio()
を使用して変換された後の音声ファイルの品質を指定できます。このオプションには、何かしらの値を指定する必要があります。
関数名: audioQuality()
引数の型: String型
yt-dlpのオプション: --audio-quality
ytdlp.audioQuality('Quality').run();
必要に応じて動画を別のコンテナへ再マックスできます。このオプションには、「avi・flv・gif・mkv・mov・mp4・webm・aac・aiff・alac・flac・m4a・mka・mp3・ogg・opus・vorbis・wav」のいずれかを指定する必要があります。指定されたコンテナが動画・音声コーデックをサポートしていない場合、処理は失敗します。
関数名: remuxVideo()
引数の型: String型
yt-dlpのオプション: --remux-video
ytdlp.remuxVideo('Format').run();
動画を別のフォーマットに再エンコードできます。このオプションには、何かしらの値を指定する必要があります。指定形式は、remuxVideo()
と同じです。
関数名: recodeVideo()
引数の型: String型
yt-dlpのオプション: --recode-video
ytdlp.recodeVideo('Format').run();
ポストプロセッサーに引数を渡すことができます。このオプションには、何かしらの値を指定する必要があります。指定形式はyt-dlpの公式ドキュメントをご覧ください。
このオプションは、どちらの関数を使用しても同じ結果となります。
関数名: postProcessorArgs()
、ppa()
引数の型: String型
yt-dlpのオプション: --postprocessor-args
・--ppa
ytdlp.postProcessorArgs('Name:Args').run();
ytdlp.ppa('Name:Args').run();
ダウンロードした変換前のファイルを残すことができます。
関数名: keepVideo()
、noKeepVideo()
yt-dlpのオプション: -k
・--keep-video
、--no-keep-video
ytdlp.keepVideo().run(); //変換前のファイルを残す
ytdlp.noKeepVideo().run(); //変換前のファイルを残さない(yt-dlpのデフォルト)
変換後のファイルを上書きできます。
関数名: postOverwrites()
、noPostOverwrites()
yt-dlpのオプション: --post-overwrites
、--no-post-overwrites
ytdlp.postOverwrites().run(); //上書きする(yt-dlpのデフォルト)
ytdlp.noPostOverwrites().run(); //上書きしない
動画に字幕を埋め込むことができます。(mp4、webm、mkvのみ対応)
関数名: embedSubs()
、noEmbedSubs()
yt-dlpのオプション: --embed-subs
、--no-embed-subs
ytdlp.embedSubs().run(); //字幕を埋め込む
ytdlp.noEmbedSubs().run(); //字幕を埋め込まない(yt-dlpのデフォルト)
動画のサムネイルをカバーアートとして埋め込むことができます。
関数名: embedThumbnail()
、noEmbedThumbnail()
yt-dlpのオプション: --embed-thumbnail
、--no-embed-thumbnail
ytdlp.embedThumbnail().run(); //サムネイルを埋め込む
ytdlp.noEmbedThumbnail().run(); //サムネイルを埋め込まない(yt-dlpのデフォルト)
動画ファイルにメタデータを埋め込むことができます。
関数名: embedMetadata()
・addMetadata()
、noEmbedMetadata()
・noAddMetadata()
yt-dlpのオプション: --embed-metadata
・--add-metadata
、--no-embed-metadata
・--no-add-metadata
/* メタデータを埋め込む */
ytdlp.embedMetadata().run();
ytdlp.addMetadata().run();
/* メタデータを埋め込まない(yt-dlpのデフォルト) */
ytdlp.noEmbedMetadata().run();
ytdlp.noAddMetadata().run();
動画ファイルにチャプターを埋め込むことができます。
関数名: embedChapters()
・addChapters()
、noEmbedChapters()
・noAddChapters()
yt-dlpのオプション: --embed-chapters
・--add-chapters
、--no-embed-chapters
・--no-add-chapters
/* チャプターを埋め込む */
ytdlp.embedChapters().run();
ytdlp.addChapters().run();
/* チャプターを埋め込まない(yt-dlpのデフォルト) */
ytdlp.noEmbedChapters().run();
ytdlp.noAddChapters().run();
mkv・mkaにinfoJsonを埋め込むことができます。
関数名: embedInfoJson()
、noEmbedInfoJson()
yt-dlpのオプション: --embed-info-json
、--no-embed-info-json
ytdlp.embedInfoJson().run(); //埋め込む
ytdlp.noEmbedInfoJson().run(); //埋め込まない
フィールドからタイトル等のメタデータを解析できます。このオプションには、何かしらの値を指定する必要があります。詳細は、メタデータの変更をご覧ください。
関数名: parseMetadata()
引数の型: String型
yt-dlpのオプション: --parse-metadata
ytdlp.parseMetadata('[When:]From:To').run();
正規表現でメタデータを書き換えることができます。このオプションには、何かしらの値を指定する必要があります。このオプションは、複数回の指定が可能です。
関数名: replaceInMetadata()
引数の型: String型
yt-dlpのオプション: --replace-in-metadata
ytdlp.replaceInMetadata('[When:]Fields Regex Replace').run();
拡張ファイル属性にメタデータを書き込むことができます。
関数名: xattrs()
yt-dlpのオプション: --xattrs
ytdlp.xattrs().run();
プレイリスト内の動画を連結できます。このオプションには、何かしらの値を指定する必要があります。指定形式はyt-dlpの公式ドキュメントをご覧ください。
関数名: concatPlaylist()
引数の型: String型
yt-dlpのオプション: --concat-playlist
ytdlp.concatPlaylist('Policy').run();
既知の不具合等を自動で修正できます。このオプションには、「never・warn・detect_or_warn・force」のいずれかを指定する必要があります。詳細についてはyt-dlpの公式ドキュメントをご覧ください。
関数名: fixup()
引数の型: String型
yt-dlpのオプション: --fixup
ytdlp.fixup('Policy').run();
ffmpegのバイナリディレクトリを指定する必要がある場合は、このオプションを使用します。
情報: ffmpegはこのAPIによって自動でダウンロードされるため何か理由がある場合を除き、指定する必要はありません。
関数名: ffmpegLocation()
引数の型: String型
yt-dlpのオプション: --ffmpeg-location
ytdlp.ffmpegLocation('Path').run();
動画のダウンロード後にコマンドを実行することができます。詳細についてはyt-dlpの公式ドキュメントをご覧ください。
関数名: exec()
、noExec()
引数の型: String型
yt-dlpのオプション: --exec
、--no-exec
ytdlp.exec('[When:]Cmd').run(); //コマンドを定義する
ytdlp.noExec().run(); //exec()で定義された物を削除する
字幕を他のフォーマットに変換できます。このオプションには、「ass・lrc・srt・vtt」のいずれかを指定する必要があります。
関数名: convertSubs()
・convertSubtitles()
引数の型: String型
yt-dlpのオプション: --convert-subs
・--convert-subtitles
ytdlp.convertSubs('Format').run();
ytdlp.convertSubtitles('Format').run();
サムネイルを他のフォーマットに変換できます。このオプションには、「jpg・png・webp」のいずれかを指定する必要があります。詳細はyt-dlpの公式ドキュメントをご覧ください。
関数名: convertThumbnails()
引数の型: String型
yt-dlpのオプション: --convert-thumbnails
ytdlp.convertThumbnails('Format').run();
動画のチャプターごとにファイルを分割できます。
関数名: splitChapters()
、noSplitChapters()
yt-dlpのオプション: --split-chapters
、--no-split-chapters
ytdlp.splitChapters().run(); //チャプターごとにファイルを分割する
ytdlp.noSplitChapters().run(); //チャプターごとにファイルを分割しない(yt-dlpのデフォルト)
指定された正規表現に一致するチャプターを削除できます。このオプションには、何かしらの値を指定する必要があります。指定形式はdownloadSections()
と同じです。
関数名: removeChapters()
、noRemoveChapters()
引数の型: String型
yt-dlpのオプション: --remove-chapters
、--no-remove-chapters
ytdlp.removeChapters('Regex').run(); //チャプターを削除する
ytdlp.noRemoveChapters().run(); //チャプターを削除しない(yt-dlpのデフォルト)
チャプターを削除・追加する際にkeyframeを設定し直すことができます。
関数名: forceKeyframesAtCuts()
、noForceKeyframesAtCuts()
yt-dlpのオプション: --force-keyframes-at-cuts
、--no-force-keyframes-at-cuts
ytdlp.forceKeyframesAtCuts().run(); //設定し直す
ytdlp.noForceKeyframesAtCuts().run(); //設定し直さない(yt-dlpのデフォルト)
大文字・小文字を区別して有効にするポストプロセッサープラグインの名前を指定できます。このオプションには、何かしらの値を指定する必要があります。指定形式はyt-dlpの公式ドキュメントをご覧ください。
関数名: usePostProcessor()
引数の型: String型
yt-dlpのオプション: --use-postprocessor
ytdlp.usePostProcessor('Name[:Args]').run();
SponsorBlock APIを使用してチャプターを書き込むことができます。このオプションには、何かしらのカテゴリを指定する必要があります。指定できるカテゴリは、「sponsor・intro・outro・selfpromo・preview・filler・interaction・music_offtopic・poi_highlight・all」です。このカテゴリの説明については、Segment Categoriesをご覧ください。
関数名: sponsorBlockMark()
引数の型: String型
yt-dlpのオプション: --sponsorblock-mark
ytdlp.sponsorBlockMark('Cats').run();
ここで指定されたチャプターを削除したい場合は、以下のオプションを使用してください。
関数名: sponsorBlockRemove()
引数の型: String型
yt-dlpのオプション: --sponsorblock-remove
ytdlp.sponsorBlockRemove('Cats').run();
sponsorBlockMark()
で設定されたチャプターのタイトルテンプレートを指定するsponsorBlockMark()
で設定されたチャプターのタイトルテンプレートを指定できます。このオプションには、何かしらの値を指定する必要があります。利用可能な値は、「start_time・end_time・category・categories・name・category_names」です。
関数名: sponsorBlockChapterTitle()
引数の型: String型
yt-dlpのオプション: --sponsorblock-chapter-title
ytdlp.sponsorBlockChapterTitle('Template').run();
sponsorBlockMark()
とsponsorBlockRemove()
を無効にできます。
関数名: noSponsorBlock()
yt-dlpのオプション: --no-sponsorblock
ytdlp.noSponsorBlock().run();
SponsorBlock APIのURLを指定できます。このオプションには、何かしらの値を指定する必要があります。
関数名: sponsorBlockApi()
yt-dlpのオプション: --sponsorblock-api
ytdlp.sponsorBlockApi().run();
Extractorのエラーに対する再試行回数を指定できます。このオプションには、何かしらの値を指定する必要があります。
関数名: extractorRetries()
引数の型: String型
、Number型
yt-dlpのオプション: --extractor-retries
ytdlp.extractorRetries('Retries').run();
ライブストリーム(ダイナミック)DASHマニフェストを処理できます。
関数名: allowDynamicMpd()
・noIgnoreDynamicMpd()
、ignoreDynamicMpd()
・noAllowDynamicMpd()
yt-dlpのオプション: --allow-dynamic-mpd
・--no-ignore-dynamic-mpd
、--ignore-dynamic-mpd
・--no-allow-dynamic-mpd
//ライブストリーム(ダイナミック)DASHマニフェストを処理する(yt-dlpのデフォルト)
ytdlp.allowDynamicMpd().run();
ytdlp.noIgnoreDynamicMpd().run();
//ライブストリーム(ダイナミック)DASHマニフェストを処理しない
ytdlp.ignoreDynamicMpd().run();
ytdlp.noAllowDynamicMpd().run();
HLS形式の動画を広告などの不連続部分で異なるフォーマットに分割することができます。
関数名: hlsSplitDiscontinuity()
、noHlsSplitDiscontinuity()
yt-dlpのオプション: --hls-split-discontinuity
、--no-hls-split-discontinuity
ytdlp.hlsSplitDiscontinuity().run(); //異なるフォーマットに分割する
ytdlp.noHlsSplitDiscontinuity().run(); //異なるフォーマットに分割しない(yt-dlpのデフォルト)
Extractorへ引数を渡すことができます。このオプションには、何かしらの値を指定する必要があります。このオプションは、複数回の指定が可能です。
関数名: extractorArgs()
引数の型: String型
yt-dlpのオプション: --extractor-args
ytdlp.extractorArgs('IE_Key:Args').run();
このAPIは、MITライセンスで公開されています。詳細はLICENSEファイルまたは以下のライセンス文をご覧ください。
MIT License
Copyright © 2023 YBD Project
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
FAQs
yt-dlpをNode.jsで簡単に利用できるようにするAPI
The npm package node-fluent-ytdlp receives a total of 3 weekly downloads. As such, node-fluent-ytdlp popularity was classified as not popular.
We found that node-fluent-ytdlp demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Open source maintainers are urging GitHub to let them block Copilot from submitting AI-generated issues and pull requests to their repositories.
Research
Security News
Malicious Koishi plugin silently exfiltrates messages with hex strings to a hardcoded QQ account, exposing secrets in chatbots across platforms.
Research
Security News
Malicious PyPI checkers validate stolen emails against TikTok and Instagram APIs, enabling targeted account attacks and dark web credential sales.