yt-dlc/Changelog.md

53 KiB

Changelog

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, colethedj
    • 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 colethedj
    • Fix controversial videos when requested via API by colethedj
    • Fix session index extraction and headers for non-web player clients by colethedj
    • 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 colethedj
  • [youtube:tab] Fix channels tab
  • [youtube:tab] Extract playlist availability by colethedj
  • [youtube:comments] Move comment extraction to new API by colethedj
  • [youtube:comments] Fix is_favorited, improve like_count parsing by colethedj
  • [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
  • [doc] 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. Eg: --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 colethedj
    • 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 colethedj
  • [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 colethedj
  • [youtube] Login is not needed for :ytrec
  • [youtube] Non-fatal alert reporting for unavailable videos page by colethedj
  • [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
  • Improve offset parsing in outtmpl
  • [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 simlar 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 colethedj 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, colethedj 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 colethedj
    • Better message when login required
  • Add option --print: to print any field/template
    • Deprecates: --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 colethedj
  • [youtube:tab] Reload with unavailable videos for all playlists
  • [youtube] Ignore invalid stretch ratio
  • [youtube] Improve channel syncid extraction to support ytcfg by colethedj
  • [youtube] Standardize API calls for tabs, mixes and search by colethedj
  • [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
  • [documentation] Clarify which deprecated options still work
  • [documentation] 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 colethedj
  • [youtube] Extract comments' approximate timestamp by colethedj
  • [youtube] Fix alert extraction
  • [bilibili] Fix uploader
  • [utils] Add datetime_from_str and datetime_add_months by colethedj
  • 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
  • [documentation] 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 colethedj
  • [viewsource] Add extractor to handle view-source:
  • [sponskrub] Run before embedding thumbnail
  • [documentation] 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

  • [documentation] Add deprecated options and aliases in readme

  • [documentation] 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 colethedj 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 colethedj
  • [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 colethedj
  • [youtube] Fix private feeds/playlists on multi-channel accounts by colethedj
  • [youtube] Extract alerts from continuation by colethedj
  • [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
  • [documentation] 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 colethedj 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
  • [documentation] 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
  • [documentation] 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
  • [documentation] 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" (documentation)
    • Valid types are: home, temp, description, annotation, subtitle, infojson, thumbnail
    • Additionally, configuration file is taken from home directory or current directory (documentation)
  • Allow passing different arguments to different external downloaders (documentation)
  • [mildom] Add extractor by nao20010128nao
  • Warn when using old style --external-downloader-args and --post-processor-args
  • Fix --no-overwrite when using --write-link
  • [sponskrub] Output unrecognized argument error message correctly
  • [cbs] Make failure to extract title non-fatal
  • Fix typecasting when pre-checking archive
  • Fix issue with setting title on UNIX
  • Deprecate redundant aliases in formatSort. The aliases remain functional for backward compatibility, but will be left undocumented
  • [tests] Fix test_post_hooks
  • [tests] Split core and download tests

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
  • [documentation] Changed sponskrub links to point to yt-dlp/SponSkrub since I am now providing both linux and windows releases
  • [documentation] Change all links to correctly point to new fork URL
  • [documentation] 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

PS: 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 colethedj
  • [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
  • [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