yt-dlp เป็นเครื่องมือดาวน์โหลดเสียง/วิดีโอบรรทัดคำสั่งที่มีฟีเจอร์หลากหลาย พร้อมรองรับเว็บไซต์นับพันแห่ง โปรเจ็กต์นี้แยกจาก youtube-dl โดยอิงจาก youtube-dlc ที่ไม่ได้ใช้งานในขณะนี้
การติดตั้ง
คำแนะนำโดยละเอียด
ปล่อยไฟล์
อัปเดต
การพึ่งพาอาศัยกัน
รวบรวม
การใช้งานและตัวเลือก
ตัวเลือกทั่วไป
ตัวเลือกเครือข่าย
ข้อ จำกัด ทางภูมิศาสตร์
การเลือกวิดีโอ
ตัวเลือกการดาวน์โหลด
ตัวเลือกระบบไฟล์
ตัวเลือกภาพขนาดย่อ
ตัวเลือกทางลัดอินเทอร์เน็ต
ตัวเลือกการใช้คำฟุ่มเฟือยและการจำลอง
วิธีแก้ปัญหา
ตัวเลือกรูปแบบวิดีโอ
ตัวเลือกคำบรรยาย
ตัวเลือกการรับรองความถูกต้อง
ตัวเลือกหลังการประมวลผล
ตัวเลือกสปอนเซอร์บล็อค
ตัวเลือกตัวแยก
การกำหนดค่า
การเข้ารหัสไฟล์การกำหนดค่า
การรับรองความถูกต้องด้วย netrc
หมายเหตุเกี่ยวกับตัวแปรสภาพแวดล้อม
เทมเพลตเอาท์พุต
ตัวอย่างเทมเพลตเอาท์พุต
การเลือกรูปแบบ
การกรองรูปแบบ
การเรียงลำดับรูปแบบ
ตัวอย่างการเลือกรูปแบบ
การปรับเปลี่ยนข้อมูลเมตา
การปรับเปลี่ยนตัวอย่างข้อมูลเมตา
อาร์กิวเมนต์ของสารสกัด
ปลั๊กอิน
การติดตั้งปลั๊กอิน
การพัฒนาปลั๊กอิน
การฝัง YT-DLP
ตัวอย่างการฝัง
การเปลี่ยนแปลงจาก YOUTUBE-DL
คุณสมบัติใหม่
ความแตกต่างในลักษณะการทำงานเริ่มต้น
ตัวเลือกที่เลิกใช้แล้ว
มีส่วนร่วม
การเปิดประเด็น
คำแนะนำสำหรับนักพัฒนา
วิกิ
คำถามที่พบบ่อย
คุณสามารถติดตั้ง yt-dlp โดยใช้ไบนารี pip หรืออันใดอันหนึ่งโดยใช้ตัวจัดการแพ็คเกจบุคคลที่สาม ดูวิกิสำหรับคำแนะนำโดยละเอียด
ไฟล์ | คำอธิบาย |
---|---|
yt-dlp | ไบนารี zipimport ที่ไม่ขึ้นอยู่กับแพลตฟอร์ม ต้องการ Python (แนะนำสำหรับ Linux/BSD ) |
yt-dlp.exe | Windows (Win8+) ไบนารี x64 แบบสแตนด์อโลน (แนะนำสำหรับ Windows ) |
yt-dlp_macos | ปฏิบัติการแบบสแตนด์อโลน Universal MacOS (10.15+) (แนะนำสำหรับ MacOS ) |
ไฟล์ | คำอธิบาย |
---|---|
yt-dlp_x86.exe | Windows (Win8+) ไบนารี x86 (32 บิต) แบบสแตนด์อโลน |
yt-dlp_linux | ไบนารี x64 แบบสแตนด์อโลนของ Linux |
yt-dlp_linux_armv7l | Linux แบบสแตนด์อโลน armv7l (32 บิต) ไบนารี |
yt-dlp_linux_aarch64 | Linux แบบสแตนด์อโลน aarch64 (64 บิต) ไบนารี |
yt-dlp_win.zip | ปฏิบัติการ Windows ที่ไม่ได้ทำแพ็กเกจ (ไม่มีการอัปเดตอัตโนมัติ) |
yt-dlp_macos.zip | ปฏิบัติการ MacOS ที่ไม่ได้บรรจุแพ็คเกจ (10.15+) ได้ (ไม่มีการอัปเดตอัตโนมัติ) |
yt-dlp_macos_legacy | MacOS (10.9+) ปฏิบัติการ x64 แบบสแตนด์อโลนได้ |
ไฟล์ | คำอธิบาย |
---|---|
yt-dlp.tar.gz | ที่มา ทาร์บอล |
SHA2-512SUMS | ผลรวม SHA512 แบบ GNU |
SHA2-512SUMS.sig | ไฟล์ลายเซ็น GPG สำหรับผลรวม SHA512 |
SHA2-256SUMS | ผลรวม SHA256 แบบ GNU |
SHA2-256SUMS.sig | ไฟล์ลายเซ็น GPG สำหรับผลรวม SHA256 |
รหัสสาธารณะที่สามารถใช้เพื่อตรวจสอบลายเซ็น GPG มีอยู่ที่นี่ ตัวอย่างการใช้งาน:
curl -L https://github.com/yt-dlp/yt-dlp/raw/master/public.key | gpg --import gpg --verify SHA2-256SUMS.sig SHA2-256SUMS gpg --verify SHA2-512SUMS.sig SHA2-512SUMS
หมายเหตุ : ไฟล์ manpages, การเติมเชลล์ (เติมข้อความอัตโนมัติ) ฯลฯ มีอยู่ใน tarball ต้นทาง
คุณสามารถใช้ yt-dlp -U
เพื่ออัปเดตหากคุณใช้ไบนารี่รีลีส
หากคุณติดตั้งด้วย pip ให้รันคำสั่งเดียวกับที่ใช้ในการติดตั้งโปรแกรมอีกครั้ง
สำหรับผู้จัดการแพ็คเกจบุคคลที่สามอื่นๆ โปรดดูวิกิหรืออ้างอิงถึงเอกสารประกอบของพวกเขา
ขณะนี้มีช่องทางการเผยแพร่สามช่องทางสำหรับไบนารี: stable
, nightly
และ master
stable
เป็นช่องเริ่มต้น และการเปลี่ยนแปลงหลายอย่างได้รับการทดสอบโดยผู้ใช้ช่องรายการ nightly
และรายการ master
ช่อง nightly
มีกำหนดเผยแพร่ทุกวันประมาณเที่ยงคืน UTC เพื่อภาพรวมของแพตช์ใหม่และการเปลี่ยนแปลงของโปรเจ็กต์ นี่คือ ช่องทางที่แนะนำสำหรับผู้ใช้ทั่วไป ของ yt-dlp การเผยแพร่ nightly
มีให้จาก yt-dlp/yt-dlp-nightly-builds หรือเป็นรุ่นการพัฒนาของแพ็คเกจ yt-dlp
PyPI (ซึ่งสามารถติดตั้งได้ด้วยแฟล็ก --pre
ของ pip)
ช่อง master
นำเสนอคุณสมบัติการเปิดตัวที่สร้างขึ้นหลังจากการพุชไปยังสาขาหลักแต่ละครั้ง และสิ่งเหล่านี้จะมีการแก้ไขและเพิ่มเติมล่าสุด แต่ก็อาจมีแนวโน้มที่จะถดถอยได้มากกว่า มีให้ใช้งานจาก yt-dlp/yt-dlp-master-builds
เมื่อใช้ --update
/ -U
ไบนารี่ release จะอัปเดตเป็นช่องปัจจุบันเท่านั้น --update-to CHANNEL
สามารถใช้เพื่อสลับไปยังช่องอื่นเมื่อมีเวอร์ชันใหม่กว่า --update-to [CHANNEL@]TAG
ยังสามารถใช้เพื่ออัปเกรดหรือดาวน์เกรดเป็นแท็กเฉพาะจากช่องได้
คุณยังอาจใช้ --update-to
(
) เพื่ออัปเดตเป็นช่องบนพื้นที่เก็บข้อมูลที่แตกต่างไปจากเดิมอย่างสิ้นเชิง โปรดใช้ความระมัดระวังว่าคุณกำลังอัปเดตพื้นที่เก็บข้อมูลใด เนื่องจากไม่มีการตรวจสอบไบนารีจากที่เก็บข้อมูลอื่น
ตัวอย่างการใช้งาน:
yt-dlp --update-to master
สลับไปที่ช่อง master
และอัปเดตเป็นรุ่นล่าสุด
yt-dlp --update-to [email protected]
อัปเกรด/ดาวน์เกรดเพื่อเผยแพร่เป็นแท็กช่อง stable
2023.07.06
yt-dlp --update-to 2023.10.07
อัปเกรด/ดาวน์เกรดเป็นแท็ก 2023.10.07
หากมีอยู่ในช่องปัจจุบัน
yt-dlp --update-to example/[email protected]
อัปเกรด/ดาวน์เกรดเป็นรีลีสจากพื้นที่เก็บข้อมูล example/yt-dlp
แท็ก 2023.09.24
สำคัญ : ผู้ใช้ที่ประสบปัญหากับรุ่น stable
ควรติดตั้งหรืออัปเดตเป็นรุ่น nightly
ก่อนที่จะส่งรายงานข้อบกพร่อง:
# To update to nightly from stable executable/binary: yt-dlp --update-to nightly # To install nightly with pip: python3 -m pip install -U --pre "yt-dlp[default]"
รองรับ Python เวอร์ชัน 3.9+ (CPython) และ 3.10+ (PyPy) เวอร์ชันและการใช้งานอื่นๆ อาจทำงานอย่างถูกต้องหรือไม่ก็ได้
แม้ว่าการขึ้นต่อกันอื่นๆ ทั้งหมดจะเป็นทางเลือก แต่ขอแนะนำ ffmpeg
และ ffprobe
ffmpeg และ ffprobe - จำเป็นสำหรับการรวมไฟล์วิดีโอและเสียงแยกกัน รวมถึงงานหลังการประมวลผลต่างๆ ใบอนุญาตขึ้นอยู่กับงานสร้าง
มีข้อบกพร่องใน ffmpeg ที่ทำให้เกิดปัญหาต่างๆ เมื่อใช้ควบคู่ไปกับ yt-dlp เนื่องจาก ffmpeg เป็นการพึ่งพาที่สำคัญ เราจึงจัดเตรียมบิวด์ที่กำหนดเองพร้อมแพตช์สำหรับปัญหาบางส่วนเหล่านี้ที่ yt-dlp/FFmpeg-Builds ดู readme สำหรับรายละเอียดเกี่ยวกับปัญหาเฉพาะที่แก้ไขโดยบิวด์เหล่านี้
สำคัญ : สิ่งที่คุณต้องการคือ ffmpeg binary ไม่ใช่ แพ็คเกจ Python ที่มีชื่อเดียวกัน
certifi * - จัดเตรียมชุดใบรับรองหลักของ Mozilla ได้รับอนุญาตภายใต้ MPLv2
brotli * หรือ brotlicffi - รองรับการเข้ารหัสเนื้อหา Brotli ทั้งสองได้รับใบอนุญาตภายใต้ MIT 1 2
websockets * - สำหรับการดาวน์โหลดผ่าน websocket ได้รับอนุญาตภายใต้ BSD-3-ข้อ
คำขอ * - ไลบรารี HTTP สำหรับพร็อกซี HTTPS และการสนับสนุนการเชื่อมต่อแบบถาวร ได้รับอนุญาตภายใต้ Apache-2.0
ข้อมูลต่อไปนี้ให้การสนับสนุนคำขอเลียนแบบเบราว์เซอร์ อาจจำเป็นสำหรับบางไซต์ที่ใช้ลายนิ้วมือ TLS
curl_cffi (แนะนำ) - การผูก Python สำหรับการปลอมตัวเป็นลอน กำหนดเป้าหมายการแอบอ้างบุคคลอื่นสำหรับ Chrome, Edge และ Safari ได้รับอนุญาตภายใต้ MIT
สามารถติดตั้งได้ด้วยกลุ่ม curl-cffi
เช่น pip install "yt-dlp[default,curl-cffi]"
ปัจจุบันรวมอยู่ใน yt-dlp.exe
, yt-dlp_linux
และ yt-dlp_macos
builds
mutagen * - สำหรับ --embed-thumbnail
ในบางรูปแบบ ได้รับอนุญาตภายใต้ GPLv2+
AtomicParsley - สำหรับ --embed-thumbnail
ในไฟล์ mp4
/ m4a
เมื่อ mutagen
/ ffmpeg
ไม่สามารถทำได้ ได้รับอนุญาตภายใต้ GPLv2+
xattr , pyxattr หรือ setfattr - สำหรับการเขียนข้อมูลเมตา xattr ( --xattr
) บน Mac และ BSD ได้รับอนุญาตภายใต้ MIT, LGPL2.1 และ GPLv2+ ตามลำดับ
pycryptodomex * - สำหรับการถอดรหัสสตรีม AES-128 HLS และข้อมูลอื่น ๆ ได้รับอนุญาตภายใต้ BSD-2-Clause
phantomjs - ใช้ในโปรแกรมแยกไฟล์ที่ต้องรันจาวาสคริปต์ ได้รับอนุญาตภายใต้ BSD-3-ข้อ
Secretstorage * - สำหรับ --cookies-from-browser
เพื่อเข้าถึงพวงกุญแจ Gnome ในขณะที่ถอดรหัสคุกกี้ของเบราว์เซอร์ที่ใช้ Chromium บน Linux ได้รับอนุญาตภายใต้ BSD-3-ข้อ
โปรแกรมดาวน์โหลดภายนอกใดๆ ที่คุณต้องการใช้กับ --downloader
avconv และ avprobe - ตอนนี้ เลิกใช้ ทางเลือกอื่นแทน ffmpeg แล้ว ใบอนุญาตขึ้นอยู่กับงานสร้าง
sponskrub - สำหรับการใช้ตัวเลือก sponskrub ที่เลิกใช้งาน แล้ว ได้รับอนุญาตภายใต้ GPLv3+
rtmpdump - สำหรับการดาวน์โหลดสตรีม rtmp
ffmpeg สามารถใช้แทน --downloader ffmpeg
ได้ ได้รับอนุญาตภายใต้ GPLv2+
mplayer หรือ mpv - สำหรับการดาวน์โหลดสตรีม rstp
/ mms
ffmpeg สามารถใช้แทน --downloader ffmpeg
ได้ ได้รับอนุญาตภายใต้ GPLv2+
หากต้องการใช้หรือแจกจ่ายการขึ้นต่อกัน คุณต้องยอมรับข้อกำหนดสิทธิ์การใช้งานที่เกี่ยวข้อง
ไบนารี่รีลีสแบบสแตนด์อโลนถูกสร้างขึ้นด้วยล่าม Python และแพ็คเกจที่มีเครื่องหมาย * รวมอยู่ด้วย
หากคุณไม่มีการพึ่งพาที่จำเป็นสำหรับงานที่คุณกำลังพยายาม yt-dlp จะเตือนคุณ การขึ้นต่อกันที่มีอยู่ทั้งหมดในปัจจุบันจะปรากฏที่ด้านบนของเอาต์พุต --verbose
หากต้องการสร้างไฟล์ปฏิบัติการแบบสแตนด์อโลน คุณต้องมี Python และ pyinstaller
(รวมถึงการอ้างอิงเพิ่มเติมใดๆ ของ yt-dlp หากจำเป็น) ไฟล์ปฏิบัติการจะถูกสร้างขึ้นสำหรับสถาปัตยกรรม CPU เดียวกันกับที่ Python ใช้
คุณสามารถรันคำสั่งต่อไปนี้:
python3 devscripts/install_deps.py --include pyinstaller python3 devscripts/make_lazy_extractors.py python3 -m bundle.pyinstaller
ในบางระบบ คุณอาจจำเป็นต้องใช้ py
หรือ python
แทน python3
python -m bundle.pyinstaller
ยอมรับอาร์กิวเมนต์ใด ๆ ที่สามารถส่งผ่านไปยัง pyinstaller
เช่น --onefile/-F
หรือ --onedir/-D
ซึ่งมีเอกสารเพิ่มเติมอยู่ที่นี่
หมายเหตุ : Pyinstaller เวอร์ชันต่ำกว่า 4.4 ไม่รองรับ Python ที่ติดตั้งจาก Windows store โดยไม่ใช้สภาพแวดล้อมเสมือน
สำคัญ : การรัน pyinstaller
โดยตรง แทนที่จะ ใช้ python -m bundle.pyinstaller
ไม่ได้ รับการสนับสนุนอย่างเป็นทางการ สิ่งนี้อาจหรืออาจทำงานไม่ถูกต้อง
คุณจะต้องมีเครื่องมือสร้าง python
(3.9+), zip
, make
(GNU), pandoc
* และ pytest
*
หลังจากติดตั้งแล้ว ให้รัน make
.
คุณยังสามารถเรียกใช้ make yt-dlp
แทนเพื่อคอมไพล์เฉพาะไบนารี่โดยไม่ต้องอัปเดตไฟล์เพิ่มเติมใดๆ (ไม่จำเป็นต้องใช้เครื่องมือสร้างที่มีเครื่องหมาย * สำหรับสิ่งนี้)
devscripts/install_deps.py
- ติดตั้งการพึ่งพาสำหรับ yt-dlp
devscripts/update-version.py
- อัปเดตหมายเลขเวอร์ชันตามวันที่ปัจจุบัน
devscripts/set-variant.py
- ตั้งค่าตัวแปรบิลด์ของไฟล์เรียกทำงาน
devscripts/make_changelog.py
- สร้างบันทึกการเปลี่ยนแปลงมาร์กดาวน์โดยใช้ข้อความคอมมิตแบบสั้นและอัปเดตไฟล์ CONTRIBUTORS
devscripts/make_lazy_extractors.py
- สร้างเครื่องมือแยกข้อมูลแบบขี้เกียจ การเรียกใช้สิ่งนี้ก่อนสร้างไบนารี (ตัวแปรใดๆ ก็ตาม) จะช่วยปรับปรุงประสิทธิภาพการเริ่มต้นระบบ ตั้งค่าตัวแปรสภาพแวดล้อม YTDLP_NO_LAZY_EXTRACTORS
เป็นสิ่งที่ไม่ว่างเปล่าเพื่อปิดใช้งานการโหลดตัวแยกข้อมูลแบบขี้เกียจ
หมายเหตุ: ดู --help
สำหรับข้อมูลเพิ่มเติม
หากคุณแยกโปรเจ็กต์บน GitHub คุณสามารถรันเวิร์กโฟลว์การสร้างของ fork เพื่อสร้างเวอร์ชันที่เลือกเป็นอาร์ติแฟกต์ได้โดยอัตโนมัติ หรือคุณสามารถเรียกใช้เวิร์กโฟลว์การเผยแพร่หรือเปิดใช้งานเวิร์กโฟลว์ตอนกลางคืนเพื่อสร้างเวอร์ชันเต็ม (ก่อน) การเผยแพร่
yt-dlp [OPTIONS] [--] URL [URL...]
Ctrl+F
คือเพื่อนของคุณ :D
-h, --help Print this help text and exit --version Print program version and exit -U, --update Update this program to the latest version --no-update Do not check for updates (default) --update-to [CHANNEL]@[TAG] Upgrade/downgrade to a specific version. CHANNEL can be a repository as well. CHANNEL and TAG default to "stable" and "latest" respectively if omitted; See "UPDATE" for details. Supported channels: stable, nightly, master -i, --ignore-errors Ignore download and postprocessing errors. The download will be considered successful even if the postprocessing fails --no-abort-on-error Continue with next video on download errors; e.g. to skip unavailable videos in a playlist (default) --abort-on-error Abort downloading of further videos if an error occurs (Alias: --no-ignore-errors) --dump-user-agent Display the current user-agent and exit --list-extractors List all supported extractors and exit --extractor-descriptions Output descriptions of all supported extractors and exit --use-extractors NAMES Extractor names to use separated by commas. You can also use regexes, "all", "default" and "end" (end URL matching); e.g. --ies "holodex.*,end,youtube". Prefix the name with a "-" to exclude it, e.g. --ies default,-generic. Use --list-extractors for a list of extractor names. (Alias: --ies) --default-search PREFIX Use this prefix for unqualified URLs. E.g. "gvsearch2:python" downloads two videos from google videos for the search term "python". Use the value "auto" to let yt-dlp guess ("auto_warning" to emit a warning when guessing). "error" just throws an error. The default value "fixup_error" repairs broken URLs, but emits an error if this is not possible instead of searching --ignore-config Don't load any more configuration files except those given to --config-locations. For backward compatibility, if this option is found inside the system configuration file, the user configuration is not loaded. (Alias: --no-config) --no-config-locations Do not load any custom configuration files (default). When given inside a configuration file, ignore all previous --config-locations defined in the current file --config-locations PATH Location of the main configuration file; either the path to the config or its containing directory ("-" for stdin). Can be used multiple times and inside other configuration files --plugin-dirs PATH Path to an additional directory to search for plugins. This option can be used multiple times to add multiple directories. Note that this currently only works for extractor plugins; postprocessor plugins can only be loaded from the default plugin directories --flat-playlist Do not extract the videos of a playlist, only list them --no-flat-playlist Fully extract the videos of a playlist (default) --live-from-start Download livestreams from the start. Currently only supported for YouTube (Experimental) --no-live-from-start Download livestreams from the current time (default) --wait-for-video MIN[-MAX] Wait for scheduled streams to become available. Pass the minimum number of seconds (or range) to wait between retries --no-wait-for-video Do not wait for scheduled streams (default) --mark-watched Mark videos watched (even with --simulate) --no-mark-watched Do not mark videos watched (default) --color [STREAM:]POLICY Whether to emit color codes in output, optionally prefixed by the STREAM (stdout or stderr) to apply the setting to. Can be one of "always", "auto" (default), "never", or "no_color" (use non color terminal sequences). Use "auto-tty" or "no_color-tty" to decide based on terminal support only. Can be used multiple times --compat-options OPTS Options that can help keep compatibility with youtube-dl or youtube-dlc configurations by reverting some of the changes made in yt-dlp. See "Differences in default behavior" for details --alias ALIASES OPTIONS Create aliases for an option string. Unless an alias starts with a dash "-", it is prefixed with "--". Arguments are parsed according to the Python string formatting mini-language. E.g. --alias get-audio,-X "-S=aext:{0},abr -x --audio-format {0}" creates options "--get-audio" and "-X" that takes an argument (ARG0) and expands to "-S=aext:ARG0,abr -x --audio-format ARG0". All defined aliases are listed in the --help output. Alias options can trigger more aliases; so be careful to avoid defining recursive options. As a safety measure, each alias may be triggered a maximum of 100 times. This option can be used multiple times
--proxy URL Use the specified HTTP/HTTPS/SOCKS proxy. To enable SOCKS proxy, specify a proper scheme, e.g. socks5://user:[email protected]:1080/. Pass in an empty string (--proxy "") for direct connection --socket-timeout SECONDS Time to wait before giving up, in seconds --source-address IP Client-side IP address to bind to --impersonate CLIENT[:OS] Client to impersonate for requests. E.g. chrome, chrome-110, chrome:windows-10. Pass --impersonate="" to impersonate any client. Note that forcing impersonation for all requests may have a detrimental impact on download speed and stability --list-impersonate-targets List available clients to impersonate. -4, --force-ipv4 Make all connections via IPv4 -6, --force-ipv6 Make all connections via IPv6 --enable-file-urls Enable file:// URLs. This is disabled by default for security reasons.
--geo-verification-proxy URL Use this proxy to verify the IP address for some geo-restricted sites. The default proxy specified by --proxy (or none, if the option is not present) is used for the actual downloading --xff VALUE How to fake X-Forwarded-For HTTP header to try bypassing geographic restriction. One of "default" (only when known to be useful), "never", an IP block in CIDR notation, or a two-letter ISO 3166-2 country code
-I, --playlist-items ITEM_SPEC Comma separated playlist_index of the items to download. You can specify a range using "[START]:[STOP][:STEP]". For backward compatibility, START-STOP is also supported. Use negative indices to count from the right and negative STEP to download in reverse order. E.g. "-I 1:3,7,-5::2" used on a playlist of size 15 will download the items at index 1,2,3,7,11,13,15 --min-filesize SIZE Abort download if filesize is smaller than SIZE, e.g. 50k or 44.6M --max-filesize SIZE Abort download if filesize is larger than SIZE, e.g. 50k or 44.6M --date DATE Download only videos uploaded on this date. The date can be "YYYYMMDD" or in the format [now|today|yesterday][-N[day|week|month|year]]. E.g. "--date today-2weeks" downloads only videos uploaded on the same day two weeks ago --datebefore DATE Download only videos uploaded on or before this date. The date formats accepted are the same as --date --dateafter DATE Download only videos uploaded on or after this date. The date formats accepted are the same as --date --match-filters FILTER Generic video filter. Any "OUTPUT TEMPLATE" field can be compared with a number or a string using the operators defined in "Filtering Formats". You can also simply specify a field to match if the field is present, use "!field" to check if the field is not present, and "&" to check multiple conditions. Use a "" to escape "&" or quotes if needed. If used multiple times, the filter matches if at least one of the conditions is met. E.g. --match-filters !is_live --match-filters "like_count>?100 & description~='(?i)bcats & dogsb'" matches only videos that are not live OR those that have a like count more than 100 (or the like field is not available) and also has a description that contains the phrase "cats & dogs" (caseless). Use "--match-filters -" to interactively ask whether to download each video --no-match-filters Do not use any --match-filters (default) --break-match-filters FILTER Same as "--match-filters" but stops the download process when a video is rejected --no-break-match-filters Do not use any --break-match-filters (default) --no-playlist Download only the video, if the URL refers to a video and a playlist --yes-playlist Download the playlist, if the URL refers to a video and a playlist --age-limit YEARS Download only videos suitable for the given age --download-archive FILE Download only videos not listed in the archive file. Record the IDs of all downloaded videos in it --no-download-archive Do not use archive file (default) --max-downloads NUMBER Abort after downloading NUMBER files --break-on-existing Stop the download process when encountering a file that is in the archive --no-break-on-existing Do not stop the download process when encountering a file that is in the archive (default) --break-per-input Alters --max-downloads, --break-on-existing, --break-match-filters, and autonumber to reset per input URL --no-break-per-input --break-on-existing and similar options terminates the entire download queue --skip-playlist-after-errors N Number of allowed failures until the rest of the playlist is skipped
-N, --concurrent-fragments N Number of fragments of a dash/hlsnative video that should be downloaded concurrently (default is 1) -r,&n