0
0
Fork 0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2024-11-25 02:45:12 +00:00
yt-dlp/Changelog.md
2023-02-17 18:38:10 +05:30

218 KiB

Changelog

2023.02.17

  • Merge youtube-dl: Upto commit/2dd6c6e
  • Fix --concat-playlist
  • Imply --no-progress when --print
  • Improve default subtitle language selection by sdht0
  • Make title completely non-fatal
  • Sanitize formats before sorting by pukkandan
  • Support module level __bool__ and property
  • [dependencies] Standardize Cryptodome imports
  • [hls] Allow extractors to provide AES key by Grub4K, bashonly
  • [ExtractAudio] Handle outtmpl without ext by carusocr
  • [extractor/common] Fix _search_nuxt_data by LowSuggestion912
  • [extractor/generic] Avoid catastrophic backtracking in KVS regex by bashonly
  • [jsinterp] Support if statements
  • [plugins] Fix zip search paths
  • [utils] traverse_obj: Various improvements by Grub4K
  • [utils] traverse_obj: Fix more bugs
  • [utils] traverse_obj: Fix several behavioral problems by Grub4K
  • [utils] Don't use Content-length with encoding by felixonmars
  • [utils] Fix time_seconds to use the provided TZ by Grub4K, Lesmiscore
  • [utils] Fix race condition in make_dir by aionescu
  • [utils] Use local kernel32 for file locking on Windows by Grub4K
  • [compat_utils] Improve passthrough_module
  • [compat_utils] Simplify EnhancedModule
  • [build] Update pyinstaller
  • [pyinst] Fix for pyinstaller 5.8
  • [devscripts] Provide pyinstaller hooks
  • [devscripts/pyinstaller] Analyze sub-modules of Cryptodome
  • [cleanup] Misc fixes and cleanup
  • [extractor/anchorfm] Add episode extractor by HobbyistDev, bashonly
  • [extractor/boxcast] Add extractor by HobbyistDev
  • [extractor/ebay] Add extractor by JChris246
  • [extractor/hypergryph] Add extractor by HobbyistDev, bashonly
  • [extractor/NZOnScreen] Add extractor by gregsadetsky, pukkandan
  • [extractor/rozhlas] Add extractor RozhlasVltavaIE by amra
  • [extractor/tempo] Add IVXPlayer extractor by HobbyistDev
  • [extractor/txxx] Add extractors by chio0hai
  • [extractor/vocaroo] Add extractor by SuperSonicHub1, qbnu
  • [extractor/wrestleuniverse] Add extractors by Grub4K, bashonly
  • [extractor/yappy] Add extractor by HobbyistDev
  • [extractor/youtube] Fix uploader_id extraction by bashonly
  • [extractor/youtube] Add hyperpipe instances by Generator
  • [extractor/youtube] Handle consent.youtube
  • [extractor/youtube] Support /live/ URL
  • [extractor/youtube] Update invidious and piped instances by rohieb
  • [extractor/91porn] Fix title and comment extraction by pmitchell86
  • [extractor/AbemaTV] Cache user token whenever appropriate by Lesmiscore
  • [extractor/bfmtv] Support rmc prefix by carusocr
  • [extractor/biliintl] Add intro and ending chapters by HobbyistDev
  • [extractor/clyp] Support wav by qulaz
  • [extractor/crunchyroll] Add intro chapter by ByteDream
  • [extractor/crunchyroll] Better message for premium videos
  • [extractor/crunchyroll] Fix incorrect premium-only error by Grub4K
  • [extractor/DouyuTV] Use new API by hatienl0i261299
  • [extractor/embedly] Embedded links may be for other extractors
  • [extractor/freesound] Workaround invalid URL in webpage by rebane2001
  • [extractor/GoPlay] Use new API by jeroenj
  • [extractor/Hidive] Fix subtitles and age-restriction by chexxor
  • [extractor/huya] Support HD streams by felixonmars
  • [extractor/moviepilot] Fix extractor by panatexxa
  • [extractor/nbc] Fix NBC and NBCStations extractors by bashonly
  • [extractor/nbc] Fix XML parsing by bashonly
  • [extractor/nebula] Remove broken cookie support by hheimbuerger
  • [extractor/nfl] Add NFLPlus extractors by bashonly
  • [extractor/niconico] Add support for like history by Matumo, pukkandan
  • [extractor/nitter] Update instance list by OIRNOIR
  • [extractor/npo] Fix extractor and add HD support by seproDev
  • [extractor/odkmedia] Add OnDemandChinaEpisodeIE by HobbyistDev, pukkandan
  • [extractor/pornez] Handle relative URLs in iframe by JChris246
  • [extractor/radiko] Fix format sorting for Time Free by road-master
  • [extractor/rcs] Fix extractors by nixxo, pukkandan
  • [extractor/reddit] Support user posts by OMEGARAZER
  • [extractor/rumble] Fix format sorting by pukkandan
  • [extractor/servus] Rewrite extractor by Ashish0804, FrankZ85, StefanLobbenmeier
  • [extractor/slideslive] Fix slides and chapters/duration by bashonly
  • [extractor/SportDeutschland] Fix extractor by FriedrichRehren
  • [extractor/Stripchat] Fix extractor by JChris246, bashonly
  • [extractor/tnaflix] Fix extractor by bashonly, oxamun
  • [extractor/tvp] Support stream.tvp.pl by selfisekai
  • [extractor/twitter] Fix --no-playlist and add media view_count when using GraphQL by Grub4K
  • [extractor/twitter] Fix graphql extraction on some tweets by selfisekai
  • [extractor/vimeo] Fix playerConfig extraction by LeoniePhiline, bashonly
  • [extractor/viu] Add ViuOTTIndonesiaIE extractor by HobbyistDev
  • [extractor/vk] Fix playlists for new API by the-marenga
  • [extractor/vlive] Replace with VLiveWebArchiveIE by seproDev
  • [extractor/ximalaya] Update album _VALID_URL by carusocr
  • [extractor/zdf] Use android API endpoint for UHD downloads by seproDev
  • [extractor/drtv] Fix bug in ab4cbef by bashonly

2023.01.06

  • Fix config locations by Grub4k, coletdjnz, pukkandan
  • [downloader/aria2c] Disable native progress
  • [utils] mimetype2ext: weba is not standard
  • [utils] windows_enable_vt_mode: Better error handling
  • [build] Add minimal pyproject.toml
  • [update] Fix updater file removal on windows by Grub4K
  • [cleanup] Misc fixes and cleanup
  • [extractor/aitube] Add extractor by HobbyistDev
  • [extractor/drtv] Add series extractors by FrederikNS
  • [extractor/volejtv] Add extractor by HobbyistDev
  • [extractor/xanimu] Add extractor by JChris246
  • [extractor/youtube] Retry manifest refresh for live-from-start by mzhou
  • [extractor/biliintl] Add /media to VALID_URL by HobbyistDev
  • [extractor/biliIntl] Add fallback to video_data by HobbyistDev
  • [extractor/crunchyroll:show] Add language to entries by Chrissi2812
  • [extractor/joj] Fix extractor by OndrejBakan, pukkandan
  • [extractor/nbc] Update graphql query by jacobtruman
  • [extractor/reddit] Add subreddit as channel_id by gschizas
  • [extractor/tiktok] Add TikTokLive extractor by JC-Chung

2023.01.02

  • Improve plugin architecture by Grub4K, coletdjnz, flashdagger, pukkandan
    • Plugins can be loaded in any distribution of yt-dlp (binary, pip, source, etc.) and can be distributed and installed as packages. See the readme for more information
  • Add --compat-options 2021,2022
    • This allows devs to change defaults and make other potentially breaking changes more easily. If you need everything to work exactly as-is, put Use --compat 2022 in your config to guard against future compat changes.
  • [downloader/aria2c] Native progress for aria2c via RPC by Lesmiscore, pukkandan
  • Merge youtube-dl: Upto commit/195f22f by Grub4k, pukkandan
  • Add pre-processor stage video
  • Let --parse/replace-in-metadata run at any post-processing stage
  • Add --enable-file-urls by coletdjnz
  • Add new field aspect_ratio
  • Add ac4 to known codecs
  • Add weba to known extensions
  • [FFmpegVideoConvertor] Add gif to --recode-video
  • Add message when there are no subtitles/thumbnails
  • Deprioritize HEVC-over-FLV formats by Lesmiscore
  • Make early reject of --match-filter stricter
  • Fix --cookies-from-browser CLI parsing
  • Fix original_url in playlists
  • Fix bug in writing playlist info-json
  • Fix bugs in PlaylistEntries
  • [downloader/ffmpeg] Fix headers for video+audio formats by Grub4K, bashonly
  • [extractor] Add a way to distinguish IEs that returns only videos
  • [extractor] Implement universal format sorting and deprecate _sort_formats
  • [extractor] Let _extract_format functions obey --ignore-no-formats
  • [extractor/generic] Add fragment_query extractor arg for DASH and HLS by bashonly, pukkandan
  • [extractor/generic] Decode unicode-escaped embed URLs by bashonly
  • [extractor/generic] Don't report redirect to https
  • [extractor/generic] Fix JSON LD manifest extraction by bashonly, pukkandan
  • [extractor/generic] Use Accept-Encoding: identity for initial request by coletdjnz
  • [FormatSort] Add mov to vext
  • [jsinterp] Escape regex that looks like nested set
  • [webvtt] Handle premature EOF by flashdagger
  • [utils] classproperty: Add cache support
  • [utils] get_exe_version: Detect broken executables by dirkf, pukkandan
  • [utils] js_to_json: Fix bug in f55523c by ChillingPepper, pukkandan
  • [utils] Make ExtractorError mutable
  • [utils] Move FileDownloader.parse_bytes into utils
  • [utils] Move format sorting code into utils
  • [utils] windows_enable_vt_mode: Proper implementation by Grub4K
  • [update] Workaround #5632
  • [docs] Improvements
  • [cleanup] Misc fixes and cleanup
  • [cleanup] Use random.choices by freezboltz
  • [extractor/airtv] Add extractor by HobbyistDev
  • [extractor/amazonminitv] Add extractors by GautamMKGarg, nyuszika7h
  • [extractor/beatbump] Add extractors by Bobscorn, pukkandan
  • [extractor/europarl] Add EuroParlWebstream extractor by HobbyistDev
  • [extractor/kanal2] Add extractor by bashonly, glensc, pukkandan
  • [extractor/kankanews] Add extractor by synthpop123
  • [extractor/kick] Add extractor by bashonly
  • [extractor/mediastream] Add extractor by HobbyistDev, elyse0
  • [extractor/noice] Add NoicePodcast extractor by HobbyistDev
  • [extractor/oneplace] Add OnePlacePodcast extractor by HobbyistDev
  • [extractor/rumble] Add RumbleIE extractor by flashdagger
  • [extractor/screencastify] Add extractor by bashonly
  • [extractor/trtcocuk] Add extractor by HobbyistDev
  • [extractor/Veoh] Add user extractor by tntmod54321
  • [extractor/videoken] Add extractors by bashonly
  • [extractor/webcamerapl] Add extractor by milkknife
  • [extractor/amazon] Add AmazonReviews extractor by bashonly
  • [extractor/netverse] Add NetverseSearch extractor by HobbyistDev
  • [extractor/vimeo] Add VimeoProIE by bashonly, pukkandan
  • [extractor/xiami] Remove extractors by synthpop123
  • [extractor/youtube] Add piped.video by Bnyro
  • [extractor/youtube] Consider language in format de-duplication
  • [extractor/youtube] Extract DRC formats
  • [extractor/youtube] Fix ytuser:
  • [extractor/youtube] Fix bug in handling of music URLs
  • [extractor/youtube] Subtitles cannot be translated to und
  • [extractor/youtube:tab] Extract metadata from channel items by coletdjnz
  • [extractor/ARD] Add vtt subtitles by CapacitorSet
  • [extractor/ArteTV] Extract chapters by bashonly, iw0nderhow
  • [extractor/bandcamp] Add album_artist by stelcodes
  • [extractor/bilibili] Fix --no-playlist for anthology
  • [extractor/bilibili] Improve _VALID_URL by skbeh
  • [extractor/biliintl:series] Make partial download of series faster
  • [extractor/BiliLive] Fix extractor
  • [extractor/brightcove] Add BrightcoveNewBaseIE and fix embed extraction
  • [extractor/cda] Support premium and misc improvements by selfisekai
  • [extractor/ciscowebex] Support password-protected videos by damianoamatruda
  • [extractor/curiositystream] Fix auth by mnn
  • [extractor/embedly] Handle vimeo embeds
  • [extractor/fifa] Fix Preplay extraction by dirkf
  • [extractor/foxsports] Fix extractor by bashonly
  • [extractor/gronkh] Fix _VALID_URL by muddi900
  • [extractor/hotstar] Improve format metadata
  • [extractor/iqiyi] Fix Iq JS regex by bashonly
  • [extractor/la7] Improve extractor by nixxo
  • [extractor/mediaset] Better embed detection and error messages by nixxo
  • [extractor/mixch] Support --wait-for-video
  • [extractor/naver] Improve _VALID_URL for NaverNowIE by bashonly
  • [extractor/naver] Treat fan subtitles as separate language
  • [extractor/netverse] Extract comments by HobbyistDev
  • [extractor/nosnl] Add support for /video by HobbyistDev
  • [extractor/odnoklassniki] Extract subtitles by bashonly
  • [extractor/pinterest] Fix extractor by bashonly
  • [extractor/plutotv] Fix videos with non-zero start by digitall
  • [extractor/polskieradio] Adapt to next.js redesigns by selfisekai
  • [extractor/reddit] Add vcodec to fallback format by chengzhicn
  • [extractor/reddit] Extract crossposted media by bashonly
  • [extractor/reddit] Extract video embeds in text posts by bashonly
  • [extractor/rutube] Support private videos by mexus
  • [extractor/sibnet] Separate from VKIE
  • [extractor/slideslive] Fix extractor by Grub4K, bashonly
  • [extractor/slideslive] Support embeds and slides by Grub4K, bashonly, pukkandan
  • [extractor/soundcloud] Support user permalink by nosoop
  • [extractor/spankbang] Fix extractor by JChris246
  • [extractor/stv] Detect DRM
  • [extractor/swearnet] Fix description bug
  • [extractor/tencent] Fix geo-restricted video by elyse0
  • [extractor/tiktok] Fix subs, DouyinIE, improve _VALID_URL by bashonly
  • [extractor/tiktok] Update _VALID_URL, add api_hostname arg by bashonly
  • [extractor/tiktok] Update API hostname by redraskal
  • [extractor/twitcasting] Fix videos with password by Spicadox, bashonly
  • [extractor/twitter] Heed --no-playlist for multi-video tweets by Grub4K, bashonly
  • [extractor/twitter] Refresh guest token when expired by Grub4K, bashonly
  • [extractor/twitter:spaces] Add Referer to m3u8 by nixxo
  • [extractor/udemy] Fix lectures that have no URL and detect DRM
  • [extractor/unsupported] Add more URLs
  • [extractor/urplay] Support for audio-only formats by barsnick
  • [extractor/wistia] Improve extension detection by Grub4k, bashonly, pukkandan
  • [extractor/yle_areena] Support restricted videos by docbender
  • [extractor/youku] Fix extractor by KurtBestor
  • [extractor/youporn] Fix metadata by marieell
  • [extractor/redgifs] Fix bug in 8c188d5

2022.11.11

  • Merge youtube-dl: Upto commit/de39d12
  • Backport SSL configuration from Python 3.10 by coletdjnz
  • Do more processing in --flat-playlist
  • Fix --list options not implying -s in some cases by Grub4K, bashonly
  • Fix end time of clips by cruel-efficiency
  • Fix for formats=None
  • Write API params in debug head
  • [outtmpl] Ensure ASCII in json and add option for Unicode
  • [SponsorBlock] Add type field, obey --retry-sleep extractor, relax duration check for large segments
  • [SponsorBlock] Support chapter category by ajayyy, pukkandan
  • [ThumbnailsConvertor] Fix filename escaping by dirkf, pukkandan
  • [ModifyChapters] Handle the entire video being marked for removal
  • [embedthumbnail] Fix thumbnail name in mp3 by How-Bout-No
  • [downloader/fragment] HLS download can continue without first fragment
  • [cookies] Improve LenientSimpleCookie by Grub4K
  • [jsinterp] Improve separating regex
  • [extractor/common] Fix fatal=False for _search_nuxt_data
  • [extractor/common] Improve _generic_title
  • [extractor/common] Fix json_ld type checks by Grub4K
  • [extractor/generic] Separate embed extraction into own function
  • [extractor/generic:quoted-html] Add extractor by coletdjnz, pukkandan
  • [extractor/unsupported] Raise error on known DRM-only sites by coletdjnz
  • [utils] js_to_json: Improve escape handling by Grub4K
  • [utils] strftime_or_none: Workaround Python bug on Windows
  • [utils] traverse_obj: Always return list when branching, allow re.Match objects by Grub4K
  • [build, test] Harden workflows' security by sashashura
  • [build] py2exe: Migrate to freeze API by SG5, pukkandan
  • [build] Create armv7l and aarch64 releases by MrOctopus, pukkandan
  • [build] Make linux binary truly standalone using conda by mlampe
  • [build] Replace set-output with GITHUB_OUTPUT by Lesmiscore
  • [update] Use error code 100 for update errors
  • [compat] Fix shutils.move in restricted ACL mode on BSD by ClosedPort22, pukkandan
  • [docs, devscripts] Document pyinst's argument passthrough by jahway603
  • [test] Allow extract_flat in download tests by coletdjnz, pukkandan
  • [cleanup] Misc fixes and cleanup by pukkandan, Alienmaster
  • [extractor/aeon] Add extractor by DoubleCouponDay
  • [extractor/agora] Add extractors by selfisekai
  • [extractor/camsoda] Add extractor by zulaport
  • [extractor/cinetecamilano] Add extractor by timendum
  • [extractor/deuxm] Add extractors by CrankDatSouljaBoy
  • [extractor/genius] Add extractors by bashonly
  • [extractor/japandiet] Add extractors by Lesmiscore
  • [extractor/listennotes] Add extractor by lksj, pukkandan
  • [extractor/nos.nl] Add extractor by HobbyistDev
  • [extractor/oftv] Add extractors by DoubleCouponDay
  • [extractor/podbayfm] Add extractor by schnusch
  • [extractor/qingting] Add extractor by bashonly, changren-wcr
  • [extractor/screen9] Add extractor by tpikonen
  • [extractor/swearnet] Add extractor by HobbyistDev
  • [extractor/YleAreena] Add extractor by pukkandan, vitkhab
  • [extractor/zeenews] Add extractor by m4tu4g, pukkandan
  • [extractor/youtube:tab] Update tab handling for redesign by coletdjnz, pukkandan
    • Channel URLs download all uploads of the channel as multiple playlists, separated by tab
  • [extractor/youtube] Differentiate between no comments and disabled comments by coletdjnz
  • [extractor/youtube] Extract concurrent_view_count for livestreams by coletdjnz
  • [extractor/youtube] Fix duration for premieres by nosoop
  • [extractor/youtube] Fix live_status by coletdjnz, pukkandan
  • [extractor/youtube] Ignore incomplete data error for comment replies by coletdjnz
  • [extractor/youtube] Improve chapter parsing from description
  • [extractor/youtube] Mark videos as fully watched by bsun0000
  • [extractor/youtube] Update piped instances by Generator
  • [extractor/youtube] Update playlist metadata extraction for new layout by coletdjnz
  • [extractor/youtube:tab] Fix video metadata from tabs by coletdjnz
  • [extractor/youtube:tab] Let approximate_date return timestamp
  • [extractor/americastestkitchen] Fix extractor by bashonly
  • [extractor/bbc] Support onion domains by DoubleCouponDay
  • [extractor/bilibili] Add chapters and misc cleanup by lockmatrix, pukkandan
  • [extractor/bilibili] Fix BilibiliIE and Bangumi extractors by lockmatrix, pukkandan
  • [extractor/bitchute] Better error for geo-restricted videos by flashdagger
  • [extractor/bitchute] Improve BitChuteChannelIE by flashdagger, pukkandan
  • [extractor/bitchute] Simplify extractor by flashdagger, pukkandan
  • [extractor/cda] Support login through API by selfisekai
  • [extractor/crunchyroll] Beta is now the only layout by tejing1
  • [extractor/detik] Avoid unnecessary extraction
  • [extractor/doodstream] Remove extractor
  • [extractor/dplay] Add MotorTrendOnDemand extractor by bashonly
  • [extractor/epoch] Support videos without data-trailer by gibson042, pukkandan
  • [extractor/fox] Extract thumbnail by vitkhab
  • [extractor/foxnews] Add FoxNewsVideo extractor
  • [extractor/hotstar] Add season support by m4tu4g
  • [extractor/hotstar] Refactor v1 API calls
  • [extractor/iprima] Make json+ld non-fatal by bashonly
  • [extractor/iq] Increase phantomjs timeout
  • [extractor/kaltura] Support playlists by jwoglom, pukkandan
  • [extractor/lbry] Authenticate with cookies by flashdagger
  • [extractor/livestreamfails] Support posts by invertico
  • [extractor/mlb] Add MLBArticle extractor by HobbyistDev
  • [extractor/mxplayer] Improve extractor by m4tu4g
  • [extractor/niconico] Always use HTTPS for requests
  • [extractor/nzherald] Support new video embed by coletdjnz
  • [extractor/odnoklassniki] Support boosty.to embeds by Lesmiscore, megapro17, pukkandan
  • [extractor/paramountplus] Update API token by bashonly
  • [extractor/reddit] Add fallback format by bashonly
  • [extractor/redgifs] Fix extractors by bashonly, pukkandan
  • [extractor/redgifs] Refresh auth token for 401 by endotronic, pukkandan
  • [extractor/rumble] Add HLS formats and extract more metadata by flashdagger
  • [extractor/sbs] Improve _VALID_URL by bashonly
  • [extractor/skyit] Fix extractors by nixxo
  • [extractor/stripchat] Fix hostname for HLS stream by zulaport
  • [extractor/stripchat] Improve error message by freezboltz
  • [extractor/telegram] Add playlist support and more metadata by bashonly, bsun0000
  • [extractor/Tnaflix] Fix for HTTP 500 by SG5, pukkandan
  • [extractor/tubitv] Better DRM detection by bashonly
  • [extractor/tvp] Update extractors by selfisekai
  • [extractor/twitcasting] Fix data-movie-playlist extraction by Lesmiscore
  • [extractor/twitter] Add onion site to _VALID_URL by DoubleCouponDay
  • [extractor/twitter] Add Spaces extractor and GraphQL API by Grub4K, bashonly, nixxo, pukkandan
  • [extractor/twitter] Support multi-video posts by Grub4K
  • [extractor/uktvplay] Fix _VALID_URL
  • [extractor/viu] Support subtitles of on-screen text by tkgmomosheep
  • [extractor/VK] Fix playlist URLs by the-marenga
  • [extractor/vlive] Extract release_timestamp
  • [extractor/voot] Improve _VALID_URL by freezboltz
  • [extractor/wordpress:mb.miniAudioPlayer] Add embed extractor by coletdjnz
  • [extractor/YoutubeWebArchive] Improve metadata extraction by coletdjnz
  • [extractor/zee5] Improve _VALID_URL by m4tu4g
  • [extractor/zenyandex] Fix extractors by lksj, puc9, pukkandan

