NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1043 most downloaded on PyPI
A feature-rich command-line audio/video downloader
Last release 7 days ago
27 Sep 2026
Ships on a steady schedule
a new release about every 9 days
Nearly every release is documented
notes for 60 of the last 60 stable releases
6 versions withdrawn
withdrawn after publishing
6 years old
640 releases · first in 2021
One column per quarter.
Deprecate support for Python 3.6
<details><summary><h2>Changelog</h2></summary> <p>
--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</p> </details>
[cleanup] Deprecate some compat vars by fstirlitz, pukkandan
--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 dirkfUse certificates from certifi if installed by coletdjnz
certifi 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 tabNothing published for this version
#### A description of the various files) are in the README --- ### Changelog: * [cleanup] Refactor __init__.py * [build] Fix bug
__init__.pyMerge youtube-dl: Upto commit/6508688 (except NDR)
after_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 Lesmiscore[youtube:search] Fix extractor by coletdjnz
websockets module non-fatalMerge youtube-dl: Upto commit/78ce962
--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 cleanupRelease created in the middle of the night so people will stop posting duplicates of https://github.com/yt-dlp/yt-dlp/issues/2569 https://github.com/yt-dlp/yt-dlp/issues/2575 https://github.com/yt-dlp/yt-dlp/issues/2576 https://github.com/yt-dlp/yt-dlp/issues/2588 https://github.com/yt-dlp/yt-dlp/issues/2602 https://github.com/yt-dlp/yt-dlp/issues/2615 https://github.com/yt-dlp/yt-dlp/issues/2618 https://github.com/yt-dlp/yt-dlp/issues/2619 and https://github.com/yt-dlp/yt-dlp/issues/2476 https://github.com/yt-dlp/yt-dlp/issues/2488 https://github.com/yt-dlp/yt-dlp/issues/2534 https://github.com/yt-dlp/yt-dlp/issues/2582 https://github.com/yt-dlp/yt-dlp/issues/2595 https://github.com/yt-dlp/yt-dlp/issues/2611
G'night
Allow --exec to be run at any post-processing stage (Deprecates --exec-before-download)
--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 playlistsAvoid recursion error when re-extracting info
--ppa--no-progressTYPES: in -P/-oextractor_key used in archivelive-from-start properly when stream ends with 403[FormatSort] Prevent incorrect deprecation warning
--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[cleanup] Add deprecation warnings
--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._seperateTemporarily disable MacOS Build
[youtube] Fix throttling by decrypting n-sig
_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 jNonelibfdk_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 hardsubRe-implement deprecated option --id
py2exeYTDLP_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 extractorsThere was a couple of serious bugs in last release (#1215, #1211) So here's a hotfix
There was a couple of serious bugs in last release (#1215, #1211) So here's a hotfix
Changelog:
FFmpegPostProcessorSeparate --console-title and --no-progress
Changelog:
--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[cleanup,docs] Add deprecation warning in docs for some counter intuitive behaviour
Changelog:
--netrc-location,B to treat the value as bytes (eg: 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 windows by pukkandannebula.py by glenn-slaydenmake clean-test by sulyiDeprecates: --sponskrub, --no-sponskrub, --sponskrub-cut, --no-sponskrub-cut, --sponskrub-force, --no-sponskrub-force, --sponskrub-location, --sponskr…
--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.gzFor sponskrub users:
--sponsorblock-mark all instead--sponsorblock-remove allNothing published for this version
Add option --no-simulate to not simulate even when --print or --list... are used - Deprecates --print-json
Changelog:
--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 fileAdd logo, banner and donate links
Changelog:
j (json), l (comma delimited list), q (quoted for terminal) in output templateagegate 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_errorQuick release due to a couple of nasty bugs in the last version
Quick release due to a couple of nasty bugs in the last version
Changelog:
info_dict to progress_hooksget_video_info age-gate workaround - This endpoint seems to be completely dead_get_textsqlite ImportError gracefully by mbwaykeyringYoutube age-gate bypass is broken for non-embeddable videos unless logged-in cookies are given. You can provide cookies using either the --cookies or --cookies-from-browser options. There is currently no known way to circumvent the age-gate without authentication details. If you know any way to (or know any app that can) bypass the age-gate (without auth), let us know.
Add option `--cookies-from-browser` to load cookies from a browser by mbway
Changelog:
--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-fatalis_favorited, improve like_count parsing by colethedj_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 fstirlitzDeprecates --youtube-skip-dash-manifest, --youtube-skip-hls-manifest, --youtube-include-dash-manifest, --youtube-include-hls-manifest
Changelog:
--extractor-args to pass extractor-specific arguments
skip for youtube. Eg: --extractor-args youtube:skip=hls,dash--list... options to work with --print, --quiet and other --list... optionsplayer API for additional video extraction requests by colethedj
player_client = web/android
--extractor-args youtube:player_client=android works around the throttling for the time-beingplayer_skip=configitct to params by colethedjclickTrackingParams 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 signatureMerge youtube-dl: Upto commit/379f52a
Changelog:
--throttled-rate below which video data is re-extracted-N, and refactor hls/dashWebSocketFragmentFDby 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 markersNote: While youtube throttling issue hasn't been fixed, it can be worked around by using --throttled-rate 100K
Fix bug where %(field)d in filename template throws error
Changelog:
%(field)d in filename template throws errorprepare_filenameThe quick release is due to the seriousness of the output template bug. Due to the same reason, Win XP (Py3.4) support has been extended to this release
%(field)d in filename template throws errorprepare_filenameRemove support for obsolete Python versions: Only 3.6+ is now supported
Changelog:
original_url with the user-inputted URLprepare_outtmpl--print when used with --flat-playlisttraverse_dict to traverse_objyt-dlp.tar.gzpython3 by fstirlitztrovolive.pyv2021.06.01 was supposed to be the last version where the windows x86 binary is built with Python 3.4 and thus have compatibility with Windows XP. However, a bug was discovered in video decryption when using -N for the last version and I did not want the last release to be a buggy one. So, while python 3.4 support has already been officially dropped, the yt-dlp_x86.exe of this release is built with it, making this the actual last release that supports Windows XP
Edit: See 2021.06.09
This will be the last release that supports python versions < 3.6
This will be the last release that supports python versions < 3.6
Once you update to this version, -U will be blocked for Windows XP and for UNIX systems without python 3.6+
Edit: Version 2021.06.09 also has Windows XP Support despite python 3.4 support being dropped after this release. See the release description for details
Changelog
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 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_entryAdd option `--print`: to print any field/template Deprecates: --get-description, --get-duration, --get-filename, --get-format, --get-id, --get-thumbna…
MP, VL and browse pagesvideos tab to their UU playlistsmaxresdefault thumbnailhtml5=1 param to get_video_info page requests by colethedj--print: to print any field/template
Deprecates: --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 givenThere was some issue in building the x86 release. So it will be temporarily unavailable Fixed
Deprecate support for python versions < 3.6
Changelog:
field.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[documentation] Clarify which deprecated options still work
Changelog:
%(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 disabledDeprecate --all-formats, --include-ads, --hls-prefer-native, --hls-prefer-ffmpeg
Changelog:
--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 colethedjpostprocessors before actual download-P, -o, -Sm3u8 not obeying --allow-unplayable-formatsdynamic_mpd--all-formats, --include-ads, --hls-prefer-native, --hls-prefer-ffmpegMerge youtube-dl: Upto commit/654b4f4
Changelog:
--parse-metadata-f bv*.2availability by colethedjview-source:--parse-metadata documentationMerge youtube-dl: Upto 2021.03.25
CHANGELOG
--parse-metadata--load-info-json--no-clean-infojsonMerge youtube-dl: Upto 2021.03.25 (commit/8562218)
--parse-metadata--load-info-json--no-clean-infojson[documentation] Add deprecated options and aliases in readme
Changelog:
--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 damianoamatrudaprivate, unlisted etc in info (availability) by colethedj and pukkandanSplit video by chapters: using option --split-chapters
Changelog:
--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)[youtube] Fix history, mixes, community pages and trending by pukkandan and colethedj
Changelog:
Accept header by pukkandan and animelover1984m3u8 extensionlbry:// url by nixxoAccept header by pukkandan and animelover1984ffmpeg/httpiem3u8 extensionThis is an important update since it fixes youtube channels/playlists and twitch livestreams
This is an important update since it fixes youtube channels/playlists and twitch livestreams
Changelog:
--extractor-retries are exhausted--extractor-retries to 3Nothing published for this version
[youtube] Use new browse API for continuation page extraction by coletdjnz and pukkandan
--extractor-retries are exhausted--extractor-retries to 3Allow specifying path in --external-downloader
Changelog:
--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-streamsThe module name have been changed from youtube_dlc to yt_dlp and the binary name from youtube-dlc to yt-dlp. Take care to modify your programs/scripts
The module name have been changed from youtube_dlc to yt_dlp and the binary name from youtube-dlc to yt-dlp. Take care to modify your programs/scripts to work with this change in name
youtube-dlc config files are no longer loadedwas_live)hyland.com--hls-split-discontinuity to better support media discontinuity by shirt--ppa "ffmpeg_i1:ARGS" synatax--windows-filenames removing / from UNIX pathsExtractor Optionsall in format selectionplayable_in_embed in output templatesMerge youtube-dl: Upto commit/cf2dbec (except kakao)
Changelog:
channel 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-formatMerge youtube-dl: Upto 2021.02.10 (except archive.org)
Changelog:
--allow-unplayable-formats)pycryptodomex86.exeyt-dlp and youtube-dlc in releases for future-proofingallow_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--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 messagearia2c support for DASH/HLS: by shirt
Changelog:
-U) by shirt--console-log-level=warn --summary-interval=0 --file-allocation=none -x16 -j16 -s16Merge youtube-dl: Upto 2021.02.04.1
Changelog:
strftime 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 infojsonDeprecated --metadata-from-title
Changelog:
--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 filesDeprecate redundant aliases in formatSort. The aliases remain functional for backward compatibility, but will be left undocumented
Merge youtube-dl: Upto 2021.01.24
Plugin support (documentation)
Multiple paths: New option -P/--paths to give different paths for different types of files
-P "type:path" -P "type:path" (documentation)Allow passing different arguments to different external downloaders (documentation)
[mildom] Add extractor by @nao20010128nao
Warn when using old style --external-downloader-args and --post-processor-args
Fix --no-overwrite when using --write-link
[sponskrub] Output unrecognized argument error message correctly
[cbs] Make failure to extract title non-fatal
Fix typecasting when pre-checking archive
Fix issue with setting title on UNIX
Deprecate redundant aliases in formatSort. The aliases remain functional for backward compatibility, but will be left undocumented
[tests] Fix test_post_hooks
[tests] Split core and download tests
Deprecate redundant aliases in formatSort. The aliases remain functional for backward compatibility, but will be left undocumented
-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[TrovoLive] Add extractor (only VODs)
Changelog:
/#/player URLs--ppa as aliasMerge youtube-dl: Upto 2021.01.16
Changelog:
./yt-dlp.confyt-dlp instead of youtube-dlc. See this for detailsNothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →