Changelog.md
player_client extractor-arg documentation (#16235) by bashonlyandroid_vr player client (#16168) by gamer191use_ad_playback_context extractor-arg (#16196) by bashonlyweb_embedded player client (#16177) by bashonly, SparseOrnament15web_safari & web_creator client configs (#16198) by bashonly--netrc-cmd option
--netrc-cmd is now limited to a safe subset of charactersnetrc_machine parameter to shell-safe characters by Grub4Koc-p.uni-jena.de URLs (#16026) by LordMZTEtv player JS variant (#15818) by bashonly--sleep-subtitles (#15282) by 0xvd--compat-options 2025 (#15499) by bashonly--format-sort-reset option (#13809) by nihil-admirari--parse-metadata when TO is a single field name (#14577) by bashonly, clayotedecode_packed_codes: Fix missing key handling (#15440) by cesbardevalue: Fix calling reviver on cached value (#15568) by Grub4Kjs_to_json: Prevent false positives for octals (#15474) by doe1080mimetype2ext: Recognize more srt types (#15411) by seproDevrandom_user_agent: Bump versions (#15396) by seproDevunified_timestamp: Add tz_offset parameter (#15357) by doe1080--wait-for-video (#15463) by olipfeimacos client (#15746) by bashonly, gamer191player_skip=js extractor-arg (#15428) by bashonlycurl_cffi 0.14.x (#15613) by bashonlyPATHEXT when locating JS runtime on Windows (#15117) by Grub4K--cookies-from-browser for new installs of Firefox 147+ (#15215) by bashonly, mbwayuse_ad_playback_context extractor-arg (#15220) by WhatAmISupposedToPutHereejs patch version to differ (#15263) by Grub4Kinstall_deps: Align options/terms with PEP 735 (#15200) by bashonlyhook category (#14845) by seproDevtv_downgraded client (#14887) by seproDev (With fixes in fa35eb2)web_embedded client extraction (#14843) by bashonly, seproDevinstall_deps script (#14766) by bashonlylive_status detection (#14457) by bashonlycompat_datetime_from_timestamp (#11902) by pzhlkj6612, seproDevmimetype2ext: Recognize vnd.dlna.mpeg-tts (#14388) by seproDevrandom_user_agent: Bump versions (#14317) by seproDev0004de42 (#14398) by seproDevsanitize_path test for Windows CPython 3.11 (#13878) by Grub4K--cookies-from-browser with Firefox 142+ (#14114) by bashonly, Grub4K (With fixes in 526410b by bashonly)-f mp4 (#13915) by seproDevjwt_encode function (#14071) by bashonly_rta_search: Do not assume age_limit is 0 (#13985) by doe1080es5 and es6 player JS variants (#14005) by bashonlyplayback_wait extractor-arg by bashonlymain player JS variant (#14079) by bashonlyyt-dlp_macos_legacy binary will likely be the last one. Read moreyt-dlp_linux_armv7l binary could be the last one. Read moredarwin_legacy_exe support (#13857) by bashonlylinux_armv7l_exe support (#13978) by bashonlyexpires timestamps (#13873) by bashonlyWINDOWS_VT_MODE to globals (#12460) by Grub4Kparse_resolution: Support width-only pattern (#13802) by doe1080random_user_agent: Bump versions (#13543) by bashonlyen URLs (#13908) by CasperMcFadden95file: URL handling (#13844) by bashonly--hls-split-continuity support (#13321) by tchebbcurl_cffi 0.11.x, 0.12.x, 0.13.x (#13989) by bashonlymacos-14 runner for macos builds (#13814) by bashonly--mtime to --no-mtime
yt-dlp no longer applies the server modified time to downloaded files by default. Read more--exec placeholder expansion on Windows
--exec is used on Windows, the filepath expanded from {} (or the default placeholder) is now properly escaped--exec placeholder expansion on Windows by Grub4K--mtime by default (#12781) by seproDevmimetype2ext: Always parse flac from audio/flac (#13748) by bashonlyunified_timestamp: Return int values (#13796) by doe1080urlhandle_detect_ext: Use x-amz-meta-file-type headers (#13749) by bashonly_search_nextjs_v13_data helper (#13398) by bashonly (With fixes in b5fea53)playlist_maxcount (#13433) by InvalidUsernameExceptionextract_object (#13580) by seproDev_search_nuxt_json helper (#13386) by bashonly, Grub4Ktraversal: Fix morsel tests for Python 3.14 (#13471) by Grub4Ktv_simply player client (#13389) by gamer191--mark-watched support (#13222) by brian6932, iednod55--mark-watched (#13120) by GeoffreyFrogeye/profile/ video URLs (#13227) by subrat-lima--live-from-start (#13202) by bashonlyweb_embedded client for age-restricted videos (#13089) by bashonlymedia_type for all videos (#13136) by bashonly--live-from-start support for premieres (#13079) by arabcoders--preset-alias/-t has been added
This provides convenient predefined aliases for common use cases. Available presets include mp4, mp3, mkv, aac, and sleep. See the README for more details.--preset-alias option (#12839) by Grub4K, seproDev_yield_json_ld: Make function less fatal (#12855) by seproDevurl_or_none: Support WebSocket URLs (#12848) by doe1080_VALID_URL (#12919) by fireattack, Kicer86file:// URLs (#12978) by bashonly--ignore-no-formats-error (#12993) by bashonly_VALID_URL (#12923) by seproDevmissing_pot formats (#13061) by bashonlymainEvent URLs (#12800) by bashonlyjs_to_json: Make function less fatal (#12715) by seproDevGROUP-ID (#12714) by bashonlycurl_cffi 0.10.x (#12670) by Grub4K--ffmpeg-location (#12318) by Kenshin9977_VALID_URL (#12486) by seproDev_VALID_URL (#12608) by fireattackkeep_header_casing extension (#11652) by coletdjnz, Grub4Kexpect_value and expect_dict (#12334) by Grub4Klive_status for DASH manifest URLs (#12256) by mp3butchersupportedsites.md (#12382) by seproDevsanitize_path: Fix some incorrect behavior (#11923) by Grub4Kalt_title (#12000) by msm595/ifr/ URLs (#11805) by invertico/comments page support (#11999) by 7x11x13live URLs (#11720) by bashonly_VALID_URL (#12088) by 4ft35ttv client Innertube config (#12168) by coletdjnzmedia_type for livestreams (#11605) by nosoopios player client (#12155) by b5iweb_creator as a default client (#12087) by bashonly--no-windows-filenames (#11988) by bashonly_VALID_URL (#11806) by HobbyistDevn sig extraction for player 3bb1f723 (#11750) by bashonly (With fixes in 4bd2655)_remove_duplicate_formats (#11637) by Grub4Kshare URLs (#11677) by grqzjoin_nonempty, add **kwargs to unpack (#11559) by Grub4Ksubs_list_to_dict: Add lang default parameter (#11508) by Grub4Kext override for thumbnails (#11545) by bashonlysort_order extractor-arg (#11569) by bashonlydefault group
If you're installing yt-dlp with pip/pipx or requiring yt-dlp in your own Python project, you'll need to specify yt-dlp[default] if you want to also install yt-dlp's optional dependencies (which were previously included by default). Read moreyt-dlp.exe and yt-dlp_x86.exe binaries are no longer supported on Windows 7. Read more.jpe extension (#11408) by bashonly--plugin-dirs (#11334) by bashonly--netrc empty string parsing for Python <=3.10 (#11414) by bashonly, Grub4Kfind_element by class (#11402) by bashonlyfind_element and find_elements (#11443) by bashonly, Grub4Klanguage to ISO639-2 for ISM formats (#11359) by bashonlymake_changelog: Parse full commit message for fixes (#11366) by bashonly, Grub4Kdefault group
If you're installing yt-dlp with pip/pipx or requiring yt-dlp in your own Python project, you'll need to specify yt-dlp[default] if you want to also install yt-dlp's optional dependencies (which were previously included by default). Read moreyt-dlp_min.exe will be the last, and it's actually a PyInstaller-bundled executable so that yt-dlp users updating their py2exe build with -U will be automatically migrated. Read more--plugin-dirs (#11277) by coletdjnz, imranh2Popen: Reset PyInstaller environment (#11258) by bashonly, Grub4Ksanitize_path: Reimplement function (#11198) by Grub4K_VALID_URL (#11269) by seproDevpy2exe builds to win_exe (#11256) by bashonlymacos-13 image for macOS builds (#11236) by bashonlymake_lazy_extractors: Force running without plugins (#11205) by Grub4Kios,mweb (#11190) by seproDevnone arg to negate --convert-subs and --convert-thumbnails (#11066) by kieraneglin--cookies-from-browser chrome issue (#11090) by seproDevmimetype2ext: Recognize aacp as aac (#10860) by bashonly_VALID_URL (#10867) by bashonly, sahilsinghss73id values (#10726) by garret1317po_token, visitor_data, data_sync_id extractor args (#10648) by bashonly, coletdjnz, seproDev (With fixes in fa2be9a by bashonly)player_clients in extractor-arg (#10710) by bashonlyhttps formats (#11102) by bashonlycurl-cffi version to < 0.7.2 (#11092) by bashonlyslice implementation (#10664) by seproDevunified_timestamp: Recognize Sunday (#10589) by bashonlyn function name extraction for player 3400486c (#10542) by bashonlysetuptools version (#10493) by bashonlynoprogress if test=True with --quiet and --verbose (#10454) by Grub4Kauto-tty and no_color-tty for --color (#10453) by Grub4Kparse_codecs: Fix parsing of mixed case codec strings by bashonlylegacy_ssl (#10440) by bashonlylegacy_ssl request extension (#10448) by coletdjnzcurl_cffi 0.7.X by coletdjnzn function extraction fallback (#10396) by pukkandan, seproDevn function name extraction (#10390) by bashonly, seproDev--ignore-no-formats-error (#10345) by Grub4Kplaylist_channel and playlist_channel_id fields (#10266) by bashonly--cookies-from-browser DE detection on Linux (#10237) by peisenwang_VALID_URL and embed extraction (#10215) by bashonlykey_query extractor-arg by bashonlycampaign_id extraction (#10070) by bashonlydownload format extraction (#10125) by bashonlyrequests version to 2.32.2 (#10079) by bashonly--write-pages filenames (#9879) by minamotorin (With fixes in c999bac by bashonly)_search_nextjs_data non fatal (#8937) by Grub4Kcdn extractor-arg (#9666) by bashonly--geo-verification-proxy support (#9817) by fireattack_VALID_URL (#9866) by carusocr_VALID_URL (#9949) by bohwaz, seproDevCloudflareStreamIE explicitly (#9672) by llamasblade/reels/ URLs (#9539) by amir16yp--no-playlist message (#9488) by pzhlkj6612device_id extractor-arg (#9951) by bashonlyextensions attribute to Response (#9756) by bashonlyhatch, ruff, pre-commit and improve dev docs (#7409) by bashonly, Grub4K, seproDev--exec with %q on Windows
%, \ and \n.utils.Popen has been patched accordingly.--progress-delta (#9082) by Grub4K--impersonate and --list-impersonate-targets by bashonly, coletdjnz, Grub4K, pukkandan--no-break-on-existing (#9610) by bashonlyfilesize_approx calculation (#9560) by pukkandan, seproDevacodec for single-codec containers by pukkandan--exec with %q (CVE-2024-22423) by Grub4K--cookies-from-browser support for Firefox Flatpak (#9619) by un-deftraverse_obj
_VALID_URL (#9636) by bashonlySSLKEYLOGFILE environment variable (#9543) by luiso1979curl_cffi by bashonly, coletdjnz, Grub4K, pukkandanimport datetime as dt (#8978) by pukkandanfrom stdlib imports in extractors by pukkandantraversal: Separate traversal tests (#9574) by Grub4K--compat-options 2023 (#9084) by Grub4K (With fixes in ffff1bc by pukkandan)ydl._request_director when needed by pukkandan (With fixes in dbd8b1b by Grub4k)--load-info-json format selection errors (#9392) by bashonlyPermissionError (#9229) by pukkandan, syntaxsurgerepr of DateRange, match_filter_func by pukkandantraverse_obj: Support xml.etree.ElementTree.Element (#8911) by Grub4K--no-playlist (#9139) by c-basalt--wait-for-video (#9309) by hui1601_VALID_URL (#9404) by Xpl0itU_VALID_URL (#9320) by rvsit_VALID_URL (#9218) by glensc_VALID_URL (#8999) by FinnRGcreators (#9258) by gmes78_VALID_URL (#9044) by gmes78_VALID_URL (#9232) by seproDev_CompatHTTPError (#8871) by coletdjnzdefault optional dependency group (#9295) by bashonly, Grub4Ksetup.py and pyinst.py (#9296) by bashonly, Grub4K, pukkandanactions/upload-artifact to v4 and adjust workflows by bashonlyconda-incubator/setup-miniconda to v3 by bashonlysecretstorage for ARM builds by bashonlypyproject.toml and hatchling by bashonly (With fixes in 43cfd46)bundle submodule by bashonlyactions/setup-python to v5 by bashonlyhttp and https in _VALID_URL (#8968) by seproDevinstall_deps: Add script and migrate to it by bashonlytomlparse: Add makeshift toml parser by Grub4Kread_stdin obey --quiet by pukkandanrelease_year from release_date (#8524) by seproDevNO_COLOR environment variable (#8385) by Grub4K, prettykooltraverse_obj: Move is_user_input into output template (#8673) by Grub4Kmedia_type field by trainman261media elements in SMIL manifests (#8504) by seproDevshow page (#8601) by bashonly, JC-Chungconcurrent_view_count (#8600) by sonmezberkaygetheader (#8606) by qbnurun_tests: Create Python script (#8720) by Grub4K (With fixes in 225cf2b)README.md by bashonly_VALID_URL (#8576) by seproDev_VALID_URL (#7692) by TravisDupessecretstorage an optional dependency (#8585) by bashonlyhttp_headers; extractors now only use specific headers--compat-option manifest-filesize-approx (#8356) by bashonly--load-info-json (#8521) by bashonlyhttp_headers by coletdjnzxml.etree.ElementTree.Element (#8582) by bashonly_VALID_URL (#8368) by peci1POST request to streams API endpoint (#8413) by bartbroere_VALID_URL (#8426) by bashonly--file-allocation=none (#8332) by CrendKing--live-from-start (#8339) by bashonlyRequest Handler: requests: Add handler for requests HTTP library (#3668) by bashonly, coletdjnz, Grub4K (With fixes in 4e38e2a)
Adds support for HTTPS proxies and persistent connections (keep-alive)
js_to_json: Fix Date constructor parsing (#8295) by awalgarg, Grub4Kwrite_xattr: Use os.setxattr if available (#8205) by bashonly, Grub4Kdownloader_options by bashonly--extractor-retries inf (#8328) by Grub4Kepisode extraction (#8201) by xofeuploader_id (#8244) by drzraf--exec with %q on Windows
"" instead of \".utils.Popen has been patched to properly quote commands.--check-formats by pukkandan--exec with %q (CVE-2023-40581) by Grub4KFFmpegFixupM3u8PP may need to run with ffmpeg by pukkandantypes.NoneType by pukkandan (With fixes in 25b6e8f)sqlite3.version (#8167) by bashonlyplaylist_index by pukkandanparse_duration by bashonlyclean_podcast_url: Handle more trackers (#7556) by bashonly, mabdelfattahjs_to_json: Handle Array objects by Grub4K, std-move--load-pages by pukkandan_search_nuxt_data more lenient by std-move_VALID_URL (#8153) by kylegustavo_VALID_URL (#7649) by simon300000_VALID_URL (#7683) by AmirAflak_VALID_URL by bashonlyPBSKidsIE (#7602) by snixon/content URL (#7592) by FinnRGm4v (#7583) by Neurognostic--legacy-server-connect (#7645) by bashonlymake_changelog: Fix changelog grouping and add networking group (#8124) by Grub4K--add-header Cookie: is deprecated and auto-scoped to input URL domainscookies field to info.json and deprecate http_headers.CookieCookie headers are handled by Grub4KCookie leaks on HTTP redirect by coletdjnzplaylist_index etc even when with internal formatting by pukkandan_VALID_URL (#7439) by AmanSal1, rdamas_VALID_URL by bashonlyformats by pukkandanis_favorited (#7390) by bbilly1post_live over 2 hours by pukkandan--no-conf by pukkandan--download-sections by pukkandan
*from-url to obey time-ranges in URLfilesize approximated from tbr better by pukkandan_VALID_URLs (#5812) by nixxoios to default clients used by pukkandan
--compat-option playlist-match-filter by pukkandan--no-quiet by pukkandan--color (#6904) by Grub4K--netrc-cmd (#6682) by NDagestad, pukkandan--xff by pukkandan-f- (#7101) by ivanskodje, pukkandanYoutubedl-no-compression header (#6876) by coletdjnz--print-to-file by pukkandan--print by pukkandan (With fixes in 17ba434)filepath being copied to underlying format dict by pukkandanfilename and urls fields at all stages of --print by pukkandan (With fixes in b5f61b6)__bool__ by pukkandanFormatSorter: Improve size and br by pukkandan, u-spec-pngjs_to_json: Implement template strings (#6623) by Grub4Klocked_file: Fix for virtiofs (#6840) by brandon-dacribstrftime_or_none: Handle negative timestamps by dirkf, pukkandantraverse_obj
write_string: Fix noconsole behavior by Grub4Kurl_result by pukkandanCharter_Direct MSO as Spectrum (#6824) by bashonlyParamountPressExpress extractor (#6604) by bashonly_VALID_URL (#7076) by HobbyistDevfragment_query, variant_query (#6600) by bashonly (With fixes in 9bfe0d1)hls_key, variant_query (#6567) by bashonly/shows/ URLs (#7225) by bashonly_extract_embed_urls (#6383) by carusocrWinSports and embed extraction (#6426) by bashonlyNBCStations direct mp4 formats (#6637) by bashonlybeta.nebula.tv (#6516) by unbeatable-101NhkRadiru extractor (#6819) by garret1317NhkRadiruLive: Add extractor (#7332) by garret1317MujRozhlas: Add extractor (#7129) by stanoarnstream_key header to downloader (#7224) by bashonly_VALID_URL (#6522) by hatienl0i261299release_timestamp (#7186) by CeruleanSkyformat_note when -v (#6254) by Lesmiscore, pukkandaninclude_duplicate_formats by pukkandan-f17 by pukkandanchannel_is_verified (#7213) by coletdjnzheatmap data (#7100) by tntmod54321comment_count (#6523) by nick-cdhttps by pukkandan--progress-template by pukkandanmake_changelog: Various improvements by Grub4Kmake_changelog: Stop at Release ... commit by pukkandannightly builds will be made after each push, containing the latest fixes (but also possibly bugs).--update/-U, a release binary will only update to its current channel (either stable or nightly).--update-to option has been added allowing the user more control over program upgrades (or downgrades).--update-to can change the release channel (stable, nightly) and also upgrade or downgrade to specific tags.--update-to CHANNEL, --update-to TAG, --update-to CHANNEL@TAG--break-match-filters by pukkandan--break-on-existing with --lazy-playlist by pukkandanLenientJSONDecoder: Parse unclosed objects by pukkandanPopen: Shim undocumented text_mode property by Grub4KChangelog by pukkandan--concat-playlist--no-progress when --printtitle completely non-fatal__bool__ and propertyCryptodome 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_moduleEnhancedModulepyinstaller hooksCryptodomeuploader_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 carusocrmimetype2ext: 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_ratioac4 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-formatsfragment_query extractor arg for DASH and HLS by bashonly, pukkandanAccept-Encoding: identity for initial request by coletdjnzmov to vextclassproperty: Add cache supportget_exe_version: Detect broken executables by dirkf, pukkandanjs_to_json: Fix bug in f55523c by ChillingPepper, pukkandanExtractorError mutableFileDownloader.parse_bytes into utilsutilswindows_enable_vt_mode: Proper implementation by Grub4Krandom.choices by freezboltzAmazonReviews extractor by bashonlyNetverseSearch extractor by HobbyistDevVimeoProIE by bashonly, pukkandanpiped.video by Bnyroytuser:undalbum_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=Nonetype field, obey --retry-sleep extractor, relax duration check for large segmentschapter category by ajayyy, pukkandanLenientSimpleCookie by Grub4Kfatal=False for _search_nuxt_data_generic_titlejson_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_URLrelease_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-locationlibc_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-formatsdeprecation_warningorderedSet_from_optionsPopen: 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-archivechannels--prefer-avconvlibatomicparsley.sofixup_webpget_compatible_exte.g. by Lesmiscore_VALID_URLswf domain by aldoridhoni_VALID_URL by masta79--compat-option no-live-chat should disable danmaku--match-filter-J--merge-output-formataudio_channelsffmpeg_location in a contextvarNone when the field didn't matchutils and refactorbest*live_status=post_live by lazypete365_VALID_URL by HobbyistDev_VALID_URLNonecertifi is used--no-progress for --wait-for-videoh for HTML escapingerrnote=False to parsers--config-locationget_domainsetup.py_update_spec when up to datedownload_ranges by FirefoxMetzger_VALID_URL_VALID_URL by IONECarter, dirkf--downloader nativesection_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-updatestderr with -q--simulate --max-downloads--live-from-start by flashdagger_search_json by coletdjnz, pukkandandefault parameter to _search_json by coletdjnz, pukkandan--load-pagesjson_ld with multiple @types_ALL_CLASSES lazilysrc attribute from HTML5 media elements by Lesmiscorefunctools.cacheExtractorError: Fix exc_infoISO3166Utils: Add EU and APPopen: Refactor to use contextmanagerlocked_file: Fix for PyPy on Windows.git folder to distinguish source/unknownfunctools.cached_propertyFakeYDL signatures by coletdjnzreport_progress_download_... methodsextractors.py to _extractors.pyformat_fieldYoutubeDL.parse_outtmplinnertube_host and innertube_key extractor args by coletdjnz_extract_chapters_from_descriptioncomment_count from webpage:ytnotifications extractor by coletdjnzvideoRenderer in _post_thread_continuation_entriesauth_token from cookie by mnnmountComponentWatchESPN extractor by ischmidt20, pukkandandata-video-jw-id_VALID_URLnavernow 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-infojsonFFmpegFixupM3u8PP 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-mpegtsmanifest_urls after redirect by elyse0manifest_url after redirects by elyse0classmethod/property where possible_extract_rssis_html: Handle double BOMlocked_file: Ignore illegal seek on truncate by jakeoghsanitize_path: Fix when path is empty stringwrite_string: Workaround newline issue in conhostcertifi: Make sure the pem file existsWebSocketsWrapperlocked_file: Do not give executable bits for newly created files by LesmiscoreYoutubeDLCookieJar: Detect and reject JSON file by Lesmiscorecompat.imghdrmake uninstall by MrRawesinstall -DMakefile 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-rateautonumberhttp_headers--print-to-file--wait-for-videomhtml formats from -f mergeall--match-filterAccept-Encoding header from std_headers by coletdjnz--dateafterHttpieFD_perform_login function--remux-videotest_locked_fileformat_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_titleAfreecaTVUserIE by hatienl0i261299format_note to m3u8 formatstv.telezueri.ch by gogglegeo.dailymotion.com by hatienl0i261299_VALID_URLxnxx3.com by rozari0membership tab__init__.pyafter_filter--live-from-start format--print-to-file-all for --sub-langsvideo_id in ExtractorErrorNone--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=trueCookies.binarycookies location by mdpauleyprepare_manpagem3u8--file-access-retries when deleting/renaming by ehoogeveen-medwebhttp_headers to be specified for thumbnails--mark-watched without _NETRC_MACHINE by coletdjnz--simulateacodec=ogg as vorbis--live-from-start for YouTube livestreams by Lesmiscoreguid as video id by Bricio--clean-infojson to --clean-info-jsonExtractorErrorlocked_file for sanitize_open by jakeoghDateRange input_extract_m3u8_formats for live videosform_paramsGettrStreamingIE by i6t--ignore-no-formats-erroruploader by regarten_VALID_URLwebpvm.tiktok/vt.tiktok URLsview_countapproximate_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-formatsInAdvancePagedList-o "" better_yes_playlisttitle extractionArticle json_ldclean_html by dirkfunpad_pkcs7test_youtube_playlist_noplaylistYoutubeMusicSearchURLIEytarchive: prefix and misc cleanup--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_countrequested_downloads in the root info_dictdownload_archive only after all formats are downloadedmeta<n>_ prefix--legacy-server-connect by xtkoba, in --extractor-argsinfo.jsonNone in sanitize_info-s --ignore-no-formats --force-write-archive--list-thumbnails-map 0D and fix suffix's caseSec-Fetch-Mode to std_headersformat_bytes output for Bytes by pukkandan, mdawarss:xxx in parse_durationNone in traverse_obj to return as-isurl_result and related_search_nextjs_data, format_fieldhttp for manifestsuploadertv.line.me by sian1468MixchArchiveIE by Lesmiscoreclip URLs_VALID_URL by k3ns1nupload_date for playlists--ppa--no-progressTYPES: in -P/-oextractor_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_titlefaststartYYYYMMDD dates in Nov/Dec by wlritchiparse_countstd_headers by kikuyan, fstirlitz--no-write-thumbnail to override --write-all-thumbnail--throttled-rate--console-title--flat-playlistinfo_dict-f bestparse_duration for --wait-for-video and some minor fixwebpage_url_domain by std-moveRTVEAudioIE by kebianizaodiscoveryplus.com/ittv_android m3u8 by YuenSzeHong_VALID_URL_RE by jaller94jw_config regex by julien-hadleyjack_VALID_URLTrovoChannelBaseIEytsearchdate--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-metadataworkflow_dispatch for releasewav and vorbisalacaverage_rating from JSON-LDrender_table and add testsPagedListLazyListpostprocessor_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-headerreport_unplayable_conflict by shirt--no-clean-infojsonDiscoveryPlusItalyShowIE by Ashish0804NebulaCollectionIE and rewrite extractor by hheimbuergerwebpage_url correctlydefault player client by coletdjnzratebypassJSInterpreter._seperate_search_nextjs_data--check-all-formats from --check-formatswindows_enable_vt_mode--load-infojson of playlists-F and standardize color-printing codelink for internet shortcut filesq and jNone--audio-quality correctly by CrypticSignal, pukkandanlibfdk_aac if available by CrypticSignaleac3 is better than ac3ExtractorErrorjoin_nonemptyjwt_decode_hs256 by Ashish0804DownloadCancelled exceptionvp09 as vp9bvSkyNewsStoryIE by ajj8thumbnail with the best "known" thumbnaillanguage and hardsubpy2exeYTDLP_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 -qvduration_string and resolution available in --match-filter--id--socket-timeoutEXT-X-KEY Apple FairPlayimportlib to load plugins by sulyi--skip-unavailable-fragmentextractor-retries and sleep-requestsaac_adtstoasc to non-hls audiobeta.crunchyroll URLs and fix series URLs with language codeformat_id by Ashish0804player.vimeogetcomments 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-postprocessorl 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-errorcollection-playlist by nixxo/en502 error and update _CLIENT_ID--mark-watched with --cookies-from-browser--force-write-archive to work with --flat-playlist--sub-langs0 in --playlist-items-i--no-get-commentsextra_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 Cryptoextract_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-viewssuitable and add flake8 test-iHungamaSongIE 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_urllang_set_from_options_callbackparse_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-partContent-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-partBrokenPipeError 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_inputpyinstaller 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=allhl=en for comments by coletdjnz_VALID_URLno-clean-infojsonasr appearing twice in -Fhome: as the default key for -PLazyListignore_no_formats_errorinfo_dict to progress_hooksget_video_info age-gate workaround - This endpoint seems to be completely dead_get_textsqlite 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-browserkeyring is needed for UNIX and pycryptodome for Windows--exec-before-downloadlive_statusplayer_client now accepts multiple clientsplayer_client = android,web
music.youtube.complayer_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_depthis_favorited, improve like_count parsing by coletdjnz_VALID_URL by nao20010128naovideo_types to vikichannel by zackmark29, pukkandan_get_thumbnail_resolutionall, mergeall and add tests--ignore-errorsoriginal_url was not propagated when _type=urlwrite_thumbnailextractor_args parsingNOTE in -F to MORE INFO since it's often confused to be the same as format_noteonly_once param for write_debug and report_warning_search_regex by fstirlitztraverse_objvariadicjs_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=configitct 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_keycheck_formats catching ExtractorError instead of DownloadError--list-formats-old--ppa when using simultaneous downloadhls_split_discontinuityjpeg as jpgLazyList reversalLazyList and yield fromextractor.common._merge_subtitles signature--throttled-rate below which video data is re-extracted-N, and refactor hls/dashWebSocketFragmentFD by nao20010128nao, pukkandanimages formats in addition to video/audio:ytreccastembed-thumbnail-atomicparsley--check-formats to thumbnails--fixup force to force it-fNamedTemporaryFile for --check-formats--min-split-size for HTTP downloads--add-metadata to --embed-metadataLazyList and add tests--embed-metadata embeds chapter markers%(field)d in filename template throws errorprepare_filenameoriginal_url with the user-inputted URLprepare_outtmpl--print when used with --flat-playlisttraverse_dict to traverse_objyt-dlp.tar.gzpython3 by fstirlitztrovolive.pyuser: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 LazyListstderr when both quiet and verboseNone values from info.jsonsocket.io response as json by pukkandan and llacb47note=False when extracting manifestssanitized_Request, not sanitize_urlwebtt/live URLs should raise error if channel is not live- before id by olifreYoutubeDL._match_entryMP, 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-urladditional_urls to download additional videos from metadata using --parse-metadatapl_thumbnail outtmpl keyflac support and refactor mutagen code by pukkandan and tripulse_VALID_URLno-attach-infojsonname for subtitlespost_extract and pre_process only run once--check-formats when there is network errorwrite_debug and get_param--write-comments, --no-write-commentsplaylist_mincountcompat_opts is not givenfield.start:end:stepfield1+num+field2field|default-l, -t, -A completely and disable --auto-number, --title, --literal, --idquiet and to_stderrnetwork_exceptions_VALID_URL to support moviesallow_unplayable_formats_VALID_URLtitle 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 -Ppreload_download_archive writing verbose message to stdoutYoutubeDLso 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_warningmergeall 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-downloadernative as an option for the downloaderdatetime_from_str and datetime_add_months by coletdjnzpostprocessors before actual download-P, -o, -Sm3u8 not obeying --allow-unplayable-formatsdynamic_mpd--all-formats, --include-ads, --hls-prefer-native, --hls-prefer-ffmpeg--parse-metadata-f bv*.2availability by coletdjnzview-source:--parse-metadata documentation--parse-metadata--load-info-json--no-clean-infojsonMerge youtube-dl: Upto commit/7e79ba7
Option --no-clean-infojson to keep private keys in the infojson
[aria2c] Support retry/abort unavailable fragments by damianoamatruda
[aria2c] Better default arguments
[movefiles] Fix bugs and make more robust
[formatSort] Fix quality being ignored
[splitchapters] Fix for older ffmpeg
[sponskrub] Pass proxy to sponskrub
Make sure post_hook gets the final filename
Recursively remove any private keys from infojson
Embed video URL metadata inside mp4 by damianoamatruda and pukkandan
Merge webm formats into mkv if thumbnails are to be embedded by damianoamatruda
Use headers and cookies when downloading subtitles by damianoamatruda
Parse resolution in info dictionary by damianoamatruda
More consistent warning messages by damianoamatruda and pukkandan
[docs] Add deprecated options and aliases in readme
[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/httpiem3u8 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 Optionsall 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 codecsqualityfield_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.exeyt-dlp and youtube-dlc in releases for future-proofingpycryptodomeallow_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 -s16strftime to format date/time fields. Example: %(upload_date>%Y-%m-%d)s-o TYPE:TEMPLATEsubtitle|thumbnail|description|annotation|infojson|pl_description|pl_infojson--no-write-playlist-metafiles to prevent writing playlist metadata filesparse_yt_initial_data and add fragment_retriesquality 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 _downloaderupdate-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-linkunrecognized argument error message correctlyformatSort. The aliases remain functional for backward compatibility, but will be left undocumented/#/player URLs--ppa as alias./yt-dlp.confyt-dlp instead of youtube-dlc. See this for details--break-on-reject--force-overwrites, --no-force-overwrites by alxnullyt-dlpplayable_in_embed)test_youtube_search_matchingto_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-multistreamsbv*+ba/b when --audio-multistreams is disabledres,fps,codec,size,br,asr,proto,ext,has_audio,source,format_idwebm 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-multistreamsb,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-oldno- 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