2022.10.04

  • Allow a set to be passed as download_archive by pukkandan, bashonly
  • Allow open ranges for time ranges by Lesmiscore
  • Allow plugin extractors to replace the built-in ones
  • Don't download entire video when no matching --download-sections
  • Fix --config-location -
  • Improve 5736d79
  • Fix for when playlists don't have webpage_url
  • Support environment variables in --ffmpeg-location
  • Workaround libc_ver not be available on Windows Store version of Python
  • [outtmpl] Curly braces to filter keys by pukkandan
  • [outtmpl] Make %s work in strfformat for all systems
  • [jsinterp] Workaround operator associativity issue
  • [cookies] Let _get_mac_keyring_password fail gracefully
  • [cookies] Parse cookies leniently by Grub4K
  • [phantomjs] Fix bug in 587021c by elyse0
  • [downloader/aria2c] Fix filename containing leading whitespace by std-move
  • [downloader/ism] Support ec-3 codec by nixxo
  • [extractor] Fix fatal=False in RetryManager
  • [extractor] Improve json-ld extraction
  • [extractor] Make _search_json able to parse lists
  • [extractor] Escape % in representation_id of m3u8
  • [extractor/generic] Pass through referer from json-ld
  • [utils] base_url: URL paths can contain & by elyse0
  • [utils] js_to_json: Improve
  • [utils] Popen.run: Fix default return in binary mode
  • [utils] traverse_obj: Rewrite, document and add tests by Grub4K
  • [devscripts] make_lazy_extractors: Fix for Docker by josanabr
  • [docs] Misc Improvements
  • [cleanup] Misc fixes and cleanup by pukkandan, gamer191
  • [extractor/24tv.ua] Add extractors by coletdjnz
  • [extractor/BerufeTV] Add extractor by Fabi019
  • [extractor/booyah] Add extractor by HobbyistDev, elyse0
  • [extractor/bundesliga] Add extractor by Fabi019
  • [extractor/GoPlay] Add extractor by CNugteren, basrieter, jeroenj
  • [extractor/iltalehti] Add extractor by tpikonen
  • [extractor/IsraelNationalNews] Add extractor by Bobscorn
  • [extractor/mediaworksnzvod] Add extractor by coletdjnz
  • [extractor/MicrosoftEmbed] Add extractor by DoubleCouponDay
  • [extractor/nbc] Add NBCStations extractor by bashonly
  • [extractor/onenewsnz] Add extractor by coletdjnz
  • [extractor/prankcast] Add extractor by HobbyistDev, columndeeply
  • [extractor/Smotrim] Add extractor by Lesmiscore, nikita-moor
  • [extractor/tencent] Add Iflix extractor by elyse0
  • [extractor/unscripted] Add extractor by HobbyistDev
  • [extractor/adobepass] Add MSO AlticeOne (Optimum TV) by CplPwnies
  • [extractor/youtube] Download post_live videos from start by Lesmiscore, pukkandan
  • [extractor/youtube] Add support for Shorts audio pivot feed by coletdjnz, pukkandan
  • [extractor/youtube] Detect lazy-load-for-videos embeds
  • [extractor/youtube] Do not warn on duplicate chapters
  • [extractor/youtube] Fix video like count extraction by coletdjnz
  • [extractor/youtube] Support changing extraction language by coletdjnz
  • [extractor/youtube:tab] Improve continuation items extraction
  • [extractor/youtube:tab] Support reporthistory page
  • [extractor/amazonstore] Fix JSON extraction by coletdjnz, pukkandan
  • [extractor/amazonstore] Retry to avoid captcha page by Lesmiscore
  • [extractor/animeondemand] Remove extractor by TokyoBlackHole
  • [extractor/anvato] Fix extractor and refactor by bashonly
  • [extractor/artetv] Remove duplicate stream urls by Grub4K
  • [extractor/audioboom] Support direct URLs and refactor by pukkandan, tpikonen
  • [extractor/bandcamp] Extract uploader_url
  • [extractor/bilibili] Add space.bilibili extractors by lockmatrix
  • [extractor/BilibiliSpace] Fix extractor and better error message by lockmatrix
  • [extractor/BiliIntl] Support uppercase lang in _VALID_URL by coletdjnz
  • [extractor/BiliIntlSeries] Fix _VALID_URL
  • [extractor/bongacams] Update _VALID_URL by 0xGodspeed
  • [extractor/crunchyroll:beta] Improve handling of hardsubs by Grub4K
  • [extractor/detik] Generalize extractors by HobbyistDev, coletdjnz
  • [extractor/dplay:italy] Add default authentication by Timendum
  • [extractor/heise] Fix extractor by coletdjnz
  • [extractor/holodex] Fix _VALID_URL by LiviaMedeiros
  • [extractor/hrfensehen] Fix extractor by snapdgn
  • [extractor/hungama] Add subtitle by GautamMKGarg, pukkandan
  • [extractor/instagram] Extract more metadata by pritam20ps05
  • [extractor/JWPlatform] Fix extractor by coletdjnz
  • [extractor/malltv] Fix video_id extraction by HobbyistDev
  • [extractor/MLBTV] Detect live streams
  • [extractor/motorsport] Support native embeds
  • [extractor/Mxplayer] Fix extractor by itachi-19
  • [extractor/nebula] Add nebula.tv by tannertechnology
  • [extractor/nfl] Fix extractor by bashonly
  • [extractor/ondemandkorea] Update jw_config regex by julien-hadleyjack
  • [extractor/paramountplus] Better DRM detection by bashonly
  • [extractor/patreon] Sort formats
  • [extractor/rcs] Fix embed extraction by coletdjnz
  • [extractor/redgifs] Fix extractor by jhwgh1968
  • [extractor/rutube] Fix _EMBED_REGEX by coletdjnz
  • [extractor/RUTV] Fix warnings for livestreams by Lesmiscore
  • [extractor/soundcloud:search] More metadata in --flat-playlist by SuperSonicHub1
  • [extractor/telegraaf] Use mobile GraphQL API endpoint by coletdjnz
  • [extractor/tennistv] Fix timestamp by zenerdi0de
  • [extractor/tiktok] Fix TikTokIE by bashonly
  • [extractor/triller] Fix auth token by bashonly
  • [extractor/trovo] Fix extractors by Mehavoid
  • [extractor/tv2] Support new url format by tobi1805
  • [extractor/web.archive:youtube] Fix _YT_INITIAL_PLAYER_RESPONSE_RE
  • [extractor/wistia] Add support for channels by coletdjnz
  • [extractor/wistia] Match IDs in embed URLs by bashonly
  • [extractor/wordpress:playlist] Add generic embed extractor by coletdjnz
  • [extractor/yandexvideopreview] Update _VALID_URL by Grub4K
  • [extractor/zee5] Fix _VALID_URL by m4tu4g
  • [extractor/zee5] Generate device ids by freezboltz

2022.09.01

  • Add option --use-extractors
  • Merge youtube-dl: Upto commit/ed5c44e
  • Add yt-dlp version to infojson
  • Fix --break-per-url --max-downloads
  • Fix bug in --alias
  • [cookies] Support firefox container in --cookies-from-browser by bashonly, coletdjnz, pukkandan
  • [downloader/external] Smarter detection of executable
  • [extractor/generic] Don't return JW player without formats
  • [FormatSort] Fix aext for --prefer-free-formats
  • [jsinterp] Various improvements by pukkandan, dirkf, elyse0
  • [cache] Mechanism to invalidate old cache
  • [utils] Add deprecation_warning
  • [utils] Add orderedSet_from_options
  • [utils] Popen: Restore LD_LIBRARY_PATH when using PyInstaller by Lesmiscore
  • [build] make tar should not follow DESTDIR by satan1st
  • [build] Update pyinstaller by shirt-dev
  • [test] Fix test_youtube_signature
  • [cleanup] Misc fixes and cleanup by DavidH-2022, MrRawes, pukkandan
  • [extractor/epoch] Add extractor by tejasa97
  • [extractor/eurosport] Add extractor by HobbyistDev
  • [extractor/IslamChannel] Add extractors by Lesmiscore
  • [extractor/newspicks] Add extractor by Lesmiscore
  • [extractor/triller] Add extractor by bashonly
  • [extractor/VQQ] Add extractors by elyse0
  • [extractor/youtube] Improvements to nsig extraction
  • [extractor/youtube] Fix bug in format sorting
  • [extractor/youtube] Update iOS Innertube clients by SamantazFox
  • [extractor/youtube] Use device-specific user agent by coletdjnz
  • [extractor/youtube] Add --compat-option no-youtube-prefer-utc-upload-date by coletdjnz
  • [extractor/arte] Bug fix by cgrigis
  • [extractor/bilibili] Extract flac with premium account by jackyyf
  • [extractor/BiliBiliSearch] Don't sort by date
  • [extractor/BiliBiliSearch] Fix infinite loop
  • [extractor/bitchute] Mark errors as expected
  • [extractor/crunchyroll:beta] Use anonymous access by tejing1
  • [extractor/huya] Fix stream extraction by ohaiibuzzle
  • [extractor/medaltv] Fix extraction by xenova
  • [extractor/mediaset] Fix embed extraction
  • [extractor/mixcloud] All formats are audio-only
  • [extractor/rtbf] Fix jwt extraction by elyse0
  • [extractor/screencastomatic] Support --video-password by shreyasminocha
  • [extractor/stripchat] Don't modify input URL by dfaker
  • [extractor/uktv] Improve _VALID_URL by dirkf
  • [extractor/vimeo:user] Fix _VALID_URL

2022.08.19

  • Fix bug in --download-archive
  • [jsinterp] Fix for new youtube players and related improvements by dirkf, pukkandan
  • [phantomjs] Add function to execute JS without a DOM by MinePlayersPE, pukkandan
  • [build] Exclude devscripts from installs by Lesmiscore
  • [cleanup] Misc fixes and cleanup
  • [extractor/youtube] Add fallback to phantomjs for nsig
  • [extractor/youtube] Fix error reporting of "Incomplete data"
  • [extractor/youtube] Improve format sorting for IOS formats
  • [extractor/youtube] Improve signature caching
  • [extractor/instagram] Fix extraction by bashonly, pritam20ps05
  • [extractor/rai] Minor fix by nixxo
  • [extractor/rtbf] Fix stream extractor by elyse0
  • [extractor/SovietsCloset] Fix extractor by ChillingPepper
  • [extractor/zattoo] Fix Zattoo resellers by goggle

2022.08.14

  • Merge youtube-dl: Upto commit/d231b56
  • [jsinterp] Handle new youtube signature functions
  • [jsinterp] Truncate error messages
  • [extractor] Fix format sorting of channels
  • [ffmpeg] Disable avconv unless --prefer-avconv
  • [ffmpeg] Smarter detection of ffprobe filename
  • [embedthumbnail] Detect libatomicparsley.so
  • [ThumbnailsConvertor] Fix conversion after fixup_webp
  • [utils] Fix get_compatible_ext
  • [build] Fix changelog
  • [update] Set executable bit-mask by pukkandan, Lesmiscore
  • [devscripts] Fix import
  • [docs] Consistent use of e.g. by Lesmiscore
  • [cleanup] Misc fixes and cleanup
  • [extractor/moview] Add extractor by HobbyistDev
  • [extractor/parler] Add extractor by palewire
  • [extractor/patreon] Ignore erroneous media attachments by coletdjnz
  • [extractor/truth] Add extractor by palewire
  • [extractor/aenetworks] Add formats parameter by jacobtruman
  • [extractor/crunchyroll] Improve _VALID_URLs
  • [extractor/doodstream] Add wf domain by aldoridhoni
  • [extractor/facebook] Add reel support by bashonly
  • [extractor/MLB] New extractor by ischmidt20
  • [extractor/rai] Misc fixes by nixxo
  • [extractor/toggo] Improve _VALID_URL by masta79
  • [extractor/tubitv] Extract additional formats by shirt-dev
  • [extractor/zattoo] Potential fix for resellers

2022.08.08

  • Remove Python 3.6 support
  • Determine merge container better by pukkandan, selfisekai
  • Framework for embed detection by coletdjnz, pukkandan
  • Merge youtube-dl: Upto commit/adb5294
  • --compat-option no-live-chat should disable danmaku
  • Fix misleading DRM message
  • Import ctypes only when necessary
  • Minor bugfixes
  • Reject entire playlists faster with --match-filter
  • Remove filtered entries from -J
  • Standardize retry mechanism
  • Validate --merge-output-format
  • [downloader] Add average speed to final progress line
  • [extractor] Add field audio_channels
  • [extractor] Support multiple archive ids for one video
  • [ffmpeg] Set ffmpeg_location in a contextvar
  • [FFmpegThumbnailsConvertor] Fix conversion from GIF
  • [MetadataParser] Don't set None when the field didn't match
  • [outtmpl] Smarter replacing of unsupported characters
  • [outtmpl] Treat empty values as None in filenames
  • [utils] sanitize_open: Allow any IO stream as stdout
  • [build, devscripts] Add devscript to set a build variant
  • [build] Improve build process by shirt-dev
  • [build] Update pyinstaller
  • [devscripts] Create utils and refactor
  • [docs] Clarify best*
  • [docs] Fix bug report issue template
  • [docs] Fix capitalization in references by christoph-heinrich
  • [cleanup, mhtml] Use imghdr
  • [cleanup, utils] Consolidate known media extensions
  • [cleanup] Misc fixes and cleanup
  • [extractor/angel] Add extractor by AxiosDeminence
  • [extractor/dplay] Add MotorTrend extractor by Sipherdrakon
  • [extractor/harpodeon] Add extractor by eren-kemer
  • [extractor/holodex] Add extractor by pukkandan, sqrtNOT
  • [extractor/kompas] Add extractor by HobbyistDev
  • [extractor/rai] Add raisudtirol extractor by nixxo
  • [extractor/tempo] Add extractor by HobbyistDev
  • [extractor/youtube] Fixes for third party client detection by coletdjnz
  • [extractor/youtube] Add live_status=post_live by lazypete365
  • [extractor/youtube] Extract more format info
  • [extractor/youtube] Parse translated subtitles only when requested
  • [extractor/youtube, extractor/twitch] Allow waiting for channels to become live
  • [extractor/youtube, webvtt] Extract auto-subs from livestream VODs by fstirlitz, pukkandan
  • [extractor/AbemaTVTitle] Implement paging by Lesmiscore
  • [extractor/archiveorg] Improve handling of formats by coletdjnz, pukkandan
  • [extractor/arte] Fix title extraction
  • [extractor/arte] Move to v2 API by fstirlitz, pukkandan
  • [extractor/bbc] Fix news articles by ajj8
  • [extractor/camtasia] Separate into own extractor by coletdjnz
  • [extractor/cloudflarestream] Fix video_id padding by haobinliang
  • [extractor/crunchyroll] Fix conversion of thumbnail from GIF
  • [extractor/crunchyroll] Handle missing metadata correctly by Burve, pukkandan
  • [extractor/crunchyroll:beta] Extract timestamp and fix tests by tejing1
  • [extractor/crunchyroll:beta] Use streams API by tejing1
  • [extractor/doodstream] Support more domains by Galiley
  • [extractor/ESPN] Extract duration by ischmidt20
  • [extractor/FIFA] Change API endpoint by Bricio, yashkc2025
  • [extractor/globo:article] Remove false positives by Bricio
  • [extractor/Go] Extract timestamp by ischmidt20
  • [extractor/hidive] Fix cookie login when netrc is also given by winterbird-code
  • [extractor/html5] Separate into own extractor by coletdjnz, pukkandan
  • [extractor/ina] Improve extractor by elyse0
  • [extractor/NaverNow] Change endpoint by ping
  • [extractor/ninegag] Extract uploader by DjesonPV
  • [extractor/NovaPlay] Fix extractor by Bojidarist
  • [extractor/orf:radio] Rewrite extractors
  • [extractor/patreon] Fix and improve extractors by coletdjnz, pukkandan
  • [extractor/rai] Fix RaiNews extraction by nixxo
  • [extractor/redbee] Unify and update extractors by elyse0
  • [extractor/stripchat] Fix _VALID_URL by freezboltz
  • [extractor/tubi] Exclude playlists from playlist entries by sqrtNOT
  • [extractor/tviplayer] Improve _VALID_URL by HobbyistDev
  • [extractor/twitch] Extract chapters for single chapter VODs by mpeter50
  • [extractor/vgtv] Support tv.vg.no by sqrtNOT
  • [extractor/vidio] Support embed link by HobbyistDev
  • [extractor/vk] Fix extractor by Mehavoid
  • [extractor/WASDTV:record] Fix _VALID_URL
  • [extractor/xfileshare] Add Referer by Galiley
  • [extractor/YahooJapanNews] Fix extractor by Lesmiscore
  • [extractor/yandexmusic] Extract higher quality format
  • [extractor/zee5] Update Device ID by m4tu4g

2022.07.18

  • Allow users to specify encoding in each config files by Lesmiscore
  • Discard infodict from memory if no longer needed
  • Do not allow extractors to return None
  • Do not load system certificates when certifi is used
  • Fix rounding of integers in format table
  • Improve chapter sanitization
  • Skip some fixup if remux/recode is needed by Lesmiscore
  • Support --no-progress for --wait-for-video
  • Fix bug in 612f2be
  • [outtmpl] Add alternate form h for HTML escaping
  • [aes] Add multiple padding modes in CBC by elyse0
  • [extractor/common] Passthrough errnote=False to parsers
  • [extractor/generic] Remove HEAD request
  • [http] Ensure the file handle is always closed
  • [ModifyChapters] Modify duration in infodict
  • [options] Fix aliases to --config-location
  • [utils] Fix get_domain
  • [build] Consistent order for lazy extractors by lamby
  • [build] Fix architecture suffix of executables by odo2063
  • [build] Improve setup.py
  • [update] Do not check _update_spec when up to date
  • [update] Prepare to remove Python 3.6 support
  • [compat] Let PyInstaller detect _legacy module
  • [devscripts/update-formulae] Do not change dependency section
  • [test] Split download tests so they can be more easily run in CI
  • [docs] Improve docstring of download_ranges by FirefoxMetzger
  • [docs] Improve issue templates
  • [build] Fix bug in 6d916fe
  • [cleanup, utils] Refactor parse_codecs
  • [cleanup] Misc fixes and cleanup
  • [extractor/acfun] Add extractors by lockmatrix
  • [extractor/Audiodraft] Add extractors by Ashish0804, fstirlitz
  • [extractor/cellebrite] Add extractor by HobbyistDev
  • [extractor/detik] Add extractor by HobbyistDev
  • [extractor/hytale] Add extractor by llamasblade, pukkandan
  • [extractor/liputan6] Add extractor by HobbyistDev
  • [extractor/mocha] Add extractor by HobbyistDev
  • [extractor/rtl.lu] Add extractor by HobbyistDev
  • [extractor/rtvsl] Add extractor by iw0nderhow, pukkandan
  • [extractor/StarTrek] Add extractor by scy
  • [extractor/syvdk] Add extractor by misaelaguayo
  • [extractor/theholetv] Add extractor by dosy4ev
  • [extractor/TubeTuGraz] Add extractor by Ferdi265, pukkandan
  • [extractor/tviplayer] Add extractor by HobbyistDev
  • [extractor/wetv] Add extractors by elyse0
  • [extractor/wikimedia] Add extractor by EhtishamSabir, pukkandan
  • [extractor/youtube] Fix duration check for post-live manifestless mode
  • [extractor/youtube] More metadata for storyboards by ftk
  • [extractor/bigo] Fix extractor by Lesmiscore
  • [extractor/BiliIntl] Fix subtitle extraction by MinePlayersPE
  • [extractor/crunchyroll] Improve _VALID_URL
  • [extractor/fifa] Fix extractor by ischmidt20
  • [extractor/instagram] Fix post/story extractors by pritam20ps05, pukkandan
  • [extractor/iq] Set language correctly for Korean subtitles
  • [extractor/MangoTV] Fix subtitle languages
  • [extractor/Netverse] Improve playlist extractor by HobbyistDev
  • [extractor/philharmoniedeparis] Fix extractor by sqrtNOT
  • [extractor/Trovo] Fix extractor by u-spec-png
  • [extractor/twitch] Support storyboards for VODs by ftk
  • [extractor/WatchESPN] Improve _VALID_URL by IONECarter, dirkf
  • [extractor/WSJArticle] Fix video id extraction by sqrtNOT
  • [extractor/Ximalaya] Fix extractors by lockmatrix
  • [cleanup, extractor/youtube] Fix tests by sheerluck

2022.06.29

  • Fix --downloader native
  • Fix section_end of clips
  • Fix playlist error handling
  • Sanitize chapters
  • [extractor] Fix _create_request when headers is None
  • [extractor] Fix empty BaseURL in MPD
  • [ffmpeg] Write full output to debug on error
  • [hls] Warn user when trying to download live HLS
  • [options] Fix parse_known_args for --
  • [utils] Fix inconsistent default handling between HTTP and HTTPS requests by coletdjnz
  • [build] Draft release until complete
  • [build] Fix release tag commit
  • [build] Standalone x64 builds for MacOS 10.9 by StefanLobbenmeier
  • [update] Ability to set a maximum version for specific variants
  • [compat] Fix compat.WINDOWS_VT_MODE
  • [compat] Remove deprecated functions from core code
  • [compat] Remove more functions
  • [cleanup, extractor] Reduce direct use of _downloader
  • [cleanup] Consistent style for file heads
  • [cleanup] Fix some typos by crazymoose77756
  • [cleanup] Misc fixes and cleanup
  • [extractor/Scrolller] Add extractor by LunarFang416
  • [extractor/ViMP] Add playlist extractor by FestplattenSchnitzel
  • [extractor/fuyin] Add extractor by HobbyistDev
  • [extractor/livestreamfails] Add extractor by nomevi
  • [extractor/premiershiprugby] Add extractor by HobbyistDev
  • [extractor/steam] Add broadcast extractor by HobbyistDev
  • [extractor/youtube] Mark videos as fully watched by Brett824
  • [extractor/CWTV] Extract thumbnail by ischmidt20
  • [extractor/ViMP] Add thumbnail and support more sites by FestplattenSchnitzel
  • [extractor/dropout] Support cookies and login only as needed by pingiun, pukkandan
  • [extractor/ertflix] Improve _VALID_URL
  • [extractor/lbry] Use HEAD request for redirect URL by flashdagger
  • [extractor/mediaset] Improve _VALID_URL
  • [extractor/npr] Implement e50c350 differently
  • [extractor/tennistv] Rewrite extractor by pukkandan, zenerdi0de

2022.06.22.1

  • [build] Fix updating homebrew formula

2022.06.22

  • Deprecate support for Python 3.6
  • Add option --download-sections to download video partially
    • Chapter regex and time ranges are accepted, e.g. --download-sections *1:10-2:20
  • Add option --alias
  • Add option --lazy-playlist to process entries as they are received
  • Add option --retry-sleep
  • Add slicing notation to --playlist-items
    • Adds support for negative indices and step
    • Add -I as alias for --playlist-index
    • Makes --playlist-start, --playlist-end, --playlist-reverse, --no-playlist-reverse redundant
  • --config-location - to provide options interactively
  • [build] Add Linux standalone builds
  • [update] Self-restart after update
  • Merge youtube-dl: Upto commit/8a158a9
  • Add --no-update
  • Allow extractors to specify section_start/end for clips
  • Do not print progress to stderr with -q
  • Ensure pre-processor errors do not block video download
  • Fix --simulate --max-downloads
  • Improve error handling of bad config files
  • Return an error code if update fails
  • Fix bug in 3a408f9
  • [ExtractAudio] Allow conditional conversion
  • [ModifyChapters] Fix repeated removal of small segments
  • [ThumbnailsConvertor] Allow conditional conversion
  • [cookies] Detect profiles for cygwin/BSD by moench-tegeder
  • [dash] Show fragment count with --live-from-start by flashdagger
  • [extractor] Add _search_json by coletdjnz, pukkandan
  • [extractor] Add default parameter to _search_json by coletdjnz, pukkandan
  • [extractor] Add dev option --load-pages
  • [extractor] Handle json_ld with multiple @types
  • [extractor] Import _ALL_CLASSES lazily
  • [extractor] Recognize src attribute from HTML5 media elements by Lesmiscore
  • [extractor/generic] Revert e6ae51c123
  • [f4m] Bugfix
  • [ffmpeg] Check version lazily
  • [jsinterp] Some optimizations and refactoring by dirkf, pukkandan
  • [utils] Improve performance using functools.cache
  • [utils] Send HTTP/1.1 ALPN extension by coletdjnz
  • [utils] ExtractorError: Fix exc_info
  • [utils] ISO3166Utils: Add EU and AP
  • [utils] Popen: Refactor to use contextmanager
  • [utils] locked_file: Fix for PyPy on Windows
  • [update] Expose more functionality to API
  • [update] Use .git folder to distinguish source/unknown
  • [compat] Add functools.cached_property
  • [test] Fix FakeYDL signatures by coletdjnz
  • [docs] Improvements
  • [cleanup, ExtractAudio] Refactor
  • [cleanup, downloader] Refactor report_progress
  • [cleanup, extractor] Refactor _download_... methods
  • [cleanup, extractor] Rename extractors.py to _extractors.py
  • [cleanup, utils] Don't use kwargs for format_field
  • [cleanup, build] Refactor
  • [cleanup, docs] Re-indent "Usage and Options" section
  • [cleanup] Deprecate YoutubeDL.parse_outtmpl
  • [cleanup] Misc fixes and cleanup by Lesmiscore, MrRawes, christoph-heinrich, flashdagger, gamer191, kwconder, pukkandan
  • [extractor/DailyWire] Add extractors by HobbyistDev, pukkandan
  • [extractor/fourzerostudio] Add extractors by Lesmiscore
  • [extractor/GoogleDrive] Add folder extractor by evansp, pukkandan
  • [extractor/MirrorCoUK] Add extractor by LunarFang416, pukkandan
  • [extractor/atscaleconfevent] Add extractor by Ashish0804
  • [extractor/freetv] Add extractor by elyse0
  • [extractor/ixigua] Add Extractor by HobbyistDev
  • [extractor/kicker.de] Add extractor by HobbyistDev
  • [extractor/netverse] Add extractors by HobbyistDev, pukkandan
  • [extractor/playsuisse] Add extractor by pukkandan, sbor23
  • [extractor/substack] Add extractor by elyse0
  • [extractor/youtube] Support downloading clips
  • [extractor/youtube] Add innertube_host and innertube_key extractor args by coletdjnz
  • [extractor/youtube] Add warning for PostLiveDvr
  • [extractor/youtube] Bring back _extract_chapters_from_description
  • [extractor/youtube] Extract comment_count from webpage
  • [extractor/youtube] Fix :ytnotifications extractor by coletdjnz
  • [extractor/youtube] Fix initial player response extraction by coletdjnz, pukkandan
  • [extractor/youtube] Fix live chat for videos with content warning by coletdjnz
  • [extractor/youtube] Make signature extraction non-fatal
  • [extractor/youtube:tab] Detect videoRenderer in _post_thread_continuation_entries
  • [extractor/BiliIntl] Fix metadata extraction
  • [extractor/BiliIntl] Fix subtitle extraction by HobbyistDev
  • [extractor/FranceCulture] Fix extractor by aurelg, pukkandan
  • [extractor/PokemonSoundLibrary] Remove extractor by Lesmiscore
  • [extractor/StreamCZ] Fix extractor by adamanldo, dirkf
  • [extractor/WatchESPN] Support free videos and BAM_DTC by ischmidt20
  • [extractor/animelab] Remove extractor by gamer191
  • [extractor/bloomberg] Change playback endpoint by m4tu4g
  • [extractor/ccc] Extract view_count by vkorablin
  • [extractor/crunchyroll:beta] Fix extractor after API change by Burve, tejing1
  • [extractor/curiositystream] Get auth_token from cookie by mnn
  • [extractor/digitalconcerthall] Fix extractor by ZhymabekRoman
  • [extractor/dropbox] Extract the correct mountComponent
  • [extractor/dropout] Login is not mandatory
  • [extractor/duboku] Fix for hostname change by mozbugbox
  • [extractor/espn] Add WatchESPN extractor by ischmidt20, pukkandan
  • [extractor/expressen] Fix extractor by aejdl
  • [extractor/foxnews] Update embed extraction by elyse0
  • [extractor/ina] Fix extractor by elyse0
  • [extractor/iwara:user] Make paging better by Lesmiscore
  • [extractor/jwplatform] Look for data-video-jw-id
  • [extractor/lbry] Update livestream API by flashdagger
  • [extractor/mediaset] Improve _VALID_URL
  • [extractor/naver] Add navernow extractor by ping
  • [extractor/niconico:series] Fix extractor by sqrtNOT
  • [extractor/npr] Use stream url from json-ld by r5d
  • [extractor/pornhub] Extract uploader_id field by Lesmiscore
  • [extractor/radiofrance] Add more radios by bubbleguuum
  • [extractor/rumble] Detect JS embed
  • [extractor/rumble] Extract subtitles by fstirlitz
  • [extractor/southpark] Add southpark.lat extractor by darkxex
  • [extractor/spotify:show] Fix extractor
  • [extractor/tiktok] Detect embeds
  • [extractor/tiktok] Extract SIGI_STATE by dirkf, pukkandan, sulyi
  • [extractor/tver] Fix extractor by Lesmiscore
  • [extractor/vevo] Fix extractor by Lesmiscore
  • [extractor/yahoo:gyao] Fix extractor
  • [extractor/zattoo] Fix live streams by miseran
  • [extractor/zdf] Improve format sorting by elyse0

2022.05.18

  • Add support for SSL client certificate authentication by coletdjnz, dirkf
    • Adds --client-certificate, --client-certificate-key, --client-certificate-password
  • Add --match-filter - to interactively ask for each video
  • --max-downloads should obey --break-per-input
  • Allow use of weaker ciphers with --legacy-server-connect
  • Don't imply -s for later stages of -O
  • Fix --date today
  • Fix --skip-unavailable-fragments
  • Fix color in -q -F
  • Fix redirect HTTP method handling by coletdjnz
  • Improve --clean-infojson
  • Remove warning for videos with an empty title
  • Run FFmpegFixupM3u8PP for live-streams if needed
  • Show name of downloader in verbose log
  • [cookies] Allow cookiefile to be a text stream
  • [cookies] Report progress when importing cookies
  • [downloader/ffmpeg] Specify headers for each URL by elyse0
  • [fragment] Do not change chunk-size when --test
  • [fragment] Make single thread download work for --live-from-start by Lesmiscore
  • [hls] Fix byte_range for EXT-X-MAP fragment by fstirlitz
  • [http] Fix retrying on read timeout by coletdjnz
  • [ffmpeg] Fix features detection
  • [EmbedSubtitle] Enable for more video extensions
  • [EmbedThumbnail] Disable thumbnail conversion for mkv by evansp
  • [EmbedThumbnail] Do not obey -k
  • [EmbedThumbnail] Do not remove id3v1 tags
  • [FFmpegMetadata] Remove \0 from metadata
  • [FFmpegMetadata] Remove filename from attached info-json
  • [FixupM3u8] Obey --hls-prefer-mpegts
  • [Sponsorblock] Don't crash when duration is unknown
  • [XAttrMetadata] Refactor and document dependencies
  • [extractor] Document netrc machines
  • [extractor] Update manifest_urls after redirect by elyse0
  • [extractor] Update dash manifest_url after redirects by elyse0
  • [extractor] Use classmethod/property where possible
  • [generic] Refactor _extract_rss
  • [utils] is_html: Handle double BOM
  • [utils] locked_file: Ignore illegal seek on truncate by jakeogh
  • [utils] sanitize_path: Fix when path is empty string
  • [utils] write_string: Workaround newline issue in conhost
  • [utils] certifi: Make sure the pem file exists
  • [utils] Fix WebSocketsWrapper
  • [utils] locked_file: Do not give executable bits for newly created files by Lesmiscore
  • [utils] YoutubeDLCookieJar: Detect and reject JSON file by Lesmiscore
  • [test] Convert warnings into errors and fix some existing warnings by fstirlitz
  • [dependencies] Create module with all dependency imports
  • [compat] Split into sub-modules by fstirlitz, pukkandan
  • [compat] Implement compat.imghdr
  • [build] Add make uninstall by MrRawes
  • [build] Avoid use of install -D
  • [build] Fix Makefile by putnam
  • [build] Fix --onedir on macOS
  • [build] Add more test-runners
  • [cleanup] Deprecate some compat vars by fstirlitz, pukkandan
  • [cleanup] Remove unused code paths, extractors, scripts and tests by fstirlitz
  • [cleanup] Upgrade syntax (pyupgrade) and sort imports (isort)
  • [cleanup, docs, build] Misc fixes
  • [BilibiliLive] Add extractor by HE7086, pukkandan
  • [Fifa] Add Extractor by Bricio
  • [goodgame] Add extractor by nevack
  • [gronkh] Add playlist extractors by hatienl0i261299
  • [icareus] Add extractor by tpikonen, pukkandan
  • [iwara] Add playlist extractors by i6t
  • [Likee] Add extractor by hatienl0i261299
  • [masters] Add extractor by m4tu4g
  • [nebula] Add support for subscriptions by hheimbuerger
  • [Podchaser] Add extractors by connercsbn
  • [rokfin:search] Add extractor by P-reducible, pukkandan
  • [youtube] Add :ytnotifications extractor by krichbanana
  • [youtube] Add YoutubeStoriesIE (ytstories:<channel UCID>) by coletdjnz
  • [ZingMp3] Add chart and user extractors by hatienl0i261299
  • [adn] Update AES key by elyse0
  • [adobepass] Allow cookies for authenticating MSO
  • [bandcamp] Exclude merch links by Yipten
  • [chingari] Fix archiving and tests
  • [DRTV] Improve _VALID_URL by vertan
  • [facebook] Improve thumbnail extraction by Wikidepia
  • [fc2] Stop heatbeating once FFmpeg finishes by Lesmiscore
  • [Gofile] Fix extraction and support password-protected links by mehq
  • [hotstar, cleanup] Refactor extractors
  • [InfoQ] Don't fail on missing audio format by evansp
  • [Jamendo] Extract more metadata by evansp
  • [kaltura] Update API calls by flashdagger
  • [KhanAcademy] Fix extractor by rand-net
  • [LCI] Fix extractor by MarwenDallel
  • [lrt] Support livestreams by GiedriusS
  • [niconico] Set expected_protocol to a public field
  • [Niconico] Support 2FA by ekangmonyet
  • [Olympics] Fix format extension
  • [openrec:movie] Enable fallback for /movie/ URLs
  • [PearVideo] Add fallback for formats by hatienl0i261299
  • [radiko] Fix extractor by Lesmiscore
  • [rai] Add release_year
  • [reddit] Prevent infinite loop
  • [rokfin] Implement login by P-reducible, pukkandan
  • [ruutu] Support hs.fi embeds by tpikonen, pukkandan
  • [spotify] Detect iframe embeds by fstirlitz
  • [telegram] Fix metadata extraction
  • [tmz, cleanup] Update tests by diegorodriguezv
  • [toggo] Fix _VALID_URL by ca-za
  • [trovo] Update to new API by nyuszika7h
  • [TVer] Improve extraction by Lesmiscore
  • [twitcasting] Pass headers for each formats by Lesmiscore
  • [VideocampusSachsen] Improve extractor by FestplattenSchnitzel
  • [vimeo] Fix extractors
  • [wat] Fix extraction of multi-language videos and subtitles by elyse0
  • [wistia] Fix _VALID_URL by dirkf
  • [youtube, cleanup] Minor refactoring by coletdjnz, pukkandan
  • [youtube] Added piped instance urls by JordanWeatherby
  • [youtube] Deprioritize auto-generated thumbnails
  • [youtube] Deprioritize format 22 (often damaged)
  • [youtube] Fix episode metadata extraction
  • [zee5] Fix extractor by Ashish0804
  • [zingmp3, cleanup] Refactor extractors

2022.04.08

  • Use certificates from certifi if installed by coletdjnz
  • Treat multiple --match-filters as OR
  • File locking improvements:
    • Do not lock downloading file on Windows
    • Do not prevent download if locking is unsupported
    • Do not truncate files before locking by jakeogh, pukkandan
    • Fix non-blocking non-exclusive lock
  • De-prioritize automatic-subtitles when no --sub-lang is given
  • Exit after --dump-user-agent
  • Fallback to video-only format when selecting by extension
  • Fix --abort-on-error for subtitles
  • Fix --no-overwrite for playlist infojson
  • Fix --print with --ignore-no-formats when url is None by flashdagger
  • Fix --sleep-interval
  • Fix --throttled-rate
  • Fix autonumber
  • Fix case of http_headers
  • Fix filepath sanitization in --print-to-file
  • Handle float in --wait-for-video
  • Ignore mhtml formats from -f mergeall
  • Ignore format-specific fields in initial pass of --match-filter
  • Protect stdout from unexpected progress and console-title
  • Remove Accept-Encoding header from std_headers by coletdjnz
  • Remove incorrect warning for --dateafter
  • Show warning when all media formats have DRM
  • [downloader] Fix invocation of HttpieFD
  • [http] Fix #3215
  • [http] Reject broken range before request by Lesmiscore, Jules-A, pukkandan
  • [fragment] Read downloaded fragments only when needed by Lesmiscore
  • [http] Retry on more errors by coletdjnz
  • [mhtml] Fix fragments with absolute urls by coletdjnz
  • [extractor] Add _perform_login function
  • [extractor] Allow control characters inside json
  • [extractor] Support merging subtitles with data by coletdjnz
  • [generic] Extract subtitles from video.js by Lesmiscore
  • [ffmpeg] Cache version data
  • [FFmpegConcat] Ensure final directory exists
  • [FfmpegMetadata] Write id3v1 tags
  • [FFmpegVideoConvertor] Add more formats to --remux-video
  • [FFmpegVideoConvertor] Ensure all streams are copied
  • [MetadataParser] Validate outtmpl early
  • [outtmpl] Fix replacement/default when used with alternate
  • [outtmpl] Limit changes during sanitization
  • [phantomjs] Fix bug
  • [test] Add test_locked_file
  • [utils] format_decimal_suffix: Fix for very large numbers by s0u1h
  • [utils] traverse_obj: Allow filtering by value
  • [utils] Add filter_dict, get_first, try_call
  • [utils] ExtractorError: Fix for older python versions
  • [utils] WebSocketsWrapper: Allow omitting __enter__ invocation by Lesmiscore
  • [docs] Add an .editorconfig file by fstirlitz
  • [docs] Clarify the exact BSD license of dependencies by MrRawes
  • [docs] Minor improvements by pukkandan, cffswb, danielyli
  • [docs] Remove readthedocs
  • [build] Add requirements.txt to pip distributions
  • [cleanup, postprocessor] Create _download_json
  • [cleanup, vimeo] Fix tests
  • [cleanup] Misc fixes and minor cleanup
  • [cleanup] Use _html_extract_title
  • [AfreecaTV] Add AfreecaTVUserIE by hatienl0i261299
  • [arte] Add format_note to m3u8 formats
  • [azmedien] Add TVO Online to supported hosts by 1-Byte
  • [BanBye] Add extractor by mehq
  • [bilibili] Fix extraction of title with quotes by dzek69
  • [Craftsy] Add extractor by Bricio
  • [Cybrary] Add extractor by aaearon
  • [Huya] Add extractor by hatienl0i261299
  • [ITProTV] Add extractor by aaearon
  • [Jable] Add extractors by mehq
  • [LastFM] Add extractors by mehq
  • [Moviepilot] Add extractor by panatexxa
  • [panopto] Add extractors by coletdjnz, kmark
  • [PokemonSoundLibrary] Add extractor by Lesmiscore
  • [WasdTV] Add extractor by un-def, hatienl0i261299
  • [adobepass] Fix Suddenlink MSO by CplPwnies
  • [afreecatv] Match new vod url by wlritchi
  • [AZMedien] Support tv.telezueri.ch by goggle
  • [BiliIntl] Support user-generated videos by wlritchi
  • [BRMediathek] Fix VALID_URL
  • [crunchyroll:playlist] Implement beta API by tejing1
  • [crunchyroll] Fix inheritance
  • [daftsex] Fix extractor by Soebb
  • [dailymotion] Support geo.dailymotion.com by hatienl0i261299
  • [ellentube] Extract subtitles from manifest
  • [elonet] Rewrite extractor by Fam0r, pukkandan
  • [fptplay] Fix metadata extraction by hatienl0i261299
  • [FranceCulture] Support playlists by bohwaz
  • [go, viu] Extract subtitles from the m3u8 manifest by fstirlitz
  • [Imdb] Improve extractor by hatienl0i261299
  • [MangoTV] Improve extractor by hatienl0i261299
  • [Nebula] Fix bug in 52efa4b312
  • [niconico] Fix extraction of thumbnails and uploader (#3266)
  • [niconico] Rewrite NiconicoIE by Lesmiscore
  • [nitter] Minor fixes and update instance list by foghawk
  • [NRK] Extract timestamp by hatienl0i261299
  • [openrec] Download archived livestreams by Lesmiscore
  • [openrec] Refactor extractors by Lesmiscore
  • [panopto] Improve subtitle extraction and support slides by coletdjnz
  • [ParamountPlus, CBS] Change VALID_URL by Sipherdrakon
  • [ParamountPlusSeries] Support multiple pages by dodrian
  • [Piapro] Extract description with break lines by Lesmiscore
  • [rai] Fix extraction of http formas by nixxo
  • [rumble] unescape title
  • [RUTV] Fix format sorting by Lesmiscore
  • [ruutu] Detect embeds by tpikonen
  • [tenplay] Improve extractor by aarubui
  • [TikTok] Fix URLs with user id by hatienl0i261299
  • [TikTokVM] Fix redirect to user URL
  • [TVer] Fix extractor by Lesmiscore
  • [TVer] Support landing page by vvto33
  • [twitcasting] Don't return multi_video for archive with single hls manifest by Lesmiscore
  • [veo] Fix _VALID_URL
  • [Veo] Fix extractor by i6t
  • [viki] Don't attempt to modify URLs with signature by nyuszika7h
  • [viu] Fix bypass for preview by zackmark29
  • [viu] Fixed extractor by zackmark29, pukkandan
  • [web.archive:youtube] Make CDX API requests non-fatal by coletdjnz
  • [wget] Fix proxy by kikuyan, coletdjnz
  • [xnxx] Add xnxx3.com by rozari0
  • [youtube] Add new age-gate bypass by zerodytrash, pukkandan
  • [youtube] Add extractor-arg to skip auto-translated subs
  • [youtube] Avoid false positives when detecting damaged formats
  • [youtube] Detect DRM better by shirt
  • [youtube] Fix auto-translated automatic captions
  • [youtube] Fix pagination of membership tab
  • [youtube] Fix uploader for collaborative playlists by coletdjnz
  • [youtube] Improve video upload date handling by coletdjnz
  • [youtube:api] Prefer minified JSON response by coletdjnz
  • [youtube:search] Support hashtag entries by coletdjnz
  • [youtube:tab] Fix duration extraction for shorts by coletdjnz
  • [youtube:tab] Minor improvements
  • [youtube:tab] Return shorts url if video is a short by coletdjnz
  • [Zattoo] Fix extractors by goggle
  • [Zingmp3] Fix signature by hatienl0i261299

2022.03.08.1

  • [cleanup] Refactor __init__.py
  • [build] Fix bug

2022.03.08

  • Merge youtube-dl: Upto commit/6508688 (except NDR)
  • Add regex operator and quoting to format filters by lukasfink1
  • Add brotli content-encoding support by coletdjnz
  • Add pre-processor stage after_filter
  • Better error message when no --live-from-start format
  • Create necessary directories for --print-to-file
  • Fill more fields for playlists by Lesmiscore
  • Fix -all for --sub-langs
  • Fix doubling of video_id in ExtractorError
  • Fix for when stdout/stderr encoding is None
  • Handle negative duration from extractor
  • Implement --add-header without modifying std_headers
  • Obey --abort-on-error for "ffmpeg not installed"
  • Set webpage_url_... from webpage_url and not input URL
  • Tolerate failure to --write-link due to unknown URL
  • [aria2c] Add --http-accept-gzip=true
  • [build] Update pyinstaller to 4.10 by shirt
  • [cookies] Update MacOS12 Cookies.binarycookies location by mdpauley
  • [devscripts] Improve prepare_manpage
  • [downloader] Do not use aria2c for non-native m3u8
  • [downloader] Obey --file-access-retries when deleting/renaming by ehoogeveen-medweb
  • [extractor] Allow http_headers to be specified for thumbnails
  • [extractor] Extract subtitles from manifests for vimeo, globo, kaltura, svt by fstirlitz
  • [extractor] Fix for manifests without period duration by dirkf, pukkandan
  • [extractor] Support --mark-watched without _NETRC_MACHINE by coletdjnz
  • [FFmpegConcat] Abort on --simulate
  • [FormatSort] Consider acodec=ogg as vorbis
  • [fragment] Fix bugs around resuming with Range by Lesmiscore
  • [fragment] Improve --live-from-start for YouTube livestreams by Lesmiscore
  • [generic] Pass referer to extracted formats
  • [generic] Set rss guid as video id by Bricio
  • [options] Better ambiguous option resolution
  • [options] Rename --clean-infojson to --clean-info-json
  • [SponsorBlock] Fixes for highlight and "full video labels" by nihil-admirari
  • [Sponsorblock] minor fixes by nihil-admirari
  • [utils] Better traceback for ExtractorError
  • [utils] Fix file locking for AOSP by jakeogh
  • [utils] Improve file locking
  • [utils] OnDemandPagedList: Do not download pages after error
  • [utils] render_table: Fix character calculation for removing extra gap by Lesmiscore
  • [utils] Use locked_file for sanitize_open by jakeogh
  • [utils] Validate DateRange input
  • [utils] WebSockets wrapper for non-async functions by Lesmiscore
  • [cleanup] Don't pass protocol to _extract_m3u8_formats for live videos
  • [cleanup] Remove extractors for some dead websites by marieell
  • [cleanup, docs] Misc cleanup
  • [AbemaTV] Add extractors by Lesmiscore
  • [adobepass] Add Suddenlink MSO by CplPwnies
  • [ant1newsgr] Add extractor by zmousm
  • [bigo] Add extractor by Lesmiscore
  • [Caltrans] Add extractor by Bricio
  • [daystar] Add extractor by hatienl0i261299
  • [fc2:live] Add extractor by Lesmiscore
  • [fptplay] Add extractor by hatienl0i261299
  • [murrtube] Add extractor by cyberfox1691
  • [nfb] Add extractor by ofkz
  • [niconico] Add playlist extractors and refactor by Lesmiscore
  • [peekvids] Add extractor by schn0sch
  • [piapro] Add extractor by pycabbage, Lesmiscore
  • [rokfin] Add extractor by P-reducible, pukkandan
  • [rokfin] Add stack and channel extractors by P-reducible, pukkandan
  • [ruv.is] Add extractor by iw0nderhow
  • [telegram] Add extractor by hatienl0i261299
  • [VideocampusSachsen] Add extractors by FestplattenSchnitzel
  • [xinpianchang] Add extractor by hatienl0i261299
  • [abc] Support 1080p by Ronnnny
  • [afreecatv] Support password-protected livestreams by wlritchi
  • [ard] Fix valid URL
  • [ATVAt] Detect geo-restriction by marieell
  • [bandcamp] Detect acodec
  • [bandcamp] Fix user URLs by lyz-code
  • [bbc] Fix extraction of news articles by ajj8
  • [beeg] Fix extractor by Bricio
  • [bigo] Fix extractor to not to use form_params
  • [Bilibili] Pass referer for all formats by blackgear
  • [Biqle] Fix extractor by Bricio
  • [ccma] Fix timestamp parsing by nyuszika7h
  • [crunchyroll] Better error reporting on login failure by tejing1
  • [cspan] Support of C-Span congress videos by Grabien
  • [dropbox] fix regex by zenerdi0de
  • [fc2] Fix extraction by Lesmiscore
  • [fujitv] Extract resolution for free sources by YuenSzeHong
  • [Gettr] Add GettrStreamingIE by i6t
  • [Gettr] Fix formats order by i6t
  • [Gettr] Improve extractor by i6t
  • [globo] Expand valid URL by Bricio
  • [lbry] Fix --ignore-no-formats-error
  • [manyvids] Extract uploader by regarten
  • [mildom] Fix linter
  • [mildom] Rework extractors by Lesmiscore
  • [mirrativ] Cleanup extractor code by Lesmiscore
  • [nhk] Add support for NHK for School by Lesmiscore
  • [niconico:tag] Add support for searching tags
  • [nrk] Add fallback API
  • [peekvids] Use JSON-LD by schn0sch
  • [peertube] Add media.fsfe.org by mxmehl
  • [rtvs] Fix extractor by Bricio
  • [spiegel] Fix _VALID_URL
  • [ThumbnailsConvertor] Support webp
  • [tiktok] Fix vm.tiktok/vt.tiktok URLs
  • [tubitv] Fix/improve TV series extraction by bbepis
  • [tumblr] Fix extractor by foghawk
  • [twitcasting] Add fallback for finding running live by Lesmiscore
  • [TwitCasting] Check for password protection by Lesmiscore
  • [twitcasting] Fix extraction by Lesmiscore
  • [twitch] Fix field name of view_count
  • [twitter] Fix for private videos by iphoting
  • [washingtonpost] Fix extractor by Bricio
  • [youtube:tab] Add approximate_date extractor-arg
  • [youtube:tab] Follow redirect to regional channel by coletdjnz
  • [youtube:tab] Reject webpage data if redirected to home page
  • [youtube] De-prioritize potentially damaged formats
  • [youtube] Differentiate descriptive audio by language code
  • [youtube] Ensure subtitle urls are absolute by coletdjnz
  • [youtube] Escape possible $ in _extract_n_function_name regex by Lesmiscore
  • [youtube] Fix automatic captions
  • [youtube] Fix n-sig extraction for phone player JS by MinePlayersPE
  • [youtube] Further de-prioritize 3gp format
  • [youtube] Label original auto-subs
  • [youtube] Prefer UTC upload date for videos by coletdjnz
  • [zaq1] Remove dead extractor by marieell
  • [zee5] Support web-series by Aniruddh-J
  • [zingmp3] Fix extractor by hatienl0i261299
  • [zoom] Add support for screen cast by Mipsters

2022.02.04

  • [youtube:search] Fix extractor by coletdjnz
  • [youtube:search] Add tests
  • [twitcasting] Enforce UTF-8 for POST payload by Lesmiscore
  • [mediaset] Fix extractor by nixxo
  • [websocket] Make syntax error in websockets module non-fatal

2022.02.03

  • Merge youtube-dl: Upto commit/78ce962
  • Add option --print-to-file
  • Make nested --config-locations relative to parent file
  • Ensure _type is present in info.json
  • Fix --compat-options list-formats
  • Fix/improve InAdvancePagedList
  • [downloader/ffmpeg] Handle unknown formats better
  • [outtmpl] Handle -o "" better
  • [outtmpl] Handle hard-coded file extension better
  • [extractor] Add convenience function _yes_playlist
  • [extractor] Allow non-fatal title extraction
  • [extractor] Extract video inside Article json_ld
  • [generic] Allow further processing of json_ld URL
  • [cookies] Fix keyring selection for unsupported desktops
  • [utils] Strip double spaces in clean_html by dirkf
  • [aes] Add unpad_pkcs7
  • [test] Fix test_youtube_playlist_noplaylist
  • [docs,cleanup] Misc cleanup
  • [dplay] Add extractors for site changes by Sipherdrakon
  • [ertgr] Add extractors by zmousm, dirkf
  • [Musicdex] Add extractors by Ashish0804
  • [YandexVideoPreview] Add extractor by KiberInfinity
  • [youtube] Add extractor YoutubeMusicSearchURLIE
  • [archive.org] Ignore unnecessary files
  • [Bilibili] Add 8k support by u-spec-png
  • [bilibili] Fix extractor, make anthology title non-fatal
  • [CAM4] Add thumbnail extraction by alerikaisattera
  • [cctv] De-prioritize sample format
  • [crunchyroll:beta] Add cookies support by tejing1
  • [crunchyroll] Fix login by tejing1
  • [doodstream] Fix extractor
  • [fc2] Fix extraction by Lesmiscore
  • [FFmpegConcat] Abort on --skip-download and download errors
  • [Fujitv] Extract metadata and support premium by YuenSzeHong
  • [globo] Fix extractor by Bricio
  • [glomex] Simplify embed detection
  • [GoogleSearch] Fix extractor
  • [Instagram] Fix extraction when logged in by MinePlayersPE
  • [iq.com] Add VIP support by MinePlayersPE
  • [mildom] Fix extractor by lazypete365
  • [MySpass] Fix video url processing by trassshhub
  • [Odnoklassniki] Improve embedded players extraction by KiberInfinity
  • [orf:tvthek] Lazy playlist extraction and obey --no-playlist
  • [Pladform] Fix redirection to external player by KiberInfinity
  • [ThisOldHouse] Improve Premium URL check by Ashish0804
  • [TikTok] Iterate through app versions by MinePlayersPE
  • [tumblr] Fix 403 errors and handle vimeo embeds by foghawk
  • [viki] Fix "Bad request" for manifest by nyuszika7h
  • [Vimm] add recording extractor by alerikaisattera
  • [web.archive:youtube] Add ytarchive: prefix and misc cleanup
  • [youtube:api] Do not use seek when reading HTTPError response by coletdjnz
  • [youtube] Fix n-sig for player e06dea74
  • [youtube, cleanup] Misc fixes and cleanup

2022.01.21

  • Add option --concat-playlist to concat videos in a playlist
  • Allow multiple and nested configuration files
  • Add more post-processing stages (after_video, playlist)
  • Allow --exec to be run at any post-processing stage (Deprecates --exec-before-download)
  • Allow --print to be run at any post-processing stage
  • Allow listing formats, thumbnails, subtitles using --print by pukkandan, Zirro
  • Add fields video_autonumber, modified_date, modified_timestamp, playlist_count, channel_follower_count
  • Add key requested_downloads in the root info_dict
  • Write download_archive only after all formats are downloaded
  • [FfmpegMetadata] Allow setting metadata of individual streams using meta<n>_ prefix
  • Add option --legacy-server-connect by xtkoba
  • Allow escaped , in --extractor-args
  • Allow unicode characters in info.json
  • Check for existing thumbnail/subtitle in final directory
  • Don't treat empty containers as None in sanitize_info
  • Fix -s --ignore-no-formats --force-write-archive
  • Fix live title for multiple formats
  • List playlist thumbnails in --list-thumbnails
  • Raise error if subtitle download fails
  • [cookies] Fix bug when keyring is unspecified
  • [ffmpeg] Ignore unknown streams, standardize use of -map 0
  • [outtmpl] Alternate form for D and fix suffix's case
  • [utils] Add Sec-Fetch-Mode to std_headers
  • [utils] Fix format_bytes output for Bytes by pukkandan, mdawar
  • [utils] Handle ss:xxx in parse_duration
  • [utils] Improve parsing for nested HTML elements by zmousm, pukkandan
  • [utils] Use key None in traverse_obj to return as-is
  • [extractor] Detect more subtitle codecs in MPD manifests by fstirlitz
  • [extractor] Extract chapters from JSON-LD by iw0nderhow, pukkandan
  • [extractor] Extract thumbnails from JSON-LD by nixxo
  • [extractor] Improve url_result and related
  • [generic] Improve KVS player extraction by trassshhub
  • [build] Reduce dependency on third party workflows
  • [extractor,cleanup] Use _search_nextjs_data, format_field
  • [cleanup] Minor fixes and cleanup
  • [docs] Improvements
  • [test] Fix TestVerboseOutput
  • [afreecatv] Add livestreams extractor by wlritchi
  • [callin] Add extractor by foghawk
  • [CrowdBunker] Add extractors by Ashish0804
  • [daftsex] Add extractors by k3ns1n
  • [digitalconcerthall] Add extractor by teridon
  • [Drooble] Add extractor by u-spec-png
  • [EuropeanTour] Add extractor by Ashish0804
  • [iq.com] Add extractors by MinePlayersPE
  • [KelbyOne] Add extractor by Ashish0804
  • [LnkIE] Add extractor by Ashish0804
  • [MainStreaming] Add extractor by coletdjnz
  • [megatvcom] Add extractors by zmousm
  • [Newsy] Add extractor by Ashish0804
  • [noodlemagazine] Add extractor by trassshhub
  • [PokerGo] Add extractors by Ashish0804
  • [Pornez] Add extractor by mozlima
  • [PRX] Add Extractors by coletdjnz
  • [RTNews] Add extractor by Ashish0804
  • [Rule34video] Add extractor by trassshhub
  • [tvopengr] Add extractors by zmousm
  • [Vimm] Add extractor by alerikaisattera
  • [glomex] Add extractors by zmousm
  • [instagram] Add story/highlight extractor by u-spec-png
  • [openrec] Add movie extractor by Lesmiscore
  • [rai] Add Raiplaysound extractors by nixxo, pukkandan
  • [aparat] Fix extractor
  • [ard] Extract subtitles by fstirlitz
  • [BiliIntl] Add login by MinePlayersPE
  • [CeskaTelevize] Use http for manifests
  • [CTVNewsIE] Add fallback for video search by Ashish0804
  • [dplay] Migrate DiscoveryPlusItaly to DiscoveryPlus by timendum
  • [dplay] Re-structure DiscoveryPlus extractors
  • [Dropbox] Support password protected files and more formats by zenerdi0de
  • [facebook] Fix extraction from groups
  • [facebook] Improve title and uploader extraction
  • [facebook] Parse dash manifests
  • [fox] Extract m3u8 from preview by ischmidt20
  • [funk] Support origin URLs
  • [gfycat] Fix uploader
  • [gfycat] Support embeds by coletdjnz
  • [hotstar] Add extractor args to ignore tags by Ashish0804
  • [hrfernsehen] Fix ardloader extraction by CreaValix
  • [instagram] Fix username extraction for stories and highlights by nyuszika7h
  • [kakao] Detect geo-restriction
  • [line] Remove tv.line.me by sian1468
  • [mixch] Add MixchArchiveIE by Lesmiscore
  • [mixcloud] Detect restrictions by llacb47
  • [NBCSports] Fix extraction of platform URLs by ischmidt20
  • [Nexx] Extract more metadata by MinePlayersPE
  • [Nexx] Support 3q CDN by MinePlayersPE
  • [pbs] de-prioritize AD formats
  • [PornHub,YouTube] Refresh onion addresses by unit193
  • [RedBullTV] Parse subtitles from manifest by Ashish0804
  • [streamcz] Fix extractor by arkamar, pukkandan
  • [Ted] Rewrite extractor by pukkandan, trassshhub
  • [Theta] Fix valid URL by alerikaisattera
  • [ThisOldHouseIE] Add support for premium videos by Ashish0804
  • [TikTok] Fix extraction for sigi-based webpages, add API fallback by MinePlayersPE
  • [TikTok] Pass cookies to formats, and misc fixes by MinePlayersPE
  • [TikTok] Extract captions, user thumbnail by MinePlayersPE
  • [TikTok] Change app version by MinePlayersPE, llacb47
  • [TVer] Extract message for unaired live by Lesmiscore
  • [twitcasting] Refactor extractor by Lesmiscore
  • [twitter] Fix video in quoted tweets
  • [veoh] Improve extractor by foghawk
  • [vk] Capture clip URLs
  • [vk] Fix VKUserVideosIE by Ashish0804
  • [vk] Improve _VALID_URL by k3ns1n
  • [VrtNU] Handle empty title by pgaig
  • [XVideos] Check HLS formats by MinePlayersPE
  • [yahoo:gyao] Improved playlist handling by hyano
  • [youtube:tab] Extract more playlist metadata by coletdjnz, pukkandan
  • [youtube:tab] Raise error on tab redirect by krichbanana, coletdjnz
  • [youtube] Update Innertube clients by coletdjnz
  • [youtube] Detect live-stream embeds
  • [youtube] Do not return upload_date for playlists
  • [youtube] Extract channel subscriber count by coletdjnz
  • [youtube] Make invalid storyboard URL non-fatal
  • [youtube] Enforce UTC, update innertube clients and tests by coletdjnz
  • [zdf] Add chapter extraction by iw0nderhow
  • [zee5] Add geo-bypass

2021.12.27

  • Avoid recursion error when re-extracting info
  • [ffmpeg] Fix position of --ppa
  • [aria2c] Don't show progress when --no-progress
  • [cookies] Support other keyrings by mbway
  • [EmbedThumbnail] Prefer AtomicParsley over ffmpeg if available
  • [generic] Fix HTTP KVS Player by git-anony-mouse
  • [ThumbnailsConvertor] Fix for when there are no thumbnails
  • [docs] Add examples for using TYPES: in -P/-o
  • [PixivSketch] Add extractors by nao20010128nao
  • [tiktok] Add music, sticker and tag IEs by MinePlayersPE
  • [BiliIntl] Fix extractor by MinePlayersPE
  • [CBC] Fix URL regex
  • [tiktok] Fix extractor_key used in archive
  • [youtube] End live-from-start properly when stream ends with 403
  • [Zee5] Fix VALID_URL for tv-shows by Ashish0804

2021.12.25

  • [dash,youtube] Download live from start to end by nao20010128nao, pukkandan
    • Add option --live-from-start to enable downloading live videos from start
    • Add key is_from_start in formats to identify formats (of live videos) that downloads from start
    • [dash] Create protocol http_dash_segments_generator that allows a function to be passed instead of fragments
    • [fragment] Allow multiple live dash formats to download simultaneously
    • [youtube] Implement fragment re-fetching for the live dash formats
    • [youtube] Re-extract dash manifest every 5 hours (manifest expires in 6hrs)
    • [postprocessor/ffmpeg] Add FFmpegFixupDuplicateMoovPP to fixup duplicated moov atoms
    • Known issues:
      • Ctrl+C doesn't work on Windows when downloading multiple formats
      • If video becomes private, download hangs
  • [SponsorBlock] Add Filler and Highlight categories by nihil-admirari, pukkandan
    • Change --sponsorblock-cut all to --sponsorblock-cut default if you do not want filler sections to be removed
  • Add field webpage_url_domain
  • Add interactive format selection with -f -
  • Add option --file-access-retries by ehoogeveen-medweb
  • [outtmpl] Add alternate forms S, D and improve id detection
  • [outtmpl] Add operator & for replacement text by PilzAdam
  • [EmbedSubtitle] Disable duration check temporarily
  • [extractor] Add _search_nuxt_data by nao20010128nao
  • [extractor] Ignore errors in comment extraction when -i is given
  • [extractor] Standardize _live_title
  • [FormatSort] Prevent incorrect deprecation warning
  • [generic] Extract m3u8 formats from JSON-LD
  • [postprocessor/ffmpeg] Always add faststart
  • [utils] Fix parsing YYYYMMDD dates in Nov/Dec by wlritchi
  • [utils] Improve parse_count
  • [utils] Update std_headers by kikuyan, fstirlitz
  • [lazy_extractors] Fix for search IEs
  • [extractor] Support default implicit graph in JSON-LD by zmousm
  • Allow --no-write-thumbnail to override --write-all-thumbnail
  • Fix --throttled-rate
  • Fix control characters being printed to --console-title
  • Fix PostProcessor hooks not registered for some PPs
  • Pre-process when using --flat-playlist
  • Remove known invalid thumbnails from info_dict
  • Add warning when using -f best
  • Use parse_duration for --wait-for-video and some minor fix
  • [test/download] Add more fields
  • [test/download] Ignore field webpage_url_domain by std-move
  • [compat] Suppress errors in enabling VT mode
  • [docs] Improve manpage format by iw0nderhow, pukkandan
  • [docs,cleanup] Minor fixes and cleanup
  • [cleanup] Fix some typos by unit193
  • [ABC:iview] Add show extractor by pabs3
  • [dropout] Add extractor by TwoThousandHedgehogs, pukkandan
  • [GameJolt] Add extractors by MinePlayersPE
  • [gofile] Add extractor by Jertzukka, Ashish0804
  • [hse] Add extractors by cypheron, pukkandan
  • [NateTV] Add NateIE and NateProgramIE by Ashish0804, Hyeeji
  • [OpenCast] Add extractors by bwildenhain, C0D3D3V
  • [rtve] Add RTVEAudioIE by kebianizao
  • [Rutube] Add RutubeChannelIE by Ashish0804
  • [skeb] Add extractor by nao20010128nao
  • [soundcloud] Add related tracks extractor by Lapin0t
  • [toggo] Add extractor by nyuszika7h
  • [TrueID] Add extractor by MinePlayersPE
  • [audiomack] Update album and song VALID_URL by abdullah-if, dirkf
  • [CBC Gem] Extract 1080p formats by DavidSkrundz
  • [ceskatelevize] Fetch iframe from nextJS data by mkubecek
  • [crackle] Look for non-DRM formats by raleeper
  • [dplay] Temporary fix for discoveryplus.com/it
  • [DiscoveryPlusShowBaseIE] yield actual video id by Ashish0804
  • [Facebook] Handle redirect URLs
  • [fujitv] Extract 1080p from tv_android m3u8 by YuenSzeHong
  • [gronkh] Support new URL pattern by Sematre
  • [instagram] Expand valid URL by u-spec-png
  • [Instagram] Try bypassing login wall with embed page by MinePlayersPE
  • [Jamendo] Fix use of _VALID_URL_RE by jaller94
  • [LBRY] Support livestreams by Ashish0804, pukkandan
  • [NJPWWorld] Extract formats from m3u8 by aarubui
  • [NovaEmbed] update player regex by std-move
  • [npr] Make SMIL extraction non-fatal by r5d
  • [ntvcojp] Extract NUXT data by nao20010128nao
  • [ok.ru] add mobile fallback by nao20010128nao
  • [olympics] Add uploader and cleanup by u-spec-png
  • [ondemandkorea] Update jw_config regex by julien-hadleyjack
  • [PlutoTV] Expand _VALID_URL
  • [RaiNews] Fix extractor by nixxo
  • [RCTIPlusSeries] Lazy extraction and video type selection by MinePlayersPE
  • [redtube] Handle formats delivered inside a JSON by dirkf, nixxo
  • [SonyLiv] Add OTP login support by Ashish0804
  • [Steam] Fix extractor by u-spec-png
  • [TikTok] Pass cookies to mobile API by MinePlayersPE
  • [trovo] Fix inheritance of TrovoChannelBaseIE
  • [TVer] Extract better thumbnails by YuenSzeHong
  • [vimeo] Extract chapters
  • [web.archive:youtube] Improve metadata extraction by coletdjnz
  • [youtube:comments] Add more options for limiting number of comments extracted by coletdjnz
  • [youtube:tab] Extract more metadata from feeds/channels/playlists by coletdjnz
  • [youtube:tab] Extract video thumbnails from playlist by coletdjnz, pukkandan
  • [youtube:tab] Ignore query when redirecting channel to playlist and cleanup of related code
  • [youtube] Fix ytsearchdate
  • [zdf] Support videos with different ptmd location by iw0nderhow
  • [zee5] Support /episodes in URL

2021.12.01

  • Add option --wait-for-video to wait for scheduled streams
  • Add option --break-per-input to apply --break-on... to each input URL
  • Add option --embed-info-json to embed info.json in mkv
  • Add compat-option embed-metadata
  • Allow using a custom format selector through API
  • [AES] Add ECB mode by nao20010128nao
  • [build] Fix MacOS Build
  • [build] Save Git HEAD at release alongside version info
  • [build] Use workflow_dispatch for release
  • [downloader/ffmpeg] Fix for direct videos inside mpd manifests
  • [downloader] Add colors to download progress
  • [EmbedSubtitles] Slightly relax duration check and related cleanup
  • [ExtractAudio] Fix conversion to wav and vorbis
  • [ExtractAudio] Support alac
  • [extractor] Extract average_rating from JSON-LD
  • [FixupM3u8] Fixup MPEG-TS in MP4 container
  • [generic] Support mpd manifests without extension by shirt
  • [hls] Better FairPlay DRM detection by nyuszika7h
  • [jsinterp] Fix splice to handle float (for youtube js player f1ca6900)
  • [utils] Allow alignment in render_table and add tests
  • [utils] Fix PagedList
  • [utils] Fix error when copying LazyList
  • Clarify video/audio-only formats in -F
  • Ensure directory exists when checking formats
  • Ensure path for link files exists by Zirro
  • Ensure same config file is not loaded multiple times
  • Fix postprocessor_hooks
  • Fix --break-on-archive when pre-checking
  • Fix --check-formats for mhtml
  • Fix --load-info-json of playlists with failed entries
  • Fix --trim-filename when filename has .
  • Fix bug in parsing --add-header
  • Fix error in report_unplayable_conflict by shirt
  • Fix writing playlist infojson with --no-clean-infojson
  • Validate --get-bypass-country
  • [blogger] Add extractor by pabs3
  • [breitbart] Add extractor by Grabien
  • [CableAV] Add extractor by j54vc1bk
  • [CanalAlpha] Add extractor by Ashish0804
  • [CozyTV] Add extractor by Ashish0804
  • [CPTwentyFour] Add extractor by Ashish0804
  • [DiscoveryPlus] Add DiscoveryPlusItalyShowIE by Ashish0804
  • [ESPNCricInfo] Add extractor by Ashish0804
  • [LinkedIn] Add extractor by u-spec-png
  • [mixch] Add extractor by nao20010128nao
  • [nebula] Add NebulaCollectionIE and rewrite extractor by hheimbuerger
  • [OneFootball] Add extractor by Ashish0804
  • [peer.tv] Add extractor by u-spec-png
  • [radiozet] Add extractor by 0xA7404A (Aurora)
  • [redgifs] Add extractor by chio0hai
  • [RedGifs] Add Search and User extractors by Deer-Spangle
  • [rtrfm] Add extractor by pabs3
  • [Streamff] Add extractor by cntrl-s
  • [Stripchat] Add extractor by zulaport
  • [Aljazeera] Fix extractor by u-spec-png
  • [AmazonStoreIE] Fix regex to not match vdp urls by Ashish0804
  • [ARDBetaMediathek] Handle new URLs
  • [bbc] Get all available formats by nyuszika7h
  • [Bilibili] Fix title extraction by u-spec-png
  • [CBC Gem] Fix for shows that don't have all seasons by makeworld-the-better-one
  • [curiositystream] Add more metadata
  • [CuriosityStream] Fix series
  • [DiscoveryPlus] Rewrite extractors by Ashish0804, pukkandan
  • [HotStar] Set language field from tags by Ashish0804
  • [instagram, cleanup] Refactor extractors
  • [Instagram] Display more login errors by MinePlayersPE
  • [itv] Fix extractor by staubichsauger, pukkandan
  • [mediaklikk] Expand valid URL
  • [MTV] Improve mgid extraction by Sipherdrakon, kikuyan
  • [nexx] Better error message for unsupported format
  • [NovaEmbed] Fix extractor by pukkandan, std-move
  • [PatreonUser] Do not capture RSS URLs
  • [Reddit] Add support for 1080p videos by xenova
  • [RoosterTeethSeries] Fix for multiple pages by MinePlayersPE
  • [sbs] Fix for movies and livestreams
  • [Senate.gov] Add SenateGovIE and fix SenateISVPIE by Grabien, pukkandan
  • [soundcloud:search] Fix pagination
  • [tiktok:user] Set webpage_url correctly
  • [Tokentube] Fix description by u-spec-png
  • [trovo] Fix extractor by nyuszika7h
  • [tv2] Expand valid URL
  • [Tvplayhome] Fix extractor by pukkandan, 18928172992817182
  • [Twitch:vod] Add chapters by mpeter50
  • [twitch:vod] Extract live status by DEvmIb
  • [VidLii] Add 720p support by mrpapersonic
  • [vimeo] Add fallback for config URL
  • [vimeo] Sort http formats higher
  • [WDR] Expand valid URL
  • [willow] Add extractor by aarubui
  • [xvideos] Detect embed URLs by 4a1e2y5
  • [xvideos] Fix extractor by Yakabuff
  • [youtube, cleanup] Reorganize Tab and Search extractor inheritances
  • [youtube:search_url] Add playlist/channel support
  • [youtube] Add default player client by coletdjnz
  • [youtube] Add storyboard formats
  • [youtube] Decrypt n-sig for URLs with ratebypass
  • [youtube] Minor improvement to format sorting
  • [cleanup] Add deprecation warnings
  • [cleanup] Refactor JSInterpreter._seperate
  • [Cleanup] Remove some unnecessary groups in regexes by Ashish0804
  • [cleanup] Misc cleanup

2021.11.10.1

  • Temporarily disable MacOS Build

2021.11.10

  • [youtube] Fix throttling by decrypting n-sig
  • Merging extractors from haruhi-dl by selfisekai
    • [extractor] Add _search_nextjs_data
    • [tvp] Fix extractors
    • [tvp] Add TVPStreamIE
    • [wppilot] Add extractors
    • [polskieradio] Add extractors
    • [radiokapital] Add extractors
    • [polsatgo] Add extractor by selfisekai, sdomi
  • Separate --check-all-formats from --check-formats
  • Approximate filesize from bitrate
  • Don't create console in windows_enable_vt_mode
  • Fix bug in --load-infojson of playlists
  • [minicurses] Add colors to -F and standardize color-printing code
  • [outtmpl] Add type link for internet shortcut files
  • [outtmpl] Add alternate forms for q and j
  • [outtmpl] Do not traverse None
  • [fragment] Fix progress display in fragmented downloads
  • [downloader/ffmpeg] Fix vtt download with ffmpeg
  • [ffmpeg] Detect presence of setts and libavformat version
  • [ExtractAudio] Rescale --audio-quality correctly by CrypticSignal, pukkandan
  • [ExtractAudio] Use libfdk_aac if available by CrypticSignal
  • [FormatSort] eac3 is better than ac3
  • [FormatSort] Fix some fields' defaults
  • [generic] Detect more json_ld
  • [generic] parse jwplayer with only the json URL
  • [extractor] Add keyword automatically to SearchIE descriptions
  • [extractor] Fix some errors being converted to ExtractorError
  • [utils] Add join_nonempty
  • [utils] Add jwt_decode_hs256 by Ashish0804
  • [utils] Create DownloadCancelled exception
  • [utils] Parse vp09 as vp9
  • [utils] Sanitize URL when determining protocol
  • [test/download] Fallback test to bv
  • [docs] Minor documentation improvements
  • [cleanup] Improvements to error and debug messages
  • [cleanup] Minor fixes and cleanup
  • [3speak] Add extractors by Ashish0804
  • [AmazonStore] Add extractor by Ashish0804
  • [Gab] Add extractor by u-spec-png
  • [mediaset] Add playlist support by nixxo
  • [MLSScoccer] Add extractor by Ashish0804
  • [N1] Add support for nova.rs by u-spec-png
  • [PlanetMarathi] Add extractor by Ashish0804
  • [RaiplayRadio] Add extractors by frafra
  • [roosterteeth] Add series extractor
  • [sky] Add SkyNewsStoryIE by ajj8
  • [youtube] Fix sorting for some videos
  • [youtube] Populate thumbnail with the best "known" thumbnail
  • [youtube] Refactor itag processing
  • [youtube] Remove unnecessary no-playlist warning
  • [youtube:tab] Add Invidious list for playlists/channels by rhendric
  • [Bilibili:comments] Fix infinite loop by u-spec-png
  • [ceskatelevize] Fix extractor by flashdagger
  • [Coub] Fix media format identification by wlritchi
  • [crunchyroll] Add extractor-args language and hardsub
  • [DiscoveryPlus] Allow language codes in URL
  • [imdb] Fix thumbnail by ozburo
  • [instagram] Add IOS URL support by u-spec-png
  • [instagram] Improve login code by u-spec-png
  • [Instagram] Improve metadata extraction by u-spec-png
  • [iPrima] Fix extractor by stanoarn
  • [itv] Add support for ITV News by ajj8
  • [la7] Fix extractor by nixxo
  • [linkedin] Don't login multiple times
  • [mtv] Fix some videos by Sipherdrakon
  • [Newgrounds] Fix description by u-spec-png
  • [Nrk] Minor fixes by fractalf
  • [Olympics] Fix extractor by u-spec-png
  • [piksel] Fix sorting
  • [twitter] Do not sort by codec
  • [viewlift] Add cookie-based login and series support by Ashish0804, pukkandan
  • [vimeo] Detect source extension and misc cleanup by flashdagger
  • [vimeo] Fix ondemand videos and direct URLs with hash
  • [vk] Fix login and add subtitles by kaz-us
  • [VLive] Add upload_date and thumbnail by Ashish0804
  • [VRT] Fix login by pgaig
  • [Vupload] Fix extractor by u-spec-png
  • [wakanim] Add support for MPD manifests by nyuszika7h
  • [wakanim] Detect geo-restriction by nyuszika7h
  • [ZenYandex] Fix extractor by u-spec-png

2021.10.22

  • [build] Improvements
    • Build standalone MacOS packages by smplayer-dev
    • Release windows exe built with py2exe
    • Enable lazy-extractors in releases
      • Set env var YTDLP_NO_LAZY_EXTRACTORS to forcefully disable this (experimental)
    • Clean up error reporting in update
    • Refactor pyinst.py, misc cleanup and improve docs
  • [docs] Migrate issues to use forms by Ashish0804
  • [downloader] Fix slow progress hooks
    • This was causing HLS/DASH downloads to be extremely slow in some situations
  • [downloader/ffmpeg] Improve simultaneous download and merge
  • [EmbedMetadata] Allow overwriting all default metadata with meta_default key
  • [ModifyChapters] Add ability for --remove-chapters to remove sections by timestamp
  • [utils] Allow duration strings in --match-filter
  • Add HDR information to formats
  • Add negative option --no-batch-file by Zirro
  • Calculate more fields for merged formats
  • Do not verify thumbnail URLs unless --check-formats is specified
  • Don't create console for subprocesses on Windows
  • Fix --restrict-filename when used with default template
  • Fix check_formats output being written to stdout when -qv
  • Fix bug in storyboards
  • Fix conflict b/w id and ext in format selection
  • Fix verbose head not showing custom configs
  • Load archive only after printing verbose head
  • Make duration_string and resolution available in --match-filter
  • Re-implement deprecated option --id
  • Reduce default --socket-timeout
  • Write verbose header to logger
  • [outtmpl] Fix bug in expanding environment variables
  • [cookies] Local State should be opened as utf-8
  • [extractor,utils] Detect more codecs/mimetypes
  • [extractor] Detect EXT-X-KEY Apple FairPlay
  • [utils] Use importlib to load plugins by sulyi
  • [http] Retry on socket timeout and show the last encountered error
  • [fragment] Print error message when skipping fragment
  • [aria2c] Fix --skip-unavailable-fragment
  • [SponsorBlock] Obey extractor-retries and sleep-requests
  • [Merger] Do not add aac_adtstoasc to non-hls audio
  • [ModifyChapters] Do not mutate original chapters by nihil-admirari
  • [devscripts/run_tests] Use markers to filter tests by sulyi
  • [7plus] Add cookie based authentication by nyuszika7h
  • [AdobePass] Fix RCN MSO by jfogelman
  • [CBC] Fix Gem livestream by makeworld-the-better-one
  • [CBC] Support CBC Gem member content by makeworld-the-better-one
  • [crunchyroll] Add season to flat-playlist
  • [crunchyroll] Add support for beta.crunchyroll URLs and fix series URLs with language code
  • [EUScreen] Add Extractor by Ashish0804
  • [Gronkh] Add extractor by Ashish0804
  • [hidive] Fix typo
  • [Hotstar] Mention Dynamic Range in format_id by Ashish0804
  • [Hotstar] Raise appropriate error for DRM
  • [instagram] Add login by u-spec-png
  • [instagram] Show appropriate error when login is needed
  • [microsoftstream] Add extractor by damianoamatruda, nixklai
  • [on24] Add extractor by damianoamatruda
  • [patreon] Fix vimeo player regex by zenerdi0de
  • [SkyNewsAU] Add extractor by Ashish0804
  • [tagesschau] Fix extractor by u-spec-png
  • [tbs] Add tbs live streams by llacb47
  • [tiktok] Fix typo and update tests
  • [trovo] Support channel clips and VODs by Ashish0804
  • [Viafree] Add support for Finland by 18928172992817182
  • [vimeo] Fix embedded player.vimeo
  • [vlive:channel] Fix extraction by kikuyan, pukkandan
  • [youtube] Add auto-translated subtitles
  • [youtube] Expose different formats with same itag
  • [youtube:comments] Fix for new layout by coletdjnz
  • [cleanup] Cleanup bilibili code by pukkandan, u-spec-png
  • [cleanup] Remove broken youtube login code
  • [cleanup] Standardize timestamp formatting code
  • [cleanup] Generalize getcomments implementation for extractors
  • [cleanup] Simplify search extractors code
  • [cleanup] misc

2021.10.10

  • [downloader/ffmpeg] Fix bug in initializing FFmpegPostProcessor
  • [minicurses] Fix when printing to file
  • [downloader] Fix throttledratelimit
  • [francetv] Fix extractor by fstirlitz, sarnoud
  • [NovaPlay] Add extractor by Bojidarist
  • [ffmpeg] Revert "Set max probesize" - No longer needed
  • [docs] Remove incorrect dependency on VC++10
  • [build] Allow to release without changelog

2021.10.09

  • Improved progress reporting
    • Separate --console-title and --no-progress
    • Add option --progress to show progress-bar even in quiet mode
    • Fix and refactor minicurses and use it for all progress reporting
    • Standardize use of terminal sequences and enable color support for windows 10
    • Add option --progress-template to customize progress-bar and console-title
    • Add postprocessor hooks and progress reporting
  • [postprocessor] Add plugin support with option --use-postprocessor
  • [extractor] Extract storyboards from SMIL manifests by fstirlitz
  • [outtmpl] Alternate form of format type l for \n delimited list
  • [outtmpl] Format type U for unicode normalization
  • [outtmpl] Allow empty output template to skip a type of file
  • Merge webm formats into mkv if thumbnails are to be embedded
  • [adobepass] Add RCN as MSO by jfogelman
  • [ciscowebex] Add extractor by damianoamatruda
  • [Gettr] Add extractor by i6t
  • [GoPro] Add extractor by i6t
  • [N1] Add extractor by u-spec-png
  • [Theta] Add video extractor by alerikaisattera
  • [Veo] Add extractor by i6t
  • [Vupload] Add extractor by u-spec-png
  • [bbc] Extract better quality videos by ajj8
  • [Bilibili] Add subtitle converter by u-spec-png
  • [CBC] Cleanup tests by makeworld-the-better-one
  • [Douyin] Rewrite extractor by MinePlayersPE
  • [Funimation] Fix for /v/ urls by pukkandan, Jules-A
  • [Funimation] Sort formats according to the relevant extractor-args
  • [Hidive] Fix duplicate and incorrect formats
  • [HotStarSeries] Fix cookies by Ashish0804
  • [LinkedInLearning] Add subtitles by Ashish0804
  • [Mediaite] Relax valid url by coletdjnz
  • [Newgrounds] Add age_limit and fix duration by u-spec-png
  • [Newgrounds] Fix view count on songs by u-spec-png
  • [parliamentlive.tv] Fix extractor by u-spec-png
  • [PolskieRadio] Fix extractors by jakubadamw, u-spec-png
  • [reddit] Add embedded url by u-spec-png
  • [reddit] Fix 429 by generating a random reddit_session by AjaxGb
  • [Rumble] Add RumbleChannelIE by Ashish0804
  • [soundcloud:playlist] Detect last page correctly
  • [SovietsCloset] Add duration from m3u8 by ChillingPepper
  • [Streamable] Add codecs by u-spec-png
  • [vidme] Remove extractor by alerikaisattera
  • [youtube:tab] Fallback to API when webpage fails to download by coletdjnz
  • [youtube] Fix non-fatal errors in fetching player
  • Fix --flat-playlist when neither IE nor id is known
  • Fix -f mp4 behaving differently from youtube-dl
  • Workaround for bug in ssl.SSLContext.load_default_certs
  • [aes] Improve performance slightly by sulyi
  • [cookies] Fix keyring fallback by mbway
  • [embedsubtitle] Fix error when duration is unknown
  • [ffmpeg] Fix error when subtitle file is missing
  • [ffmpeg] Set max probesize to workaround AAC HLS stream issues by shirt
  • [FixupM3u8] Remove redundant run if merged is needed
  • [hls] Fix decryption issues by shirt, pukkandan
  • [http] Respect user-provided chunk size over extractor's
  • [utils] Let traverse_obj accept functions as keys
  • [docs] Add note about our custom ffmpeg builds
  • [docs] Write embedding and contributing documentation by pukkandan, timethrow
  • [update] Check for new version even if not updateable
  • [build] Add more files to the tarball
  • [build] Allow building with py2exe (and misc fixes)
  • [build] Use pycryptodomex by shirt, pukkandan
  • [cleanup] Some minor refactoring, improve docs and misc cleanup

2021.09.25

  • Add new option --netrc-location
  • [outtmpl] Allow alternate fields using ,
  • [outtmpl] Add format type B to treat the value as bytes, e.g. to limit the filename to a certain number of bytes
  • Separate the options --ignore-errors and --no-abort-on-error
  • Basic framework for simultaneous download of multiple formats by nao20010128nao
  • [17live] Add 17.live extractor by nao20010128nao
  • [bilibili] Add BiliIntlIE and BiliIntlSeriesIE by Ashish0804
  • [CAM4] Add extractor by alerikaisattera
  • [Chingari] Add extractors by Ashish0804
  • [CGTN] Add extractor by chao813
  • [damtomo] Add extractor by nao20010128nao
  • [gotostage] Add extractor by poschi3
  • [Koo] Add extractor by Ashish0804
  • [Mediaite] Add Extractor by Ashish0804
  • [Mediaklikk] Add Extractor by tmarki, mrx23dot, coletdjnz
  • [MuseScore] Add Extractor by Ashish0804
  • [Newgrounds] Add NewgroundsUserIE and improve extractor by u-spec-png
  • [nzherald] Add NZHeraldIE by coletdjnz
  • [Olympics] Add replay extractor by Ashish0804
  • [Peertube] Add channel and playlist extractors by u-spec-png
  • [radlive] Add extractor by nyuszika7h
  • [SovietsCloset] Add extractor by ChillingPepper
  • [Streamanity] Add Extractor by alerikaisattera
  • [Theta] Add extractor by alerikaisattera
  • [Yandex] Add ZenYandexIE and ZenYandexChannelIE by Ashish0804
  • [9Now] handle episodes of series by dalanmiller
  • [AnimalPlanet] Fix extractor by Sipherdrakon
  • [Arte] Improve description extraction by renalid
  • [atv.at] Use jwt for API by NeroBurner
  • [brightcove] Extract subtitles from manifests
  • [CBC] Fix CBC Gem extractors by makeworld-the-better-one
  • [cbs] Report appropriate error for DRM
  • [comedycentral] Support collection-playlist by nixxo
  • [DIYNetwork] Support new format by Sipherdrakon
  • [downloader/niconico] Pass custom headers by nao20010128nao
  • [dw] Fix extractor
  • [Fancode] Fix live streams by zenerdi0de
  • [funimation] Fix for locations outside US by Jules-A, pukkandan
  • [globo] Fix GloboIE by Ashish0804
  • [HiDive] Fix extractor by Ashish0804
  • [Hotstar] Add referer for subs by Ashish0804
  • [itv] Fix extractor, add subtitles and thumbnails by coletdjnz, sleaux-meaux, Vangelis66
  • [lbry] Show error message from API response
  • [Mxplayer] Use mobile API by Ashish0804
  • [NDR] Rewrite NDRIE by Ashish0804
  • [Nuvid] Fix extractor by u-spec-png
  • [Oreilly] Handle new web url by MKSherbini
  • [pbs] Fix subtitle extraction by coletdjnz, gesa, raphaeldore
  • [peertube] Update instances by u-spec-png
  • [plutotv] Fix extractor for URLs with /en
  • [reddit] Workaround for 429 by redirecting to old.reddit.com
  • [redtube] Fix exts
  • [soundcloud] Make playlist extraction lazy
  • [soundcloud] Retry playlist pages on 502 error and update _CLIENT_ID
  • [southpark] Fix SouthParkDE by coletdjnz
  • [SovietsCloset] Fix playlists for games with only named categories by ConquerorDopy
  • [SpankBang] Fix uploader by f4pp3rk1ng, coletdjnz
  • [tiktok] Use API to fetch higher quality video by MinePlayersPE, llacb47
  • [TikTokUser] Fix extractor using mobile API by MinePlayersPE, llacb47
  • [videa] Fix some extraction errors by nyuszika7h
  • [VrtNU] Handle login errors by llacb47
  • [vrv] Don't raise error when thumbnails are missing
  • [youtube] Cleanup authentication code by coletdjnz
  • [youtube] Fix --mark-watched with --cookies-from-browser
  • [youtube] Improvements to JS player extraction and add extractor-args to skip it by coletdjnz
  • [youtube] Retry on 'Unknown Error' by coletdjnz
  • [youtube] Return full URL instead of just ID
  • [youtube] Warn when trying to download clips
  • [zdf] Improve format sorting
  • [zype] Extract subtitles from the m3u8 manifest by fstirlitz
  • Allow --force-write-archive to work with --flat-playlist
  • Download subtitles in order of --sub-langs
  • Allow 0 in --playlist-items
  • Handle more playlist errors with -i
  • Fix --no-get-comments
  • Fix extra_info being reused across runs
  • Fix compat options no-direct-merge and playlist-index
  • Dump files should obey --trim-filename by sulyi
  • [aes] Add aes_gcm_decrypt_and_verify by sulyi, pukkandan
  • [aria2c] Fix IV for some AES-128 streams by shirt
  • [compat] Don't ignore HOME (if set) on windows
  • [cookies] Make browser names case insensitive
  • [cookies] Print warning for cookie decoding error only once
  • [extractor] Fix root-relative URLs in MPD by DigitalDJ
  • [ffmpeg] Add aac_adtstoasc when merging if needed
  • [fragment,aria2c] Generalize and refactor some code
  • [fragment] Avoid repeated request for AES key
  • [fragment] Fix range header when using -N and media sequence by shirt
  • [hls,aes] Fallback to native implementation for AES-CBC and detect Cryptodome in addition to Crypto
  • [hls] Byterange + AES128 is supported by native downloader
  • [ModifyChapters] Improve sponsor chapter merge algorithm by nihil-admirari
  • [ModifyChapters] Minor fixes
  • [WebVTT] Adjust parser to accommodate PBS subtitles
  • [utils] Improve extract_timezone by dirkf
  • [options] Fix --no-config and refactor reading of config files
  • [options] Strip spaces and ignore empty entries in list-like switches
  • [test/cookies] Improve logging
  • [build] Automate more of the release process by animelover1984, pukkandan
  • [build] Fix sha256 by nihil-admirari
  • [build] Bring back brew taps by nao20010128nao
  • [build] Provide --onedir zip for windows
  • [cleanup,docs] Add deprecation warning in docs for some counter intuitive behaviour
  • [cleanup] Fix line endings for nebula.py by glenn-slayden
  • [cleanup] Improve make clean-test by sulyi
  • [cleanup] Misc

2021.09.02

  • Native SponsorBlock implementation by nihil-admirari, pukkandan
    • --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
    • No re-encoding is done unless --force-keyframes-at-cuts is used
    • The fetched sponsor sections are written to the infojson
    • Deprecates: --sponskrub, --no-sponskrub, --sponskrub-cut, --no-sponskrub-cut, --sponskrub-force, --no-sponskrub-force, --sponskrub-location, --sponskrub-args
  • Split --embed-chapters from --embed-metadata (it still implies the former by default)
  • Add option --remove-chapters to remove arbitrary chapters by nihil-admirari, pukkandan
  • Add option --force-keyframes-at-cuts for more accurate cuts when removing and splitting chapters by nihil-admirari
  • Let --match-filter reject entries early
    • Makes redundant: --match-title, --reject-title, --min-views, --max-views
  • [lazy_extractor] Improvements (It now passes all tests)
    • Bugfix for when plugin directory doesn't exist by kidonng
    • Create instance only after pre-checking archive
    • Import actual class if an attribute is accessed
    • Fix suitable and add flake8 test
  • [downloader/ffmpeg] Experimental support for DASH manifests (including live)
    • Your ffmpeg must have this patch applied for YouTube DASH to work
  • [downloader/ffmpeg] Allow passing custom arguments before -i
  • [BannedVideo] Add extractor by smege1001, blackjack4494, pukkandan
  • [bilibili] Add category extractor by animelover1984
  • [Epicon] Add extractors by Ashish0804
  • [filmmodu] Add extractor by mzbaulhaque
  • [GabTV] Add extractor by Ashish0804
  • [Hungama] Fix HungamaSongIE and add HungamaAlbumPlaylistIE by Ashish0804
  • [ManotoTV] Add new extractors by tandy1000
  • [Niconico] Add Search extractors by animelover1984, pukkandan
  • [Patreon] Add PatreonUserIE by zenerdi0de
  • [peloton] Add extractor by IONECarter, capntrips, pukkandan
  • [ProjectVeritas] Add extractor by Ashish0804
  • [radiko] Add extractors by nao20010128nao
  • [StarTV] Add extractor for startv.com.tr by mrfade, coletdjnz
  • [tiktok] Add TikTokUserIE by Ashish0804, pukkandan
  • [Tokentube] Add extractor by u-spec-png
  • [TV2Hu] Fix TV2HuIE and add TV2HuSeriesIE by Ashish0804
  • [voicy] Add extractor by nao20010128nao
  • [adobepass] Fix Verizon SAML login by nyuszika7h, ParadoxGBB
  • [afreecatv] Fix adult VODs by wlritchi
  • [afreecatv] Tolerate failure to parse date string by wlritchi
  • [aljazeera] Fix extractor by MinePlayersPE
  • [ATV.at] Fix extractor for ATV.at by NeroBurner, coletdjnz
  • [bitchute] Fix test by mahanstreamer
  • [camtube] Remove obsolete extractor by alerikaisattera
  • [CDA] Add more formats by u-spec-png
  • [eroprofile] Fix page skipping in albums by jhwgh1968
  • [facebook] Fix format sorting
  • [facebook] Fix metadata extraction by kikuyan
  • [facebook] Update onion URL by Derkades
  • [HearThisAtIE] Fix extractor by Ashish0804
  • [instagram] Add referrer to prevent throttling by u-spec-png, kikuyan
  • [iwara.tv] Extract more metadata by BunnyHelp
  • [iwara] Add thumbnail by i6t
  • [kakao] Fix extractor
  • [mediaset] Fix extraction for some videos by nyuszika7h
  • [Motherless] Fix extractor by coletdjnz
  • [Nova] fix extractor by std-move
  • [ParamountPlus] Fix geo verification by shirt
  • [peertube] handle new video URL format by Chocobozzz
  • [pornhub] Separate and fix playlist extractor by mzbaulhaque
  • [reddit] Fix for quarantined subreddits by ouwou
  • [ShemarooMe] Fix extractor by Ashish0804
  • [soundcloud] Refetch client_id on 403
  • [tiktok] Fix metadata extraction
  • [TV2] Fix extractor by Ashish0804
  • [tv5mondeplus] Fix extractor by korli
  • [VH1,TVLand] Fix extractors by Sipherdrakon
  • [Viafree] Fix extractor and extract subtitles by coletdjnz
  • [XHamster] Extract uploader_id by octotherp
  • [youtube] Add shorts to _VALID_URL
  • [youtube] Add av01 itags to known formats list by blackjack4494
  • [youtube] Extract error messages from HTTPError response by coletdjnz
  • [youtube] Fix subtitle names
  • [youtube] Prefer audio stream that YouTube considers default
  • [youtube] Remove annotations and deprecate --write-annotations by coletdjnz
  • [Zee5] Fix extractor and add subtitles by Ashish0804
  • [aria2c] Obey --rate-limit
  • [EmbedSubtitle] Continue even if some files are missing
  • [extractor] Better error message for DRM
  • [extractor] Common function _match_valid_url
  • [extractor] Show video id in error messages if possible
  • [FormatSort] Remove priority of lang
  • [options] Add _set_from_options_callback
  • [SubtitleConvertor] Fix bug during subtitle conversion
  • [utils] Add parse_qs
  • [webvtt] Fix timestamp overflow adjustment by fstirlitz
  • Bugfix for --replace-in-metadata
  • Don't try to merge with final extension
  • Fix --force-overwrites when using -k
  • Fix --no-prefer-free-formats by CeruleanSky
  • Fix -F for extractors that directly return url
  • Fix -J when there are failed videos
  • Fix extra_info being reused across runs
  • Fix playlist_index not obeying playlist_start and add tests
  • Fix resuming of single formats when using --no-part
  • Revert erroneous use of the Content-Length header by fstirlitz
  • Use os.replace where applicable by; paulwrubel
  • [build] Add homebrew taps yt-dlp/taps/yt-dlp by nao20010128nao
  • [build] Fix bug in making yt-dlp.tar.gz
  • [docs] Fix some typos by pukkandan, zootedb0t
  • [cleanup] Replace improper use of tab in trovo by glenn-slayden

2021.08.10

  • Add option --replace-in-metadata
  • Add option --no-simulate to not simulate even when --print or --list... are used - Deprecates --print-json
  • Allow entire infodict to be printed using %()s - makes --dump-json redundant
  • Allow multiple --exec and --exec-before-download
  • Add regex to --match-filter
  • Add all format filtering operators also to --match-filter by max-te
  • Add compat-option no-keep-subs
  • [adobepass] Add MSO Cablevision by Jessecar96
  • [BandCamp] Add BandcampMusicIE by Ashish0804
  • [blackboardcollaborate] Add new extractor by mzbaulhaque
  • [eroprofile] Add album downloader by jhwgh1968
  • [mirrativ] Add extractors by nao20010128nao
  • [openrec] Add extractors by nao20010128nao
  • [nbcolympics:stream] Fix extractor by nchilada, pukkandan
  • [nbcolympics] Update extractor for 2020 olympics by wesnm
  • [paramountplus] Separate extractor and fix some titles by shirt, pukkandan
  • [RCTIPlus] Support events and TV by MinePlayersPE
  • [Newgrounds] Improve extractor and fix playlist by u-spec-png
  • [aenetworks] Update _THEPLATFORM_KEY and _THEPLATFORM_SECRET by wesnm
  • [crunchyroll] Fix thumbnail by funniray
  • [HotStar] Use API for metadata and extract subtitles by Ashish0804
  • [instagram] Fix comments extraction by u-spec-png
  • [peertube] Fix videos without description by u-spec-png
  • [twitch:clips] Extract display_id by dirkf
  • [viki] Print error message from API request
  • [Vine] Remove invalid formats by u-spec-png
  • [VrtNU] Fix XSRF token by pgaig
  • [vrv] Fix thumbnail extraction by funniray
  • [youtube] Add extractor-arg include-live-dash to show live dash formats
  • [youtube] Improve signature function detection by PSlava
  • [youtube] Raise appropriate error when API pages can't be downloaded
  • Ensure _write_ytdl_file closes file handle on error
  • Fix --compat-options filename by stdedos
  • Fix issues with infodict sanitization
  • Fix resuming when using --no-part
  • Fix wrong extension for intermediate files
  • Handle BrokenPipeError by kikuyan
  • Show libraries present in verbose head
  • [extractor] Detect sttp as subtitles in MPD by fstirlitz
  • [extractor] Reset non-repeating warnings per video
  • [ffmpeg] Fix streaming mp4 to stdout
  • [ffpmeg] Allow --ffmpeg-location to be a file with different name
  • [utils] Fix InAdvancePagedList.__getitem__
  • [utils] Fix traverse_obj depth when is_user_input
  • [webvtt] Merge daisy-chained duplicate cues by fstirlitz
  • [build] Use custom build of pyinstaller by shirt
  • [tests:download] Add batch testing for extractors (test_YourExtractor_all)
  • [docs] Document which fields --add-metadata adds to the file
  • [docs] Fix some mistakes and improve doc
  • [cleanup] Misc code cleanup

2021.08.02

  • Add logo, banner and donate links
  • [outtmpl] Expand and escape environment variables
  • [outtmpl] Add format types j (json), l (comma delimited list), q (quoted for terminal)
  • [downloader] Allow streaming some unmerged formats to stdout using ffmpeg
  • [youtube] Age-gate bypass
  • [adobepass] Add MSO Sling TV by wesnm
  • [CBS] Add ParamountPlusSeriesIE by Ashish0804
  • [dplay] Add ScienceChannelIE by Sipherdrakon
  • [UtreonIE] Add extractor by Ashish0804
  • [youtube] Add mweb client by coletdjnz
  • [youtube] Add player_client=all
  • [youtube] Force hl=en for comments by coletdjnz
  • [youtube] Fix format sorting when using alternate clients
  • [youtube] Misc cleanup by pukkandan, coletdjnz
  • [youtube] Extract SAPISID only once
  • [CBS] Add fallback by llacb47, pukkandan
  • [Hotstar] Support cookies by Ashish0804
  • [HotStarSeriesIE] Fix regex by Ashish0804
  • [bilibili] Improve _VALID_URL
  • [mediaset] Fix extraction by nixxo
  • [Mxplayer] Add h265 formats by Ashish0804
  • [RCTIPlus] Remove PhantomJS dependency by MinePlayersPE
  • [tenplay] Add MA15+ age limit by pento
  • [vidio] Fix login error detection by MinePlayersPE
  • [vimeo] Better extraction of original file by Ashish0804
  • [generic] Support KVS player (replaces ThisVidIE) by rigstot
  • Add compat-option no-clean-infojson
  • Remove asr appearing twice in -F
  • Set home: as the default key for -P
  • [utils] Fix slicing of reversed LazyList
  • [FormatSort] Fix bug for audio with unknown codec
  • [test:download] Support testing with ignore_no_formats_error
  • [cleanup] Refactor some code

2021.07.24

  • [youtube:tab] Extract video duration early
  • [downloader] Pass info_dict to progress_hooks
  • [youtube] Fix age-gated videos for API clients when cookies are supplied by coletdjnz
  • [youtube] Disable get_video_info age-gate workaround - This endpoint seems to be completely dead
  • [youtube] Try all clients even if age-gated
  • [youtube] Fix subtitles only being extracted from the first client
  • [youtube] Simplify _get_text
  • [cookies] bugfix for microsoft edge on macOS
  • [cookies] Handle sqlite ImportError gracefully by mbway
  • [cookies] Handle errors when importing keyring

2021.07.21

  • Add option --cookies-from-browser to load cookies from a browser by mbway
    • Usage: --cookies-from-browser BROWSER[:PROFILE_NAME_OR_PATH]
    • Also added --no-cookies-from-browser
    • To decrypt chromium cookies, keyring is needed for UNIX and pycryptodome for Windows
  • Add option --exec-before-download
  • Add field live_status
  • [FFmpegMetadata] Add language of each stream and some refactoring
  • [douyin] Add extractor by pukkandan, pyx
  • [pornflip] Add extractor by mzbaulhaque
  • [youtube] Extract data from multiple clients by pukkandan, coletdjnz
    • player_client now accepts multiple clients
    • Default player_client = android,web
      • This uses twice as many requests, but avoids throttling for most videos while also not losing any formats
    • Music clients can be specifically requested and is enabled by default if music.youtube.com
    • Added player_client=ios (Known issue: formats from ios are not sorted correctly)
    • Add age-gate bypass for android and ios clients
  • [youtube] Extract more thumbnails
    • The thumbnail URLs are hard-coded and their actual existence is tested lazily
    • Added option --no-check-formats to not test them
  • [youtube] Misc fixes
    • Improve extraction of livestream metadata by pukkandan, krichbanana
    • Hide live dash formats since they can't be downloaded anyway
    • Fix authentication when using multiple accounts by coletdjnz
    • Fix controversial videos when requested via API by coletdjnz
    • Fix session index extraction and headers for non-web player clients by coletdjnz
    • Make --extractor-retries work for more errors
    • Fix sorting of 3gp format
    • Sanity check chapters (and refactor related code)
    • Make parse_time_text and _extract_chapters non-fatal
    • Misc cleanup and bug fixes by coletdjnz
  • [youtube:tab] Fix channels tab
  • [youtube:tab] Extract playlist availability by coletdjnz
  • [youtube:comments] Move comment extraction to new API by coletdjnz
    • Adds extractor-args comment_sort (top/new), max_comments, max_comment_depth
  • [youtube:comments] Fix is_favorited, improve like_count parsing by coletdjnz
  • [BravoTV] Improve metadata extraction by kevinoconnor7
  • [crunchyroll:playlist] Force http
  • [yahoo:gyao:player] Relax _VALID_URL by nao20010128nao
  • [nebula] Authentication via tokens from cookie jar by hheimbuerger, TpmKranz
  • [RTP] Fix extraction and add subtitles by fstirlitz
  • [viki] Rewrite extractors and add extractor-arg video_types to vikichannel by zackmark29, pukkandan
  • [vlive] Extract thumbnail directly in addition to the one from Naver
  • [generic] Extract previously missed subtitles by fstirlitz
  • [generic] Extract everything in the SMIL manifest and detect discarded subtitles by fstirlitz
  • [embedthumbnail] Fix _get_thumbnail_resolution
  • [metadatafromfield] Do not detect numbers as field names
  • Fix selectors all, mergeall and add tests
  • Errors in playlist extraction should obey --ignore-errors
  • Fix bug where original_url was not propagated when _type=url
  • Revert "Merge webm formats into mkv if thumbnails are to be embedded (#173)"
    • This was wrongly checking for write_thumbnail
  • Improve extractor_args parsing
  • Rename NOTE in -F to MORE INFO since it's often confused to be the same as format_note
  • Add only_once param for write_debug and report_warning
  • [extractor] Allow extracting multiple groups in _search_regex by fstirlitz
  • [utils] Improve traverse_obj
  • [utils] Add variadic
  • [utils] Improve js_to_json comment regex by fstirlitz
  • [webtt] Fix timestamps
  • [compat] Remove unnecessary code
  • [docs] fix default of multistreams

2021.07.07

  • Merge youtube-dl: Upto commit/a803582
  • Add --extractor-args to pass some extractor-specific arguments. See readme
    • Add extractor option skip for youtube, e.g. --extractor-args youtube:skip=hls,dash
    • Deprecates --youtube-skip-dash-manifest, --youtube-skip-hls-manifest, --youtube-include-dash-manifest, --youtube-include-hls-manifest
  • Allow --list... options to work with --print, --quiet and other --list... options
  • [youtube] Use player API for additional video extraction requests by coletdjnz
    • Fixes youtube premium music (format 141) extraction
    • Adds extractor option player_client = web/android
      • --extractor-args youtube:player_client=android works around the throttling for the time-being
    • Adds extractor option player_skip=config
    • Adds age-gate fallback using embedded client
  • [youtube] Choose correct Live chat API for upcoming streams by krichbanana
  • [youtube] Fix subtitle names for age-gated videos
  • [youtube:comments] Fix error handling and add itct to params by coletdjnz
  • [youtube_live_chat] Fix download with cookies by siikamiika
  • [youtube_live_chat] use clickTrackingParams by siikamiika
  • [Funimation] Rewrite extractor
    • Add FunimationShowIE by Mevious
    • Treat the different versions of an episode as different formats of a single video
      • This changes the video id and will break break existing archives
      • Compat option seperate-video-versions to fall back to old behavior including using the old video ids
    • Support direct /player/ URL
    • Extractor options language and version to pre-select them during extraction
      • These options may be removed in the future if we can extract all formats without additional network requests
      • Do not rely on these for format selection and use -f filters instead
  • [AdobePass] Add Spectrum MSO by kevinoconnor7, ohmybahgosh
  • [facebook] Extract description and fix title
  • [fancode] Fix extraction, support live and allow login with refresh token by zenerdi0de
  • [plutotv] Improve _VALID_URL
  • [RCTIPlus] Add extractor by MinePlayersPE
  • [Soundcloud] Allow login using oauth token by blackjack4494
  • [TBS] Support livestreams by llacb47
  • [videa] Fix extraction by nyuszika7h
  • [yahoo] Fix extraction by llacb47, pukkandan
  • Process videos when using --ignore-no-formats-error by krichbanana
  • Fix --throttled-rate when using --load-info-json
  • Fix --flat-playlist when entry has no ie_key
  • Fix check_formats catching ExtractorError instead of DownloadError
  • Fix deprecated option --list-formats-old
  • [downloader/ffmpeg] Fix --ppa when using simultaneous download
  • [extractor] Prevent unnecessary download of hls manifests and refactor hls_split_discontinuity
  • [fragment] Handle status of download and errors in threads correctly; and minor refactoring
  • [thumbnailsconvertor] Treat jpeg as jpg
  • [utils] Fix issues with LazyList reversal
  • [extractor] Allow extractors to set their own login hint
  • [cleanup] Simplify format selector code with LazyList and yield from
  • [cleanup] Clean extractor.common._merge_subtitles signature
  • [cleanup] Fix some typos

2021.06.23

  • Merge youtube-dl: Upto commit/379f52a
  • Add option --throttled-rate below which video data is re-extracted
  • [fragment] Merge during download for -N, and refactor hls/dash
  • [websockets] Add WebSocketFragmentFD by nao20010128nao, pukkandan
  • Allow images formats in addition to video/audio
  • [downloader/mhtml] Add new downloader for slideshows/storyboards by fstirlitz
  • [youtube] Temporary fix for age-gate
  • [youtube] Support ongoing live chat by siikamiika
  • [youtube] Improve SAPISID cookie handling by coletdjnz
  • [youtube] Login is not needed for :ytrec
  • [youtube] Non-fatal alert reporting for unavailable videos page by coletdjnz
  • [twitcasting] Websocket support by nao20010128nao
  • [mediasite] Extract slides by fstirlitz
  • [funimation] Extract subtitles
  • [pornhub] Extract cast
  • [hotstar] Use server time for authentication instead of local time
  • [EmbedThumbnail] Fix for already downloaded thumbnail
  • [EmbedThumbnail] Add compat-option embed-thumbnail-atomicparsley
  • Expand --check-formats to thumbnails
  • Fix id sanitization in filenames
  • Skip fixup of existing files and add --fixup force to force it
  • Better error handling of syntax errors in -f
  • Use NamedTemporaryFile for --check-formats
  • [aria2c] Lower --min-split-size for HTTP downloads
  • [options] Rename --add-metadata to --embed-metadata
  • [utils] Improve LazyList and add tests
  • [build] Build Windows x86 version with py3.7 and remove redundant tests by pukkandan, shirt
  • [docs] Clarify that --embed-metadata embeds chapter markers
  • [cleanup] Refactor fixup

2021.06.09

  • Fix bug where %(field)d in filename template throws error
  • [outtmpl] Improve offset parsing
  • [test] More rigorous tests for prepare_filename

2021.06.08

  • Remove support for obsolete Python versions: Only 3.6+ is now supported
  • Merge youtube-dl: Upto commit/c2350ca
  • [hls] Fix decryption for multithreaded downloader
  • [extractor] Fix pre-checking archive for some extractors
  • [extractor] Fix FourCC fallback when parsing ISM by fstirlitz
  • [twitcasting] Add TwitCastingUserIE, TwitCastingLiveIE by pukkandan, nao20010128nao
  • [vidio] Add VidioPremierIE and VidioLiveIE by MinePlayersPE
  • [viki] Fix extraction from ytdl-org/youtube-dl@59e583f
  • [youtube] Support shorts URL
  • [zoom] Extract transcripts as subtitles
  • Add field original_url with the user-inputted URL
  • Fix and refactor prepare_outtmpl
  • Make more fields available for --print when used with --flat-playlist
  • [utils] Generalize traverse_dict to traverse_obj
  • [downloader/ffmpeg] Hide FFmpeg banner unless in verbose mode by fstirlitz
  • [build] Release yt-dlp.tar.gz
  • [build,update] Add GNU-style SHA512 and prepare updater for similar SHA256 by nihil-admirari
  • [pyinst] Show Python version in exe metadata by nihil-admirari
  • [docs] Improve documentation of dependencies
  • [cleanup] Mark unused files
  • [cleanup] Point all shebang to python3 by fstirlitz
  • [cleanup] Remove duplicate file trovolive.py

2021.06.01

  • Merge youtube-dl: Upto commit/d495292
  • Pre-check archive and filters during playlist extraction
  • Handle Basic Auth user:pass in URLs by hhirtz and pukkandan
  • [archiveorg] Add YoutubeWebArchiveIE by coletdjnz and alex-gedeon
  • [fancode] Add extractor by rhsmachine
  • [patreon] Support vimeo embeds by rhsmachine
  • [Saitosan] Add new extractor by llacb47
  • [ShemarooMe] Add extractor by Ashish0804 and pukkandan
  • [telemundo] Add extractor by king-millez
  • [SonyLIV] Add SonyLIVSeriesIE and subtitle support by Ashish0804
  • [Hotstar] Add HotStarSeriesIE by Ashish0804
  • [Voot] Add VootSeriesIE by Ashish0804
  • [vidio] Support login and premium videos by MinePlayersPE
  • [fragment] When using -N, do not keep the fragment content in memory
  • [ffmpeg] Download and merge in a single step if possible
  • [ThumbnailsConvertor] Support conversion to png and make it the default by louie-github
  • [VideoConvertor] Generalize with remuxer and allow conditional recoding
  • [EmbedThumbnail] Embed in mp4/m4a using mutagen by tripulse and pukkandan
  • [EmbedThumbnail] Embed if any thumbnail was downloaded, not just the best
  • [EmbedThumbnail] Correctly escape filename
  • [update] replace self without launching a subprocess in windows
  • [update] Block further update for unsupported systems
  • Refactor __process_playlist by creating LazyList
  • Write messages to stderr when both quiet and verbose
  • Sanitize and sort playlist thumbnails
  • Remove None values from info.json
  • [extractor] Always prefer native hls downloader by default
  • [extractor] Skip subtitles without URI in m3u8 manifests by hheimbuerger
  • [extractor] Functions to parse socket.io response as json by pukkandan and llacb47
  • [extractor] Allow note=False when extracting manifests
  • [utils] Escape URLs in sanitized_Request, not sanitize_url
  • [hls] Disable external downloader for webtt
  • [youtube] /live URLs should raise error if channel is not live
  • [youtube] Bug fixes
  • [zee5] Fix m3u8 formats' extension
  • [ard] Allow URLs without - before id by olifre
  • [cleanup] YoutubeDL._match_entry
  • [cleanup] Refactor updater
  • [cleanup] Refactor ffmpeg convertors
  • [cleanup] setup.py

2021.05.20

  • Youtube improvements:
    • Support youtube music MP, VL and browse pages
    • Extract more formats for youtube music by craftingmod, coletdjnz and pukkandan
    • Extract multiple subtitles in same language by pukkandan and tpikonen
    • Redirect channels that doesn't have a videos tab to their UU playlists
    • Support in-channel search
    • Sort audio-only formats correctly
    • Always extract maxresdefault thumbnail
    • Extract audio language
    • Add subtitle language names by nixxo and tpikonen
    • Show alerts only from the final webpage
    • Add html5=1 param to get_video_info page requests by coletdjnz
    • Better message when login required
  • Add option --print: to print any field/template
    • Makes redundant: --get-description, --get-duration, --get-filename, --get-format, --get-id, --get-thumbnail, --get-title, --get-url
  • Field additional_urls to download additional videos from metadata using --parse-metadata
  • Merge youtube-dl: Upto commit/dfbbe29
  • Write thumbnail of playlist and add pl_thumbnail outtmpl key
  • [embedthumbnail] Add flac support and refactor mutagen code by pukkandan and tripulse
  • [audius:artist] Add extractor by king-millez
  • [parlview] Add extractor by king-millez
  • [tenplay] Fix extractor by king-millez
  • [rmcdecouverte] Generalize _VALID_URL
  • Add compat-option no-attach-infojson
  • Add field name for subtitles
  • Ensure post_extract and pre_process only run once
  • Fix --check-formats when there is network error
  • Standardize write_debug and get_param
  • [options] Alias --write-comments, --no-write-comments
  • [options] Refactor callbacks
  • [test:download] Only extract enough videos for playlist_mincount
  • [extractor] bugfix for when compat_opts is not given
  • [build] Fix x86 build by shirt
  • [cleanup] code formatting, youtube tests and readme

2021.05.11

  • Deprecate support for python versions < 3.6
  • Subtitle extraction from manifests by fstirlitz. See be6202f for details
  • Improve output template:
    • Allow slicing lists/strings using field.start:end:step
    • A field can also be used as offset like field1+num+field2
    • A default value can be given using field|default
    • Prevent invalid fields from causing errors
  • Merge youtube-dl: Upto commit/a726009
  • Remove options -l, -t, -A completely and disable --auto-number, --title, --literal, --id
  • [Plugins] Prioritize plugins over standard extractors and prevent plugins from overwriting the standard extractor classes
  • [downloader] Fix quiet and to_stderr
  • [fragment] Ensure the file is closed on error
  • [fragment] Make sure first segment is not skipped
  • [aria2c] Fix whitespace being stripped off
  • [embedthumbnail] Fix bug where jpeg thumbnails were converted again
  • [FormatSort] Fix for when some formats have quality and others don't
  • [utils] Add network_exceptions
  • [utils] Escape URL while sanitizing
  • [ukcolumn] Add Extractor
  • [whowatch] Add extractor by nao20010128nao
  • [CBS] Improve _VALID_URL to support movies
  • [crackle] Improve extraction
  • [curiositystream] Fix collections
  • [francetvinfo] Improve video id extraction
  • [generic] Respect the encoding in manifest
  • [limelight] Obey allow_unplayable_formats
  • [mediasite] Generalize URL pattern by fstirlitz
  • [mxplayer] Add MxplayerShowIE by Ashish0804
  • [nebula] Move to nebula.app by Lamieur
  • [niconico] Fix HLS formats by CXwudi, tsukumijima, nao20010128nao and pukkandan
  • [niconico] Fix title and thumbnail extraction by CXwudi
  • [plutotv] Extract subtitles from manifests
  • [plutotv] Fix format extraction for some urls
  • [rmcdecouverte] Improve _VALID_URL
  • [sonyliv] Fix title and series extraction by Ashish0804
  • [tubi] Raise "no video formats" error when video url is empty
  • [youtube:tab] Detect playlists inside community posts
  • [youtube] Add oembed to reserved names
  • [zee5] Fix extraction for some URLs by Hadi0609
  • [zee5] Fix py2 compatibility
  • Fix playlist_index and add playlist_autonumber. See #302 for details
  • Add experimental option --check-formats to test the URLs before format selection
  • Option --compat-options to revert some of yt-dlp's changes
    • Deprecates --list-formats-as-table, --list-formats-old
  • Fix number of digits in %(playlist_index)s
  • Fix case sensitivity of format selector
  • Revert "[core] be able to hand over id and title using url_result"
  • Do not strip out whitespaces in -o and -P
  • Fix preload_download_archive writing verbose message to stdout
  • Move option warnings to YoutubeDLso that they obey --no-warnings and can output colors
  • Py2 compatibility for FileNotFoundError

2021.04.22

  • Improve output template:
    • Objects can be traversed like %(field.key1.key2)s
    • An offset can be added to numeric fields as %(field+N)s
    • Deprecates --autonumber-start
  • Improve --sub-langs:
    • Treat --sub-langs entries as regex
    • all can be used to refer to all the subtitles
    • language codes can be prefixed with - to exclude it
    • Deprecates --all-subs
  • Add option --ignore-no-formats-error to ignore the "no video format" and similar errors
  • Add option --skip-playlist-after-errors to skip the rest of a playlist after a given number of errors are encountered
  • Merge youtube-dl: Upto commit/7e8b3f9
  • [downloader] Fix bug in downloader selection
  • [BilibiliChannel] Fix pagination by nao20010128nao and pukkandan
  • [rai] Add support for http formats by nixxo
  • [TubiTv] Add TubiTvShowIE by Ashish0804
  • [twitcasting] Fix extractor
  • [viu:ott] Fix extractor and support series by lkho and pukkandan
  • [youtube:tab] Show unavailable videos in playlists by coletdjnz
  • [youtube:tab] Reload with unavailable videos for all playlists
  • [youtube] Ignore invalid stretch ratio
  • [youtube] Improve channel syncid extraction to support ytcfg by coletdjnz
  • [youtube] Standardize API calls for tabs, mixes and search by coletdjnz
  • [youtube] Bugfix in _extract_ytcfg
  • [mildom:user:vod] Download only necessary amount of pages
  • [mildom] Remove proxy completely by fstirlitz
  • [go] Fix _VALID_URL
  • [MetadataFromField] Improve regex and add tests
  • [Exec] Ensure backward compatibility when the command contains %
  • [extractor] Fix inconsistent use of report_warning
  • Ensure mergeall selects best format when multistreams are disabled
  • Improve the yt-dlp.sh script by fstirlitz
  • [lazy_extractor] Do not load plugins
  • [ci] Disable fail-fast
  • [docs] Clarify which deprecated options still work
  • [docs] Fix typos

2021.04.11

  • Add option --convert-thumbnails (only jpg currently supported)
  • Format selector mergeall to download and merge all formats
  • Pass any field to --exec using similar syntax to output template
  • Choose downloader for each protocol using --downloader PROTO:NAME
    • Alias --downloader for --external-downloader
    • Added native as an option for the downloader
  • Merge youtube-dl: Upto commit/4fb25ff (except vimeo)
  • [DiscoveryPlusIndia] Add DiscoveryPlusIndiaShowIE by Ashish0804
  • [NFHSNetwork] Add extractor by llacb47
  • [nebula] Add extractor (watchnebula.com) by hheimbuerger
  • [nitter] Fix extraction of reply tweets and update instance list by B0pol
  • [nitter] Fix thumbnails by B0pol
  • [youtube] Fix thumbnail URL
  • [youtube] Parse API parameters from initial webpage by coletdjnz
  • [youtube] Extract comments' approximate timestamp by coletdjnz
  • [youtube] Fix alert extraction
  • [bilibili] Fix uploader
  • [utils] Add datetime_from_str and datetime_add_months by coletdjnz
  • Run some postprocessors before actual download
  • Improve argument parsing for -P, -o, -S
  • Fix some m3u8 not obeying --allow-unplayable-formats
  • Fix default of dynamic_mpd
  • Deprecate --all-formats, --include-ads, --hls-prefer-native, --hls-prefer-ffmpeg
  • [docs] Improvements

2021.04.03

  • Merge youtube-dl: Upto commit/654b4f4
  • Ability to set a specific field in the file's metadata using --parse-metadata
  • Ability to select n'th best format like -f bv*.2
  • [DiscoveryPlus] Add discoveryplus.in
  • [la7] Add podcasts and podcast playlists by nixxo
  • [mildom] Update extractor with current proxy by nao20010128nao
  • [ard:mediathek] Fix video id extraction
  • [generic] Detect Invidious' link element
  • [youtube] Show premium state in availability by coletdjnz
  • [viewsource] Add extractor to handle view-source:
  • [sponskrub] Run before embedding thumbnail
  • [docs] Improve --parse-metadata documentation

2021.03.24.1

2021.03.24

  • Merge youtube-dl: Upto 2021.03.25 (commit/8562218)
  • Parse metadata from multiple fields using --parse-metadata
  • Ability to load playlist infojson using --load-info-json
  • Write current epoch to infojson when using --no-clean-infojson
  • [youtube_live_chat] fix bug when trying to set cookies
  • [niconico] Fix for when logged in by CXwudi and xtkoba
  • [linuxacadamy] Fix login

2021.03.21

  • Merge 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

2021.03.15

  • Split video by chapters: using option --split-chapters
    • The output file of the split files can be set with -o/-P using the prefix chapter:
    • Additional keys section_title, section_number, section_start, section_end are available in the output template
  • Parallel fragment downloads by shirt
    • Use option --concurrent-fragments (-N) to set the number of threads (default 1)
  • Merge youtube-dl: Upto commit/3be0980
  • [zee5] Add Show Extractor by Ashish0804 and pukkandan
  • [rai] fix drm check nixxo
  • [wimtv] Add extractor by nixxo
  • [mtv] Add mtv.it and extract series metadata by nixxo
  • [pluto.tv] Add extractor by kevinoconnor7
  • [youtube] Rewrite comment extraction by coletdjnz
  • [embedthumbnail] Set mtime correctly
  • Refactor some postprocessor/downloader code by pukkandan and shirt

2021.03.07

  • [youtube] Fix history, mixes, community pages and trending by pukkandan and coletdjnz
  • [youtube] Fix private feeds/playlists on multi-channel accounts by coletdjnz
  • [youtube] Extract alerts from continuation by coletdjnz
  • [cbs] Add support for ParamountPlus by shirt
  • [mxplayer] Rewrite extractor with show support by pukkandan and Ashish0804
  • [gedi] Improvements from youtube-dl by nixxo
  • [vimeo] Fix videos with password by teesid
  • [lbry] Support lbry:// url by nixxo
  • [bilibili] Change Accept header by pukkandan and animelover1984
  • [trovo] Pass origin header
  • [rai] Check for DRM by nixxo
  • [downloader] Fix bug for ffmpeg/httpie
  • [update] Fix updater removing the executable bit on some UNIX distros
  • [update] Fix current build hash for UNIX
  • [docs] Include wget/curl/aria2c install instructions for Unix by Ashish0804
  • Fix some videos downloading with m3u8 extension
  • Remove "fixup is ignored" warning when fixup wasn't passed by user

2021.03.03.2

  • [build] Fix bug

2021.03.03

  • [youtube] Use new browse API for continuation page extraction by coletdjnz and pukkandan
  • Fix HLS playlist downloading by shirt
  • Merge youtube-dl: Upto 2021.03.03
  • [mtv] Fix extractor
  • [nick] Fix extractor by DennyDai
  • [mxplayer] Add new extractor by codeasashu
  • [youtube] Throw error when --extractor-retries are exhausted
  • Reduce default of --extractor-retries to 3
  • Fix packaging bugs by hseg

2021.03.01

  • Allow specifying path in --external-downloader
  • Add option --sleep-requests to sleep b/w requests
  • Add option --extractor-retries to retry on known extractor errors
  • Extract comments only when needed
  • --get-comments doesn't imply --write-info-json if -J, -j or --print-json are used
  • Fix get_executable_path by shirt
  • [youtube] Retry on more known errors than just HTTP-5xx
  • [youtube] Fix inconsistent webpage_url
  • [tennistv] Fix format sorting
  • [bilibiliaudio] Recognize the file as audio-only
  • [hrfensehen] Fix wrong import
  • [viki] Fix viki play pass authentication by RobinD42
  • [readthedocs] Improvements by shirt
  • [hls] Fix bug with m3u8 format extraction
  • [hls] Enable --hls-use-mpegts by default when downloading live-streams
  • [embedthumbnail] Fix bug with deleting original thumbnail
  • [build] Fix completion paths, zsh pip completion install by hseg
  • [ci] Disable download tests unless specifically invoked
  • Cleanup some code and fix typos

2021.02.24

  • Moved project to an organization yt-dlp
  • Completely changed project name to yt-dlp by Pccode66 and pukkandan
    • Also, youtube-dlc config files are no longer loaded
  • Merge youtube-dl: Upto commit/4460329 (except tmz, gedi)
  • Readthedocs support by shirt
  • [youtube] Show if video was a live stream in info (was_live)
  • [Zee5] Add new extractor by Ashish0804 and pukkandan
  • [jwplatform] Add support for hyland.com
  • [tennistv] Fix extractor
  • [hls] Support media initialization by shirt
  • [hls] Added options --hls-split-discontinuity to better support media discontinuity by shirt
  • [ffmpeg] Allow passing custom arguments before -i using --ppa "ffmpeg_i1:ARGS" syntax
  • Fix --windows-filenames removing / from UNIX paths
  • [hls] Show warning if pycryptodome is not found
  • [docs] Improvements
    • Fix documentation of Extractor Options
    • Document all in format selection
    • Document playable_in_embed in output templates

2021.02.19

  • Merge youtube-dl: Upto commit/cf2dbec (except kakao)
  • [viki] Fix extractor
  • [niconico] Extract channel and channel_id by kurumigi
  • [youtube] Multiple page support for hashtag URLs
  • [youtube] Add more invidious instances
  • [youtube] Fix comment extraction when comment text is empty
  • Option --windows-filenames to force use of windows compatible filenames
  • [ExtractAudio] Bugfix
  • Don't raise parser.error when exiting for update
  • [MoveFiles] Fix for when merger can't run
  • Changed --trim-file-name to --trim-filenames to be similar to related options
  • Format Sort improvements:
    • Prefer vp9.2 more than other vp9 codecs
    • Remove forced priority of quality
    • Remove unnecessary field_preference and misuse of preference from extractors
  • Build improvements:
    • Fix hash output by shirt
    • Lock python package versions for x86 and use wheels by shirt
    • Exclude vcruntime140.dll from UPX by jbruchon
    • Set version number based on UTC time, not local time
    • Publish on PyPi only if token is set
  • [docs] Better document --prefer-free-formats and add --no-prefer-free-format

2021.02.15

  • Merge youtube-dl: Upto 2021.02.10 (except archive.org)
  • [niconico] Improved extraction and support encrypted/SMILE movies by kurumigi, tsukumijima, bbepis, pukkandan
  • Fix HLS AES-128 with multiple keys in external downloaders by shirt
  • [youtube_live_chat] Fix by using POST API by siikamiika
  • [rumble] Add support for video page
  • Option --allow-unplayable-formats to allow downloading unplayable video formats
  • [ExtractAudio] Don't re-encode when file is already in a common audio format
  • [youtube] Fix search continuations
  • [youtube] Fix for new accounts
  • Improve build/updater: by pukkandan and shirt
    • Fix SHA256 calculation in build and implement hash checking for updater
    • Exit immediately in windows once the update process starts
    • Fix updater for x86.exe
    • Updater looks for both yt-dlp and youtube-dlc in releases for future-proofing
    • Change optional dependency to pycryptodome
  • Fix issue with unicode filenames in aria2c by shirt
  • Fix allow_playlist_files not being correctly passed through
  • Fix for empty HTTP head requests by shirt
  • Fix get_executable_path in UNIX
  • [sponskrub] Print ffmpeg output and errors to terminal
  • __real_download should be false when ffmpeg unavailable and no download
  • Show exe/zip/source and 32/64bit in verbose message

2021.02.09

  • aria2c support for DASH/HLS: by shirt
  • Implement Updater (-U) by shirt
  • [youtube] Fix comment extraction
  • [youtube_live_chat] Improve extraction
  • [youtube] Fix for channel URLs sometimes not downloading all pages
  • [aria2c] Changed default arguments to --console-log-level=warn --summary-interval=0 --file-allocation=none -x16 -j16 -s16
  • Add fallback for thumbnails
  • [embedthumbnail] Keep original thumbnail after conversion if write_thumbnail given
  • [embedsubtitle] Keep original subtitle after conversion if write_subtitles given
  • [pyinst.py] Move back to root dir
  • [youtube] Simplified renderer parsing and bugfixes
  • [movefiles] Fix compatibility with python2
  • [remuxvideo] Fix validation of conditional remux
  • [sponskrub] Don't raise error when the video does not exist
  • [docs] Crypto is an optional dependency

2021.02.04

  • Merge youtube-dl: Upto 2021.02.04.1
  • Date/time formatting in output template:
    • You can use strftime to format date/time fields. Example: %(upload_date>%Y-%m-%d)s
  • Multiple output templates:
    • Separate output templates can be given for the different metadata files by using -o TYPE:TEMPLATE
    • The allowed types are: subtitle|thumbnail|description|annotation|infojson|pl_description|pl_infojson
  • [youtube] More metadata extraction for channel/playlist URLs (channel, uploader, thumbnail, tags)
  • New option --no-write-playlist-metafiles to prevent writing playlist metadata files
  • [audius] Fix extractor
  • [youtube_live_chat] Fix parse_yt_initial_data and add fragment_retries
  • [postprocessor] Raise errors correctly
  • [metadatafromtitle] Fix bug when extracting data from numeric fields
  • Fix issue with overwriting files
  • Fix "Default format spec" appearing in quiet mode
  • [FormatSort] Allow user to prefer av01 over vp9 (The default is still vp9)
  • [FormatSort] fix bug where quality had more priority than hasvid
  • [pyinst] Automatically detect python architecture and working directory
  • Strip out internal fields such as _filename from infojson

2021.01.29

  • Features from animelover1984/youtube-dl: by animelover1984 and bbepis
    • Add --get-comments
    • [youtube] Extract comments
    • [billibilli] Added BiliBiliSearchIE, BilibiliChannelIE
    • [billibilli] Extract comments
    • [billibilli] Better video extraction
    • Write playlist data to infojson
    • [FFmpegMetadata] Embed infojson inside the video
    • [EmbedThumbnail] Try embedding in mp4 using ffprobe and -disposition
    • [EmbedThumbnail] Treat mka like mkv and mov like mp4
    • [EmbedThumbnail] Embed in ogg/opus
    • [VideoRemuxer] Conditionally remux video
    • [VideoRemuxer] Add -movflags +faststart when remuxing to mp4
    • [ffmpeg] Print entire stderr in verbose when there is error
    • [EmbedSubtitle] Warn when embedding ass in mp4
    • [anvato] Use NFLTokenGenerator if possible
  • Parse additional metadata: New option --parse-metadata to extract additional metadata from existing fields
    • The extracted fields can be used in --output
    • Deprecated --metadata-from-title
  • [Audius] Add extractor
  • [youtube] Extract playlist description and write it to .description file
  • Detect existing files even when using recode/remux (extract-audio is partially fixed)
  • Fix wrong user config from v2021.01.24
  • [youtube] Report error message from youtube as error instead of warning
  • [FormatSort] Fix some fields not sorting from v2021.01.24
  • [postprocessor] Deprecate avconv/avprobe. All current functionality is left untouched. But don't expect any new features to work with avconv
  • [postprocessor] fix write_debug to not throw error when there is no _downloader
  • [movefiles] Don't give "cant find" warning when move is unnecessary
  • Refactor update-version, pyinst.py and related files
  • [ffmpeg] Document more formats that are supported for remux/recode

2021.01.24

  • 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
    • The syntax is -P "type:path" -P "type:path"
    • Valid types are: home, temp, description, annotation, subtitle, infojson, thumbnail
    • Additionally, configuration file is taken from home directory or current directory
  • Allow passing different arguments to different external downloaders
  • [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

2021.01.20

  • [TrovoLive] Add extractor (only VODs)
  • [pokemon] Add /#/player URLs
  • Improved parsing of multiple postprocessor-args, add --ppa as alias
  • [EmbedThumbnail] Simplify embedding in mkv
  • [sponskrub] Encode filenames correctly, better debug output and error message
  • [readme] Cleanup options

2021.01.16

  • Merge youtube-dl: Upto 2021.01.16
  • Configuration files:
    • Portable configuration file: ./yt-dlp.conf
    • Allow the configuration files to be named yt-dlp instead of youtube-dlc. See this for details
  • Add PyPI release

2021.01.14

  • Added option --break-on-reject
  • [roosterteeth.com] Fix for bonus episodes by Zocker1999NET
  • [tiktok] Fix for when share_info is empty
  • [EmbedThumbnail] Fix bug due to incorrect function name
  • [docs] Changed sponskrub links to point to yt-dlp/SponSkrub since I am now providing both linux and windows releases
  • [docs] Change all links to correctly point to new fork URL
  • [docs] Fixes typos

2021.01.12

  • [roosterteeth.com] Add subtitle support by samiksome
  • Added --force-overwrites, --no-force-overwrites by alxnull
  • Changed fork name to yt-dlp
  • Fix typos by FelixFrog
  • [ci] Option to skip
  • [changelog] Added unreleased changes in blackjack4494/yt-dlc

2021.01.10

  • [archive.org] Fix extractor and add support for audio and playlists by wporr
  • [Animelab] Added by mariuszskon
  • [youtube:search] Fix view_count by ohnonot
  • [youtube] Show if video is embeddable in info (playable_in_embed)
  • Update version badge automatically in README
  • Enable test_youtube_search_matching
  • Create to_screen and similar functions in postprocessor/common

2021.01.09

  • [youtube] Fix bug in automatic caption extraction
  • Add post_hooks to YoutubeDL by alexmerkel
  • Batch file enumeration improvements by glenn-slayden
  • Stop immediately when reaching --max-downloads by glenn-slayden
  • Fix incorrect ANSI sequence for restoring console-window title by glenn-slayden
  • Kill child processes when yt-dlc is killed by Unrud

2021.01.08

  • Merge youtube-dl: Upto 2021.01.08 except stitcher (1, 2)
  • Moved changelog to separate file

2021.01.07-1

  • [Akamai] fix by nixxo
  • [Tiktok] merge youtube-dl tiktok extractor by GreyAlien502
  • [vlive] add support for playlists by kyuyeunk
  • [youtube_live_chat] make sure playerOffsetMs is positive by siikamiika
  • Ignore extra data streams in ffmpeg by jbruchon
  • Allow passing different arguments to different postprocessors using --postprocessor-args
  • Deprecated --sponskrub-args. The same can now be done using --postprocessor-args "sponskrub:<args>"
  • [CI] Split tests into core-test and full-test

2021.01.07

  • Removed priority of av01 codec in -S since most devices don't support it yet
  • Added duration_string to be used in --output
  • Created First Release

2021.01.05-1

  • Changed defaults:
    • Enabled --ignore
    • Disabled --video-multistreams and --audio-multistreams
    • Changed default format selection to bv*+ba/b when --audio-multistreams is disabled
    • Changed default format sort order to res,fps,codec,size,br,asr,proto,ext,has_audio,source,format_id
    • Changed webm to be more preferable than flv in format sorting
    • Changed default output template to %(title)s [%(id)s].%(ext)s
    • Enabled --list-formats-as-table

2021.01.05

  • Format Sort: Added --format-sort (-S), --format-sort-force (--S-force) - See Sorting Formats for details
  • Format Selection: See Format Selection for details
    • New format selectors: best*, worst*, bestvideo*, bestaudio*, worstvideo*, worstaudio*
    • Changed video format sorting to show video only files and video+audio files together
    • Added --video-multistreams, --no-video-multistreams, --audio-multistreams, --no-audio-multistreams
    • Added b,w,v,a as alias for best, worst, video and audio respectively
  • Shortcut Options: Added --write-link, --write-url-link, --write-webloc-link, --write-desktop-link by h-h-h-h - See Internet Shortcut Options for details
  • Sponskrub integration: Added --sponskrub, --sponskrub-cut, --sponskrub-force, --sponskrub-location, --sponskrub-args - See SponSkrub Options for details
  • Added --force-download-archive (--force-write-archive) by h-h-h-h
  • Added --list-formats-as-table, --list-formats-old
  • Negative Options: Makes it possible to negate most boolean options by adding a no- to the switch. Usefull when you want to reverse an option that is defined in a config file
    • Added --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
    • Renamed: --write-subs, --no-write-subs, --no-write-auto-subs, --write-auto-subs. Note that these can still be used without the ending "s"
  • Relaxed validation for format filters so that any arbitrary field can be used
  • Fix for embedding thumbnail in mp3 by pauldubois98 (ytdl-org/youtube-dl#21569)
  • Make Twitch Video ID output from Playlist and VOD extractor same. This is only a temporary fix
  • Merge youtube-dl: Upto 2021.01.03 - See blackjack4494/yt-dlc#280 for details
  • Cleaned up the fork for public use

Note: All uncredited changes above this point are authored by pukkandan

Unreleased changes in blackjack4494/yt-dlc

  • Updated to youtube-dl release 2020.11.26 by pukkandan
  • Youtube improvements by pukkandan
    • Implemented all Youtube Feeds (ytfav, ytwatchlater, ytsubs, ythistory, ytrec) and SearchURL
    • Fix some improper Youtube URLs
    • Redirect channel home to /video
    • Print youtube's warning message
    • Handle Multiple pages for feeds better
  • [youtube] Fix ytsearch not returning results sometimes due to promoted content by coletdjnz
  • [youtube] Temporary fix for automatic captions - disable json3 by blackjack4494
  • Add --break-on-existing by gergesh
  • Pre-check video IDs in the archive before downloading by pukkandan
  • [bitwave.tv] New extractor by lorpus
  • [Gedi] Add extractor by nixxo
  • [Rcs] Add new extractor by nixxo
  • [skyit] New skyitalia extractor by nixxo
  • [france.tv] Fix thumbnail URL by renalid
  • [ina] support mobile links by B0pol
  • [instagram] Fix thumbnail extractor by nao20010128nao
  • [SouthparkDe] Support for English URLs by xypwn
  • [spreaker] fix SpreakerShowIE test URL by pukkandan
  • [Vlive] Fix playlist handling when downloading a channel by kyuyeunk
  • [tmz] Fix extractor by diegorodriguezv
  • [ITV] BTCC URL update by WolfganP
  • [generic] Detect embedded bitchute videos by pukkandan
  • [generic] Extract embedded youtube and twitter videos by diegorodriguezv
  • [ffmpeg] Ensure all streams are copied by pukkandan
  • [embedthumbnail] Fix for os.rename error by pukkandan
  • make_win.bat: don't use UPX to pack vcruntime140.dll by jbruchon

Changelog of blackjack4494/yt-dlc till release 2020.11.11-3

Note: This was constructed from the merge commit messages and may not be entirely accurate