--concat-playlist
--no-progress
when --print
title
completely non-fatal__bool__
and property
Cryptodome
imports_search_nuxt_data
by LowSuggestion912if
statementstraverse_obj
: Various improvements by Grub4Ktraverse_obj
: Fix more bugstraverse_obj
: Fix several behavioral problems by Grub4Ktime_seconds
to use the provided TZ by Grub4K, Lesmiscoremake_dir
by aionescupassthrough_module
EnhancedModule
pyinstaller
hooksCryptodome
uploader_id
extraction by bashonlyconsent.youtube
/live/
URLrmc
prefix by carusocrwav
by qulazNBC
and NBCStations
extractors by bashonlyNFLPlus
extractors by bashonlyOnDemandChinaEpisodeIE
by HobbyistDev, pukkandanstream.tvp.pl
by selfisekai--no-playlist
and add media view_count
when using GraphQL by Grub4KplayerConfig
extraction by LeoniePhiline, bashonlyViuOTTIndonesiaIE
extractor by HobbyistDevVLiveWebArchiveIE
by seproDev_VALID_URL
by carusocr--concat-playlist
by pukkandan--no-progress
when --print
by pukkandantitle
completely non-fatal by pukkandan__bool__
and property
by pukkandanutils
time_seconds
to use the provided TZ (#6118) by Grub4K, Lesmiscoremake_dir
(#6089) by aionescutraverse_obj
Various improvements by Grub4K
91porn
abematv
anchorfm
bfmtv
biliintl
boxcast
clyp
wav
(#6102) by qulazcrunchyroll
drtv
ebay
embedly
freesound
generic
goplay
hidive
huya
hypergryph
moviepilot
nbc
nebula
nfl
niconico
nitter
npo
nzonscreen
odkmedia
pornez
radiko
rcs
rozhlas
rumble
servus
slideslive
sportdeutschland
stripchat
tempo
tnaflix
tvp
txxx
vimeo
viu
vk
vlive
vocaroo
wrestleuniverse
ximalaya
yappy
youtube
zdf
Use android API endpoint for UHD downloads (#6150) by seproDev
hls
Allow extractors to provide AES key (#6158) by bashonly, Grub4K
extractaudio
pyinst
Fix for pyinstaller 5.8 by pukkandan
build
cleanup
devscripts
pyinstaller
mimetype2ext
: weba
is not standardwindows_enable_vt_mode
: Better error handlingpyproject.toml
/media
to VALID_URL
by HobbyistDevvideo_data
by HobbyistDevlanguage
to entries by Chrissi2812channel_id
by gschizasTikTokLive
extractor by JC-Chung--compat-options 2021,2022
--compat 2022
in your config to guard against future compat changes.video
--parse/replace-in-metadata
run at any post-processing stage--enable-file-urls
by coletdjnzaspect_ratio
ac4
to known codecsweba
to known extensionsgif
to --recode-video
--match-filter
stricter--cookies-from-browser
CLI parsingoriginal_url
in playlistsPlaylistEntries
_sort_formats
_extract_format
functions obey --ignore-no-formats
fragment_query
extractor arg for DASH and HLS by bashonly, pukkandanAccept-Encoding: identity
for initial request by coletdjnzmov
to vext
classproperty
: Add cache supportget_exe_version
: Detect broken executables by dirkf, pukkandanjs_to_json
: Fix bug in f55523c by ChillingPepper, pukkandanExtractorError
mutableFileDownloader.parse_bytes
into utilsutils
windows_enable_vt_mode
: Proper implementation by Grub4Krandom.choices
by freezboltzAmazonReviews
extractor by bashonlyNetverseSearch
extractor by HobbyistDevVimeoProIE
by bashonly, pukkandanpiped.video
by Bnyroytuser:
und
album_artist
by stelcodes--no-playlist
for anthology_VALID_URL
by skbehBrightcoveNewBaseIE
and fix embed extraction_VALID_URL
by muddi900Iq
JS regex by bashonly--wait-for-video
_VALID_URL
for NaverNowIE
by bashonlyDouyinIE
, improve _VALID_URL
by bashonly_VALID_URL
, add api_hostname
arg by bashonly--no-playlist
for multi-video tweets by Grub4K, bashonlyReferer
to m3u8 by nixxo--flat-playlist
--list
options not implying -s
in some cases by Grub4K, bashonlyformats=None
type
field, obey --retry-sleep extractor
, relax duration check for large segmentschapter
category by ajayyy, pukkandanLenientSimpleCookie
by Grub4Kfatal=False
for _search_nuxt_data
_generic_title
json_ld
type checks by Grub4Kjs_to_json
: Improve escape handling by Grub4Kstrftime_or_none
: Workaround Python bug on Windowstraverse_obj
: Always return list when branching, allow re.Match
objects by Grub4Kpy2exe
: Migrate to freeze API by SG5, pukkandanarmv7l
and aarch64
releases by MrOctopus, pukkandanconda
by mlampeset-output
with GITHUB_OUTPUT
by Lesmiscore100
for update errorsshutils.move
in restricted ACL mode on BSD by ClosedPort22, pukkandanpyinst
's argument passthrough by jahway603extract_flat
in download tests by coletdjnz, pukkandanconcurrent_view_count
for livestreams by coletdjnzduration
for premieres by nosooplive_status
by coletdjnz, pukkandanapproximate_date
return timestampBitChuteChannelIE
by flashdagger, pukkandanFoxNewsVideo
extractorMLBArticle
extractor by HobbyistDev_VALID_URL
by bashonlydata-movie-playlist
extraction by Lesmiscore_VALID_URL
by DoubleCouponDay_VALID_URL
release_timestamp
_VALID_URL
by freezboltz_VALID_URL
by m4tu4gset
to be passed as download_archive
by pukkandan, bashonly--download-sections
--config-location -
webpage_url
--ffmpeg-location
libc_ver
not be available on Windows Store version of Python%s
work in strfformat for all systems_get_mac_keyring_password
fail gracefullyfatal=False
in RetryManager
_search_json
able to parse lists%
in representation_id
of m3u8base_url
: URL paths can contain &
by elyse0js_to_json
: ImprovePopen.run
: Fix default return in binary modetraverse_obj
: Rewrite, document and add tests by Grub4Kmake_lazy_extractors
: Fix for Docker by josanabrpost_live
videos from start by Lesmiscore, pukkandanlazy-load-for-videos
embedsreporthistory
pageuploader_url
_VALID_URL
by coletdjnz_VALID_URL
_VALID_URL
by 0xGodspeed_VALID_URL
by LiviaMedeirosjw_config
regex by julien-hadleyjack_EMBED_REGEX
by coletdjnz--flat-playlist
by SuperSonicHub1_YT_INITIAL_PLAYER_RESPONSE_RE
_VALID_URL
by Grub4K_VALID_URL
by m4tu4g--use-extractors
--break-per-url --max-downloads
--alias
--cookies-from-browser
by bashonly, coletdjnz, pukkandanaext
for --prefer-free-formats
deprecation_warning
orderedSet_from_options
Popen
: Restore LD_LIBRARY_PATH
when using PyInstaller by Lesmiscoremake tar
should not follow DESTDIR
by satan1sttest_youtube_signature
--compat-option no-youtube-prefer-utc-upload-date
by coletdjnzflac
with premium account by jackyyf--video-password
by shreyasminocha_VALID_URL
by dirkf_VALID_URL
--download-archive
channels
--prefer-avconv
libatomicparsley.so
fixup_webp
get_compatible_ext
e.g.
by Lesmiscore_VALID_URL
swf
domain by aldoridhoni_VALID_URL
by masta79--compat-option no-live-chat
should disable danmaku--match-filter
-J
--merge-output-format
audio_channels
ffmpeg_location
in a contextvarNone
when the field didn't matchutils
and refactorbest*
live_status=post_live
by lazypete365_VALID_URL
by HobbyistDev_VALID_URL
None
certifi
is used--no-progress
for --wait-for-video
h
for HTML escapingerrnote=False
to parsers--config-location
get_domain
setup.py
_update_spec
when up to datedownload_ranges
by FirefoxMetzger_VALID_URL
_VALID_URL
by IONECarter, dirkf--downloader native
section_end
of clipschapters
_create_request
when headers is NoneBaseURL
in MPDparse_known_args
for --
compat.WINDOWS_VT_MODE
_downloader
_VALID_URL
_VALID_URL
--download-sections
to download video partially
--download-sections *1:10-2:20
--alias
--lazy-playlist
to process entries as they are received--retry-sleep
--playlist-items
-I
as alias for --playlist-index
--playlist-start
, --playlist-end
, --playlist-reverse
, --no-playlist-reverse
redundant--config-location -
to provide options interactively--no-update
stderr
with -q
--simulate --max-downloads
--live-from-start
by flashdagger_search_json
by coletdjnz, pukkandandefault
parameter to _search_json
by coletdjnz, pukkandan--load-pages
json_ld
with multiple @type
s_ALL_CLASSES
lazilysrc
attribute from HTML5 media elements by Lesmiscoree6ae51c123
functools.cache
ExtractorError
: Fix exc_info
ISO3166Utils
: Add EU
and AP
Popen
: Refactor to use contextmanagerlocked_file
: Fix for PyPy on Windows.git
folder to distinguish source
/unknown
functools.cached_property
FakeYDL
signatures by coletdjnzreport_progress
_download_...
methodsextractors.py
to _extractors.py
format_field
YoutubeDL.parse_outtmpl
innertube_host
and innertube_key
extractor args by coletdjnz_extract_chapters_from_description
comment_count
from webpage:ytnotifications
extractor by coletdjnzvideoRenderer
in _post_thread_continuation_entries
auth_token
from cookie by mnnmountComponent
WatchESPN
extractor by ischmidt20, pukkandandata-video-jw-id
_VALID_URL
navernow
extractor by pinguploader_id
field by Lesmiscoresouthpark.lat
extractor by darkxexSIGI_STATE
by dirkf, pukkandan, sulyi--client-certificate
, --client-certificate-key
, --client-certificate-password
--match-filter -
to interactively ask for each video--max-downloads
should obey --break-per-input
--legacy-server-connect
-s
for later stages of -O
--date today
--skip-unavailable-fragments
-q -F
--clean-infojson
FFmpegFixupM3u8PP
for live-streams if neededcookiefile
to be a text stream--test
--live-from-start
by Lesmiscorebyte_range
for EXT-X-MAP
fragment by fstirlitz-k
\0
from metadata--hls-prefer-mpegts
manifest_url
s after redirect by elyse0manifest_url
after redirects by elyse0classmethod
/property
where possible_extract_rss
is_html
: Handle double BOMlocked_file
: Ignore illegal seek on truncate
by jakeoghsanitize_path
: Fix when path is empty stringwrite_string
: Workaround newline issue in conhost
certifi
: Make sure the pem file existsWebSocketsWrapper
locked_file
: Do not give executable bits for newly created files by LesmiscoreYoutubeDLCookieJar
: Detect and reject JSON file by Lesmiscorecompat.imghdr
make uninstall
by MrRawesinstall -D
Makefile
by putnam--onedir
on macOSpyupgrade
) and sort imports (isort
):ytnotifications
extractor by krichbananaytstories:<channel UCID>
) by coletdjnz_VALID_URL
by vertanexpected_protocol
to a public fieldrelease_year
_VALID_URL
by ca-za_VALID_URL
by dirkfcertifi
if installed by coletdjnz--match-filters
as OR--sub-lang
is given--dump-user-agent
--abort-on-error
for subtitles--no-overwrite
for playlist infojson--print
with --ignore-no-formats
when url is None
by flashdagger--sleep-interval
--throttled-rate
autonumber
http_headers
--print-to-file
--wait-for-video
mhtml
formats from -f mergeall
--match-filter
Accept-Encoding
header from std_headers
by coletdjnz--dateafter
HttpieFD
_perform_login
function--remux-video
test_locked_file
format_decimal_suffix
: Fix for very large numbers by s0u1htraverse_obj
: Allow filtering by valuefilter_dict
, get_first
, try_call
__enter__
invocation by Lesmiscore.editorconfig
file by fstirlitzBSD
license of dependencies by MrRawesrequirements.txt
to pip distributions_download_json
_html_extract_title
AfreecaTVUserIE
by hatienl0i261299format_note
to m3u8 formatstv.telezueri.ch
by gogglegeo.dailymotion.com
by hatienl0i26129952efa4b312
_VALID_URL
xnxx3.com
by rozari0membership
tab__init__.py
after_filter
--live-from-start
format--print-to-file
-all
for --sub-langs
video_id
in ExtractorError
None
--add-header
without modifying std_headers
--abort-on-error
for "ffmpeg not installed"webpage_url_...
from webpage_url
and not input URL--write-link
due to unknown URL--http-accept-gzip=true
Cookies.binarycookies
location by mdpauleyprepare_manpage
m3u8
--file-access-retries
when deleting/renaming by ehoogeveen-medwebhttp_headers
to be specified for thumbnails
--mark-watched
without _NETRC_MACHINE
by coletdjnz--simulate
acodec
=ogg
as vorbis
--live-from-start
for YouTube livestreams by Lesmiscoreguid
as video id by Bricio--clean-infojson
to --clean-info-json
ExtractorError
locked_file
for sanitize_open
by jakeoghDateRange
input_extract_m3u8_formats
for live videosform_params
GettrStreamingIE
by i6t--ignore-no-formats-error
uploader
by regarten_VALID_URL
webp
vm.tiktok
/vt.tiktok
URLsview_count
approximate_date
extractor-arg$
in _extract_n_function_name
regex by Lesmiscorewebsockets
module non-fatal--print-to-file
_type
is present in info.json
--compat-options list-formats
InAdvancePagedList
-o ""
better_yes_playlist
title
extractionArticle
json_ldclean_html
by dirkfunpad_pkcs7
test_youtube_playlist_noplaylist
YoutubeMusicSearchURLIE
ytarchive:
prefix and misc cleanupe06dea74
--concat-playlist
to concat videos in a playlistafter_video
, playlist
)--exec
to be run at any post-processing stage (Deprecates --exec-before-download
)--print
to be run at any post-processing stage--print
by pukkandan, Zirrovideo_autonumber
, modified_date
, modified_timestamp
, playlist_count
, channel_follower_count
requested_downloads
in the root info_dict
download_archive
only after all formats are downloadedmeta<n>_
prefix--legacy-server-connect
by xtkoba,
in --extractor-args
info.json
None
in sanitize_info
-s --ignore-no-formats --force-write-archive
--list-thumbnails
-map 0
D
and fix suffix's caseSec-Fetch-Mode
to std_headers
format_bytes
output for Bytes by pukkandan, mdawarss:xxx
in parse_duration
None
in traverse_obj
to return as-isurl_result
and related_search_nextjs_data
, format_field
http
for manifestsuploader
tv.line.me
by sian1468MixchArchiveIE
by Lesmiscoreclip
URLs_VALID_URL
by k3ns1nupload_date
for playlists--ppa
--no-progress
TYPES:
in -P
/-o
extractor_key
used in archivelive-from-start
properly when stream ends with 403--live-from-start
to enable downloading live videos from startis_from_start
in formats to identify formats (of live videos) that downloads from starthttp_dash_segments_generator
that allows a function to be passed instead of fragmentsFFmpegFixupDuplicateMoovPP
to fixup duplicated moov atomsFiller
and Highlight
categories by nihil-admirari, pukkandan
--sponsorblock-cut all
to --sponsorblock-cut default
if you do not want filler sections to be removedwebpage_url_domain
-f -
--file-access-retries
by ehoogeveen-medwebS
, D
and improve id
detection&
for replacement text by PilzAdam_search_nuxt_data
by nao20010128nao-i
is given_live_title
faststart
YYYYMMDD
dates in Nov/Dec by wlritchiparse_count
std_headers
by kikuyan, fstirlitz--no-write-thumbnail
to override --write-all-thumbnail
--throttled-rate
--console-title
--flat-playlist
info_dict
-f best
parse_duration
for --wait-for-video
and some minor fixwebpage_url_domain
by std-moveRTVEAudioIE
by kebianizaodiscoveryplus.com/it
tv_android
m3u8 by YuenSzeHong_VALID_URL_RE
by jaller94jw_config
regex by julien-hadleyjack_VALID_URL
TrovoChannelBaseIE
ytsearchdate
--wait-for-video
to wait for scheduled streams--break-per-input
to apply --break-on... to each input URL--embed-info-json
to embed info.json in mkvembed-metadata
workflow_dispatch
for releasewav
and vorbis
alac
average_rating
from JSON-LDf1ca6900
)render_table
and add testsPagedList
LazyList
postprocessor_hooks
--break-on-archive
when pre-checking--check-formats
for mhtml
--load-info-json
of playlists with failed entries--trim-filename
when filename has .
--add-header
report_unplayable_conflict
by shirt--no-clean-infojson
DiscoveryPlusItalyShowIE
by Ashish0804NebulaCollectionIE
and rewrite extractor by hheimbuergerwebpage_url
correctlydefault
player client by coletdjnzratebypass
JSInterpreter._seperate
_search_nextjs_data
--check-all-formats
from --check-formats
windows_enable_vt_mode
--load-infojson
of playlists-F
and standardize color-printing codelink
for internet shortcut filesq
and j
None
--audio-quality
correctly by CrypticSignal, pukkandanlibfdk_aac
if available by CrypticSignaleac3
is better than ac3
ExtractorError
join_nonempty
jwt_decode_hs256
by Ashish0804DownloadCancelled
exceptionvp09
as vp9bv
SkyNewsStoryIE
by ajj8thumbnail
with the best "known" thumbnaillanguage
and hardsub
py2exe
YTDLP_NO_LAZY_EXTRACTORS
to forcefully disable this (experimental)pyinst.py
, misc cleanup and improve docsmeta_default
key--remove-chapters
to remove sections by timestamp--match-filter
--no-batch-file
by Zirro--check-formats
is specified--restrict-filename
when used with default templatecheck_formats
output being written to stdout when -qv
duration_string
and resolution
available in --match-filter--id
--socket-timeout
EXT-X-KEY
Apple FairPlayimportlib
to load plugins by sulyi--skip-unavailable-fragment
extractor-retries
and sleep-requests
aac_adtstoasc
to non-hls audiobeta.crunchyroll
URLs and fix series URLs with language codeformat_id
by Ashish0804player.vimeo
getcomments
implementation for extractorsFFmpegPostProcessor
--console-title
and --no-progress
--progress
to show progress-bar even in quiet modeminicurses
and use it for all progress reporting--progress-template
to customize progress-bar and console-title--use-postprocessor
l
for \n
delimited listU
for unicode normalizationreddit_session
by AjaxGb--flat-playlist
when neither IE nor id is known-f mp4
behaving differently from youtube-dlssl.SSLContext.load_default_certs
--netrc-location
,
B
to treat the value as bytes, e.g. to limit the filename to a certain number of bytes--ignore-errors
and --no-abort-on-error
collection-playlist
by nixxo/en
502
error and update _CLIENT_ID
--mark-watched
with --cookies-from-browser
--force-write-archive
to work with --flat-playlist
--sub-langs
0
in --playlist-items
-i
--no-get-comments
extra_info
being reused across runsno-direct-merge
and playlist-index
--trim-filename
by sulyiaes_gcm_decrypt_and_verify
by sulyi, pukkandanHOME
(if set) on windowsaac_adtstoasc
when merging if needed-N
and media sequence by shirtCryptodome
in addition to Crypto
extract_timezone
by dirkf--no-config
and refactor reading of config files--onedir
zip for windowsnebula.py
by glenn-slaydenmake clean-test
by sulyi--sponsorblock-remove CATS
removes specified chapters from file--sponsorblock-mark CATS
marks the specified sponsor sections as chapters--sponsorblock-chapter-title TMPL
to specify sponsor chapter template--sponsorblock-api URL
to use a different API--force-keyframes-at-cuts
is used--sponskrub
, --no-sponskrub
, --sponskrub-cut
, --no-sponskrub-cut
, --sponskrub-force
, --no-sponskrub-force
, --sponskrub-location
, --sponskrub-args
--embed-chapters
from --embed-metadata
(it still implies the former by default)--remove-chapters
to remove arbitrary chapters by nihil-admirari, pukkandan--force-keyframes-at-cuts
for more accurate cuts when removing and splitting chapters by nihil-admirari--match-filter
reject entries early
--match-title
, --reject-title
, --min-views
, --max-views
suitable
and add flake8 test-i
HungamaSongIE
and add HungamaAlbumPlaylistIE
by Ashish0804PatreonUserIE
by zenerdi0destartv.com.tr
by mrfade, coletdjnzTikTokUserIE
by Ashish0804, pukkandanTV2HuIE
and add TV2HuSeriesIE
by Ashish0804client_id
on 403uploader_id
by octotherpshorts
to _VALID_URL
--write-annotations
by coletdjnz--rate-limit
_match_valid_url
lang
_set_from_options_callback
parse_qs
--replace-in-metadata
--force-overwrites
when using -k
--no-prefer-free-formats
by CeruleanSky-F
for extractors that directly return url-J
when there are failed videosextra_info
being reused across runsplaylist_index
not obeying playlist_start
and add tests--no-part
Content-Length
header by fstirlitzos.replace
where applicable by; paulwrubelyt-dlp/taps/yt-dlp
by nao20010128naoyt-dlp.tar.gz
--replace-in-metadata
--no-simulate
to not simulate even when --print
or --list...
are used - Deprecates --print-json
%()s
- makes --dump-json
redundant--exec
and --exec-before-download
--match-filter
--match-filter
by max-teno-keep-subs
_THEPLATFORM_KEY
and _THEPLATFORM_SECRET
by wesnmdisplay_id
by dirkfinclude-live-dash
to show live dash formats_write_ytdl_file
closes file handle on error--compat-options filename
by stdedos--no-part
BrokenPipeError
by kikuyansttp
as subtitles in MPD by fstirlitzmp4
to stdout
--ffmpeg-location
to be a file with different nameInAdvancePagedList.__getitem__
traverse_obj
depth when is_user_input
pyinstaller
by shirttest_YourExtractor_all
)--add-metadata
adds to the filej
(json), l
(comma delimited list), q
(quoted for terminal)agegate
clients by pukkandan, MinePlayersPEthirdParty
to agegate clients to bypass more videosembedded
clientscreator
clients for age-gate bypass using unverified accounts by zerodytrash, coletdjnz, pukkandanScienceChannelIE
by Sipherdrakonmweb
client by coletdjnzplayer_client=all
hl=en
for comments by coletdjnz_VALID_URL
no-clean-infojson
asr
appearing twice in -F
home:
as the default key for -P
LazyList
ignore_no_formats_error
info_dict
to progress_hook
sget_video_info
age-gate workaround - This endpoint seems to be completely dead_get_text
sqlite
ImportError
gracefully by mbwaykeyring
--cookies-from-browser
to load cookies from a browser by mbway
--cookies-from-browser BROWSER[:PROFILE_NAME_OR_PATH]
--no-cookies-from-browser
keyring
is needed for UNIX and pycryptodome
for Windows--exec-before-download
live_status
player_client
now accepts multiple clientsplayer_client
= android,web
music.youtube.com
player_client=ios
(Known issue: formats from ios are not sorted correctly)--no-check-formats
to not test them--extractor-retries
work for more errorschapters
(and refactor related code)parse_time_text
and _extract_chapters
non-fatalcomment_sort
(top
/new
), max_comments
, max_comment_depth
is_favorited
, improve like_count
parsing by coletdjnz_VALID_URL
by nao20010128naovideo_types
to vikichannel
by zackmark29, pukkandan_get_thumbnail_resolution
all
, mergeall
and add tests--ignore-errors
original_url
was not propagated when _type
=url
write_thumbnail
extractor_args
parsingNOTE
in -F
to MORE INFO
since it's often confused to be the same as format_note
only_once
param for write_debug
and report_warning
_search_regex
by fstirlitztraverse_obj
variadic
js_to_json
comment regex by fstirlitz--extractor-args
to pass some extractor-specific arguments. See readme
skip
for youtube
, e.g. --extractor-args youtube:skip=hls,dash
--youtube-skip-dash-manifest
, --youtube-skip-hls-manifest
, --youtube-include-dash-manifest
, --youtube-include-hls-manifest
--list...
options to work with --print
, --quiet
and other --list...
optionsplayer
API for additional video extraction requests by coletdjnz
player_client
= web
/android
--extractor-args youtube:player_client=android
works around the throttling for the time-beingplayer_skip=config
itct
to params by coletdjnzclickTrackingParams
by siikamiikaFunimationShowIE
by Meviousid
and will break break existing archivesseperate-video-versions
to fall back to old behavior including using the old video ids/player/
URLlanguage
and version
to pre-select them during extraction
-f
filters instead_VALID_URL
--ignore-no-formats-error
by krichbanana--throttled-rate
when using --load-info-json
--flat-playlist
when entry has no ie_key
check_formats
catching ExtractorError
instead of DownloadError
--list-formats-old
--ppa
when using simultaneous downloadhls_split_discontinuity
jpeg
as jpg
LazyList
reversalLazyList
and yield from
extractor.common._merge_subtitles
signature--throttled-rate
below which video data is re-extracted-N
, and refactor hls
/dash
WebSocketFragmentFD
by nao20010128nao, pukkandanimages
formats in addition to video/audio:ytrec
cast
embed-thumbnail-atomicparsley
--check-formats
to thumbnails--fixup force
to force it-f
NamedTemporaryFile
for --check-formats
--min-split-size
for HTTP downloads--add-metadata
to --embed-metadata
LazyList
and add tests--embed-metadata
embeds chapter markers%(field)d
in filename template throws errorprepare_filename
original_url
with the user-inputted URLprepare_outtmpl
--print
when used with --flat-playlist
traverse_dict
to traverse_obj
yt-dlp.tar.gz
python3
by fstirlitztrovolive.py
user:pass
in URLs by hhirtz and pukkandan-N
, do not keep the fragment content in memorypng
and make it the default by louie-githubmp4
/m4a
using mutagen by tripulse and pukkandan__process_playlist
by creating LazyList
stderr
when both quiet
and verbose
None
values from info.json
socket.io
response as json
by pukkandan and llacb47note=False
when extracting manifestssanitized_Request
, not sanitize_url
webtt
/live
URLs should raise error if channel is not live-
before id by olifreYoutubeDL._match_entry
MP
, VL
and browse
pagesvideos
tab to their UU
playlistsmaxresdefault
thumbnailhtml5=1
param to get_video_info
page requests by coletdjnz--print
: to print any field/template
--get-description
, --get-duration
, --get-filename
, --get-format
, --get-id
, --get-thumbnail
, --get-title
, --get-url
additional_urls
to download additional videos from metadata using --parse-metadata
pl_thumbnail
outtmpl keyflac
support and refactor mutagen
code by pukkandan and tripulse_VALID_URL
no-attach-infojson
name
for subtitlespost_extract
and pre_process
only run once--check-formats
when there is network errorwrite_debug
and get_param
--write-comments
, --no-write-comments
playlist_mincount
compat_opts
is not givenfield.start:end:step
field1+num+field2
field|default
-l
, -t
, -A
completely and disable --auto-number
, --title
, --literal
, --id
quiet
and to_stderr
network_exceptions
_VALID_URL
to support moviesallow_unplayable_formats
_VALID_URL
title
and series
extraction by Ashish0804oembed
to reserved namesplaylist_index
and add playlist_autonumber
. See #302 for details--check-formats
to test the URLs before format selection--compat-options
to revert some of yt-dlp's changes
--list-formats-as-table
, --list-formats-old
%(playlist_index)s
-o
and -P
preload_download_archive
writing verbose message to stdout
YoutubeDL
so that they obey --no-warnings
and can output colorsFileNotFoundError
%(field.key1.key2)s
%(field+N)s
--autonumber-start
--sub-langs
:
--sub-langs
entries as regexall
can be used to refer to all the subtitles-
to exclude it--all-subs
--ignore-no-formats-error
to ignore the "no video format" and similar errors--skip-playlist-after-errors
to skip the rest of a playlist after a given number of errors are encountered_extract_ytcfg
_VALID_URL
%
report_warning
mergeall
selects best format when multistreams are disabled--convert-thumbnails
(only jpg currently supported)mergeall
to download and merge all formats--exec
using similar syntax to output template--downloader PROTO:NAME
--downloader
for --external-downloader
native
as an option for the downloaderdatetime_from_str
and datetime_add_months
by coletdjnzpostprocessors
before actual download-P
, -o
, -S
m3u8
not obeying --allow-unplayable-formats
dynamic_mpd
--all-formats
, --include-ads
, --hls-prefer-native
, --hls-prefer-ffmpeg
--parse-metadata
-f bv*.2
availability
by coletdjnzview-source:
--parse-metadata
documentation--parse-metadata
--load-info-json
--no-clean-infojson
--no-clean-infojson
to keep private keys in the infojsonquality
being ignoredpost_hook
gets the final filenamemp4
by damianoamatruda and pukkandanwebm
formats into mkv
if thumbnails are to be embedded by damianoamatruda[docs] Fix some minor mistakes
[niconico] Partial fix adapted from animelover1984/youtube-dl@b5eff52 (login and smile formats still don't work)
[niconico] Add user extractor by animelover1984
[bilibili] Add anthology support by animelover1984
[amcnetworks] Fix extractor by 2ShedsJackson
[stitcher] Merge from youtube-dl by nixxo
[rcs] Improved extraction by nixxo
[linuxacadamy] Improve regex
[youtube] Show if video is private
, unlisted
etc in info (availability
) by coletdjnz and pukkandan
[youtube] bugfix for channel playlist extraction
[nbc] Improve metadata extraction by 2ShedsJackson
--split-chapters
-o
/-P
using the prefix chapter:
section_title
, section_number
, section_start
, section_end
are available in the output template--concurrent-fragments
(-N
) to set the number of threads (default 1)lbry://
url by nixxoAccept
header by pukkandan and animelover1984ffmpeg
/httpie
m3u8
extension--extractor-retries
are exhausted--extractor-retries
to 3--external-downloader
--sleep-requests
to sleep b/w requests--extractor-retries
to retry on known extractor errors--get-comments
doesn't imply --write-info-json
if -J
, -j
or --print-json
are usedget_executable_path
by shirtwebpage_url
--hls-use-mpegts
by default when downloading live-streamsyoutube-dlc
config files are no longer loadedwas_live
)hyland.com
--hls-split-discontinuity
to better support media discontinuity by shirt--ppa "ffmpeg_i1:ARGS"
syntax--windows-filenames
removing /
from UNIX pathsExtractor Options
all
in format selectionplayable_in_embed
in output templateschannel
and channel_id
by kurumigi--windows-filenames
to force use of windows compatible filenamesparser.error
when exiting for update--trim-file-name
to --trim-filenames
to be similar to related optionsvp9.2
more than other vp9
codecsquality
field_preference
and misuse of preference
from extractors--prefer-free-formats
and add --no-prefer-free-format
--allow-unplayable-formats
to allow downloading unplayable video formatsx86.exe
yt-dlp
and youtube-dlc
in releases for future-proofingpycryptodome
allow_playlist_files
not being correctly passed throughget_executable_path
in UNIX__real_download
should be false when ffmpeg unavailable and no downloadexe
/zip
/source
and 32/64bit in verbose message-U
) by shirt--console-log-level=warn --summary-interval=0 --file-allocation=none -x16 -j16 -s16
strftime
to format date/time fields. Example: %(upload_date>%Y-%m-%d)s
-o TYPE:TEMPLATE
subtitle|thumbnail|description|annotation|infojson|pl_description|pl_infojson
--no-write-playlist-metafiles
to prevent writing playlist metadata filesparse_yt_initial_data
and add fragment_retries
quality
had more priority than hasvid
_filename
from infojson--get-comments
-disposition
-movflags +faststart
when remuxing to mp4--parse-metadata
to extract additional metadata from existing fields
--output
--metadata-from-title
.description
filerecode
/remux
(extract-audio
is partially fixed)avconv
/avprobe
. All current functionality is left untouched. But don't expect any new features to work with avconvwrite_debug
to not throw error when there is no _downloader
update-version
, pyinst.py
and related files-P
/--paths
to give different paths for different types of files
-P "type:path" -P "type:path"
--external-downloader-args
and --post-processor-args
--no-overwrite
when using --write-link
unrecognized argument
error message correctlyformatSort
. The aliases remain functional for backward compatibility, but will be left undocumented/#/player
URLs--ppa
as alias./yt-dlp.conf
yt-dlp
instead of youtube-dlc
. See this for details--break-on-reject
--force-overwrites
, --no-force-overwrites
by alxnullyt-dlp
playable_in_embed
)test_youtube_search_matching
to_screen
and similar functions in postprocessor/commonpost_hooks
to YoutubeDL by alexmerkel--max-downloads
by glenn-slayden--postprocessor-args
--sponskrub-args
. The same can now be done using --postprocessor-args "sponskrub:<args>"
av01
codec in -S
since most devices don't support it yetduration_string
to be used in --output
--ignore
--video-multistreams
and --audio-multistreams
bv*+ba/b
when --audio-multistreams
is disabledres,fps,codec,size,br,asr,proto,ext,has_audio,source,format_id
webm
to be more preferable than flv
in format sorting%(title)s [%(id)s].%(ext)s
--list-formats-as-table
--format-sort
(-S
), --format-sort-force
(--S-force
) - See Sorting Formats for detailsbest*
, worst*
, bestvideo*
, bestaudio*
, worstvideo*
, worstaudio*
--video-multistreams
, --no-video-multistreams
, --audio-multistreams
, --no-audio-multistreams
b
,w
,v
,a
as alias for best
, worst
, video
and audio
respectively--write-link
, --write-url-link
, --write-webloc-link
, --write-desktop-link
by h-h-h-h - See Internet Shortcut Options for details--sponskrub
, --sponskrub-cut
, --sponskrub-force
, --sponskrub-location
, --sponskrub-args
- See SponSkrub Options for details--force-download-archive
(--force-write-archive
) by h-h-h-h--list-formats-as-table
, --list-formats-old
no-
to the switch. Usefull when you want to reverse an option that is defined in a config file
--no-ignore-dynamic-mpd
, --no-allow-dynamic-mpd
, --allow-dynamic-mpd
, --youtube-include-hls-manifest
, --no-youtube-include-hls-manifest
, --no-youtube-skip-hls-manifest
, --no-download
, --no-download-archive
, --resize-buffer
, --part
, --mtime
, --no-keep-fragments
, --no-cookies
, --no-write-annotations
, --no-write-info-json
, --no-write-description
, --no-write-thumbnail
, --youtube-include-dash-manifest
, --post-overwrites
, --no-keep-video
, --no-embed-subs
, --no-embed-thumbnail
, --no-add-metadata
, --no-include-ads
, --no-write-sub
, --no-write-auto-sub
, --no-playlist-reverse
, --no-restrict-filenames
, --youtube-include-dash-manifest
, --no-format-sort-force
, --flat-videos
, --no-list-formats-as-table
, --no-sponskrub
, --no-sponskrub-cut
, --no-sponskrub-force
--write-subs
, --no-write-subs
, --no-write-auto-subs
, --write-auto-subs
. Note that these can still be used without the ending "s"Note: All uncredited changes above this point are authored by pukkandan
Note: This was constructed from the merge commit messages and may not be entirely accurate