Changelog
2025.03.31
Core changes
Misc. changes
2025.03.27
Core changes
2025.03.26
2025.03.25
Core changes
Networking changes
Misc. changes
2025.03.21
Core changes
Networking changes
Misc. changes
2025.02.19
Core changes
Downloader changes
Misc. changes
2025.01.26
Core changes
Misc. changes
2025.01.15
2025.01.12
Core changes
Misc. changes
2024.12.23
Core changes
2024.12.13
Misc. changes
2024.12.06
Core changes
2024.12.03
Core changes
Networking changes
Misc. changes
2024.11.18
Important changes
- Login with OAuth is no longer supported for YouTube
Due to a change made by the site, yt-dlp is no longer able to support OAuth login for YouTube. Read more
Core changes
Misc. changes
2024.11.04
Important changes
- Beginning with this release, yt-dlp’s Python dependencies must be installed using the
default
group
If you’re installing yt-dlp with pip/pipx or requiring yt-dlp in your own Python project, you’ll need to specify yt-dlp[default]
if you want to also install yt-dlp’s optional dependencies (which were previously included by default). Read more
- The minimum required Python version has been raised to 3.9
Python 3.8 reached its end-of-life on 2024.10.07, and yt-dlp has now removed support for it. As an unfortunate side effect, the official
yt-dlp.exe
and yt-dlp_x86.exe
binaries are no longer supported on Windows 7. Read more
Core changes
Misc. changes
2024.10.22
Important changes
- Following this release, yt-dlp’s Python dependencies must be installed using the
default
group
If you’re installing yt-dlp with pip/pipx or requiring yt-dlp in your own Python project, you’ll need to specify yt-dlp[default]
if you want to also install yt-dlp’s optional dependencies (which were previously included by default). Read more
- py2exe is no longer supported
This release’s
yt-dlp_min.exe
will be the last, and it’s actually a PyInstaller-bundled executable so that yt-dlp users updating their py2exe build with -U
will be automatically migrated. Read more
Core changes
Misc. changes
2024.10.07
Core changes
Postprocessor changes
Misc. changes
2024.09.27
Important changes
- The minimum recommended Python version has been raised to 3.9
Since Python 3.8 will reach end-of-life in October 2024, support for it will be dropped soon. Read more
Core changes
Networking changes
Misc. changes
2024.08.06
Core changes
2024.08.01
Core changes
Misc. changes
2024.07.25
Misc. changes
2024.07.16
Core changes
Networking changes
Misc. changes
2024.07.09
Core changes
2024.07.08
Core changes
2024.07.07
Important changes
Core changes
Misc. changes
2024.07.02
Core changes
Postprocessor changes
Misc. changes
2024.07.01
Important changes
Core changes
Downloader changes
Postprocessor changes
Networking changes
Misc. changes
2024.05.27
Misc. changes
2024.05.26
Core changes
- Add POST data hash to
--write-pages
filenames (#9879) by minamotorin (With fixes in c999bac by bashonly)
- Make
_search_nextjs_data
non fatal (#8937) by Grub4K
- afreecatv: live: Add
cdn
extractor-arg (#9666) by bashonly
- alura: Fix extractor (#9658) by hugohaa
- artetv: Label forced subtitles (#9945) by vtexier
- bbc: Fix and extend extraction (#9705) by dirkf, kylegustavo, pukkandan
- bilibili: Fix
--geo-verification-proxy
support (#9817) by fireattack
- bilibilispacevideo
- boosty: Add cookies support (#9522) by RasmusAntons
- brilliantpala: Fix login (#9788) by pzhlkj6612
- canalalpha: Fix extractor (#9675) by kclauhk
- cbc.ca: player: Improve
_VALID_URL
(#9866) by carusocr
- cda: Fix age-gated web extraction (#9939) by dirkf, emqi, Podiumnoche, Szpachlarz
- commonmistakes: Raise error on blob URLs (#9897) by seproDev
- crunchyroll
- dangalplay: Add extractors (#10021) by bashonly
- discoveryplus: Fix dmax.de and related extractors (#10020) by bashonly
- eplus: Handle URLs without videos (#9855) by pzhlkj6612
- europarlwebstream: Support new URL format (#9647) by seproDev, voidful
- facebook: Fix DASH formats extraction (#9734) by bashonly
- godresource: Add extractor (#9629) by HobbyistDev
- googledrive: Fix formats extraction (#9908) by WyohKnott
- hearthisat: Improve
_VALID_URL
(#9949) by bohwaz, seproDev
- hytale: Use
CloudflareStreamIE
explicitly (#9672) by llamasblade
- instagram: Support
/reels/
URLs (#9539) by amir16yp
- jiocinema: Add extractors (#10026) by bashonly
- jiosaavn: Extract via API and fix playlists (#9656) by bashonly
- lci: Fix extractor (#10025) by ocococococ
- mixch: Extract comments (#9860) by pzhlkj6612
- moviepilot: Fix extractor (#9366) by panatexxa
- netease: program: Improve
--no-playlist
message (#9488) by pzhlkj6612
- nfb: Fix extractors (#9650) by rrgomes
- ntslive: Add extractor (#9641) by lostfictions
- orf: on: Improve extraction (#9677) by TuxCoder
- orftvthek: Remove extractor (#10011) by seproDev
- patreon
- piapro: Fix extractor (#9311) by FinnRG, seproDev
- pornhub: Fix login by email address (#9914) by feederbox826
- qub: Fix extractor (#7019) by alexhuot1, dirkf
- reddit: Fix subtitles extraction (#10006) by kclauhk
- soundcloud
- taptap: Add extractors (#9776) by c-basalt
- tele5: Overhaul extractor (#10024) by bashonly
- theatercomplextown: Fix extractors (#9754) by bashonly
- tiktok
- tv5monde: Fix extractor (#9143) by alard, seproDev
- twitter
- vk: Improve format extraction (#9885) by seproDev
- wrestleuniverse: Avoid partial stream formats (#9800) by bashonly
- xiaohongshu: Add extractor (#9646) by HobbyistDev
- xvideos: quickies: Fix extractor (#9834) by JakeFinley96
- youporn: Fix extractor (#8827) by The-MAGI
- youtube
- zenyandex: Fix extractor (#9813) by src-tinkerer
Networking changes
Misc. changes
2024.04.09
Important changes
Core changes
Downloader changes
Networking changes
Misc. changes
2024.03.10
Core changes
- Migrate commonly plural fields to lists (#8917) by llistochek, pukkandan (With fixes in b136e2a by bashonly)
- Support multi-period MPD streams (#6654) by alard, pukkandan
- abematv
- adn
- aenetworks: Rating should be optional for AP extraction (#9005) by agibson-fl
- altcensored: channel: Fix playlist extraction (#9297) by marcdumais
- amadeustv: Add extractor (#8744) by ArnauvGilotra
- ant1newsgrembed: Fix extractor (#9191) by seproDev
- archiveorg: Fix format URL encoding (#9279) by bashonly
- ard
- art19: Add extractors (#9099) by seproDev
- artetv: Separate closed captions (#8231) by Nicals, seproDev
- asobichannel: Add extractors (#8700) by Snack-X
- bigo: Fix JSON extraction (#8893) by DmitryScaletta
- bilibili
- bilibilisearch: Set cookie to fix extraction (#9119) by c-basalt
- biliintl: Fix and improve subtitles extraction (#7077) by dirkf, HobbyistDev, itachi-19, seproDev
- boosty: Add extractor (#9144) by un-def
- ccma: Extract 1080p DASH formats (#9130) by seproDev
- cctv: Fix extraction (#9325) by src-tinkerer
- chzzk
- cineverse: Detect when login required (#9081) by garret1317
- cloudflarestream
- cloudycdn, lsm: Add extractors (#8643) by Caesim404
- cnbc: Overhaul extractors (#8741) by gonzalezjo, Noor-5, ruiminggu, seproDev, zhijinwuu
- craftsy: Fix extractor (#9384) by bashonly
- crooksandliars: Fix extractor (#9192) by seproDev
- crtvg: Fix
_VALID_URL
(#9404) by Xpl0itU
- dailymotion: Support search (#8292) by drzraf, seproDev
- douyin: Fix extractor (#9239) by 114514ns, bashonly (With fixes in e546e5d by bashonly)
- duboku: Fix m3u8 formats extraction (#9161) by DmitryScaletta
- dumpert: Improve
_VALID_URL
(#9320) by rvsit
- elementorembed: Add extractor (#8948) by pompos02, seproDev
- eporner: Extract AV1 formats (#9028) by michal-repo
- errjupiter
- facebook
- flextv: Add extractor (#9178) by DmitryScaletta
- floatplane: Improve metadata extraction (#8934) by chtk
- francetv
- funk: Fix extractor (#9194) by seproDev
- generic: Follow https redirects properly (#9121) by seproDev
- getcourseru: Add extractors (#8873) by divStar, seproDev
- gofile: Fix extraction (#9074) by jazz1611
- googledrive: Fix source file extraction (#8990) by jazz1611
- goplay: Fix extractor (#6654) by alard
- gopro: Fix extractor (#9019) by stilor
- ilpost: Add extractor (#9001) by CapacitorSet
- jiosaavnsong: Support more bitrates (#8834) by alien-developers, bashonly
- kukululive: Add extractor (#8877) by DmitryScaletta
- lefigarovideoembed: Fix extractor (#9198) by seproDev
- linkedin: Fix metadata and extract subtitles (#9056) by barsnick
- magellantv: Support episodes (#9199) by seproDev
- magentamusik: Add extractor (#7790) by pwaldhauer, seproDev
- medaltv: Fix extraction (#9098) by Danish-H
- mlbarticle: Fix extractor (#9021) by HobbyistDev
- motherless: Support uploader playlists (#8994) by dasidiot
- mujrozhlas: Fix extraction (#9306) by bashonly
- mx3: Add extractors (#8736) by martinxyz
- naver: Fix extractors (#8883) by seproDev
- nebula: Support podcasts (#9140) by c-basalt, seproDev
- nerdcubedfeed: Overhaul extractor (#9269) by seproDev
- newgrounds
- nfb: Add support for onf.ca and series (#8997) by bashonly, rrgomes
- nhkradiru: Extract extended description (#9162) by garret1317
- nhkradirulive: Make metadata extraction non-fatal (#8956) by garret1317
- niconico
- ninaprotocol: Add extractor (#8946) by RaduManole, seproDev
- ninenews: Add extractor (#8840) by SirElderling
- nova: Fix embed extraction (#9221) by seproDev
- ntvru: Fix extraction (#9276) by bashonly, dirkf
- nuum: Add extractors (#8868) by DmitryScaletta, seproDev
- nytimes
- onefootball: Fix extractor (#9222) by seproDev
- openrec: Pass referer for m3u8 formats (#9253) by fireattack
- orf: on: Add extractor (#9113) by HobbyistDev
- patreon: Fix embedded HLS extraction (#8993) by johnvictorfs
- peertube: Update instances (#9070) by Chocobozzz
- piapro: Improve
_VALID_URL
(#8999) by FinnRG
- playsuisse: Add login support (#9077) by chkuendig
- pornhub: Fix login support (#9227) by feederbox826
- pr0gramm: Enable POL filter and provide tags without login (#9051) by Grub4K
- prankcastpost: Add extractor (#8933) by columndeeply
- radiko: Extract more metadata (#9115) by YoshichikaAAA
- rai
- redcdnlivx, sejm: Add extractors (#8676) by selfisekai
- redtube
- ridehome: Add extractor (#8875) by SirElderling
- rinsefmartistplaylist: Add extractor (#8794) by SirElderling
- roosterteeth
- rule34video
- rumblechannel: Fix extractor (#9092) by Pranaxcau, vista-narvas
- screencastify: Update
_VALID_URL
(#9232) by seproDev
- svtpage: Fix extractor (#8938) by diman8
- swearnet: Raise for login required (#9281) by bashonly
- tiktok: Fix webpage extraction (#9327) by bashonly
- trtworld: Add extractor (#8701) by ufukk
- tvp: Support livestreams (#8860) by selfisekai
- twitch: Fix m3u8 extraction (#8960) by DmitryScaletta
- twitter
- txxx: Extract thumbnails (#9063) by shmohawk
- utreon: Support playeur.com (#9182) by DmitryScaletta
- vbox7: Fix extractor (#9100) by seproDev
- viewlift: Add support for chorki.com (#9095) by NurTasin
- vimeo
- viously: Add extractor (#8927) by nbr23, seproDev
- youtube
- zenporn: Add extractor (#8509) by SirElderling
- zetland: Add extractor (#9116) by HobbyistDev
Downloader changes
Networking changes
Misc. changes
2023.12.30
Core changes
Postprocessor changes
Networking changes
Misc. changes
2023.11.16
Misc. changes
2023.11.14
Important changes
Core changes
Downloader changes
Networking changes
Misc. changes
2023.10.13
Core changes
Downloader changes
Misc. changes
2023.10.07
Misc. changes
2023.09.24
Important changes
Core changes
- Extract subtitles from SMIL manifests (#7667) by bashonly, pukkandan
- Fix
--load-pages
by pukkandan
- Make
_search_nuxt_data
more lenient by std-move
- abematv
- amazonminitv: Fix extractors by bashonly, GautamMKGarg
- antenna: Support antenna.gr (#7584) by stdedos
- artetv: Fix HLS formats extraction by bashonly
- axs: Add extractor (#8094) by barsnick
- banbye: Support video ids containing a hyphen (#8059) by kshitiz305
- bbc: Extract tracklist as chapters (#7788) by garret1317
- bild.de: Extract HLS formats (#8032) by barsnick
- bilibili
- bilibilibangumi: Fix extractors (#7337) by GD-Slime
- bpb: Overhaul extractor (#8119) by Grub4K
- brilliantpala: Add extractors (#6680) by pzhlkj6612
- canal1, caracoltvplay: Add extractors (#7151) by elyse0
- cbc: Ignore any 426 from API (#7689) by makew0rld
- cbcplayer: Extract HLS formats and subtitles (#7484) by trainman261
- cbcplayerplaylist: Add extractor (#7870) by trainman261
- cineverse: Add extractors (#8146) by garret1317
- crunchyroll: Remove initial state extraction (#7632) by Grub4K
- douyutv: Fix extractors (#7652) by c-basalt
- dropbox: Fix extractor (#7926) by bashonly, denhotte, nathantouze (With fixes in 099fb1b by bashonly)
- eplus: inbound: Add extractor (#5782) by pzhlkj6612
- expressen: Improve
_VALID_URL
(#8153) by kylegustavo
- facebook
- fox: Support foxsports.com (#7724) by ischmidt20
- funker530: Fix extraction (#8040) by 04-pasha-04
- generic
- gofile: Update token by bashonly
- hotstar
- hungama: Overhaul extractors (#7757) by bashonly, Yalab7
- indavideoembed: Fix extraction (#8129) by aky-01
- iprima: Fix extractor (#7216) by std-move
- lbry: Fix original format extraction (#7711) by bashonly
- lecturio: Improve
_VALID_URL
(#7649) by simon300000
- magellantv: Add extractor (#7616) by bashonly
- massengeschmack.tv: Fix title extraction (#7813) by sb0stn
- media.ccc.de: lists: Fix extraction (#8144) by Rohxn16
- mediaite: Fix extraction (#7923) by Grabien
- mediaklikk: Fix extractor (#8086) by bashonly, zhallgato
- mediastream: Make embed extraction non-fatal by bashonly
- mixcloud: Update API URL (#8114) by garret1317
- monstercat: Add extractor (#8133) by garret1317
- motortrendondemand: Update
_VALID_URL
(#7683) by AmirAflak
- museai: Add extractor (#7614) by bashonly
- mzaalo: Improve
_VALID_URL
by bashonly
- n1info: article: Fix extractor (#7373) by u-spec-png
- nfl.com: plus, replay: Fix extractor (#7838) by bashonly
- niconicochannelplus: Add extractors (#5686) by pzhlkj6612
- nitter: Fix title extraction fallback (#8102) by ApoorvShah111
- noodlemagazine: Fix extraction (#7830) by RedDeffender (With fixes in 69dbfe0 by bashonly)
- novaembed: Fix extractor (#7910) by std-move
- patreoncampaign: Fix extraction (#7664) by bashonly
- pbs: Add extractor
PBSKidsIE
(#7602) by snixon
- piapro: Support
/content
URL (#7592) by FinnRG
- piaulizaportal: Add extractor (#7903) by pzhlkj6612
- picartovod: Fix extractor (#7727) by Frankgoji
- pornbox: Add extractor (#7386) by niemands
- pornhub: Update access cookies for UK (#7591) by zhong-yiyu
- pr0gramm: Rewrite extractor (#8151) by Grub4K
- radiofrance: Add support for livestreams, podcasts, playlists (#7006) by elyse0
- rbgtum: Fix extraction and support new URL format (#7690) by simon300000
- reddit
- rtvslo: Fix format extraction (#8131) by bashonly
- rule34video: Extract tags (#7117) by soundchaser128
- rumble: Fix embed extraction (#8035) by trislee
- s4c
- sohu: Fix extractor (#7628) by bashonly, c-basalt
- stageplus: Fix m3u8 extraction (#7929) by bashonly
- streamanity: Remove (#7571) by alerikaisattera
- svtplay: Fix extraction (#7789) by dirkf, wader
- tbsjp: Add episode, program, playlist extractors (#7765) by garret1317
- tiktok
- triller: Fix unlisted video extraction (#7670) by bashonly
- tv5mondeplus: Fix extractor (#7952) by dirkf, korli
- twitcasting
- twitter
- unsupported: List more sites with DRM by pukkandan
- videa: Fix extraction (#8003) by aky-01, hatsomatt
- vrt: Update token signing key (#7519) by Zprokkel
- wat.tv: Fix extraction (#7898) by davinkevin
- wdr: Fix extraction (#7979) by szabyg
- web.archive: vlive: Remove extractor (#8132) by bashonly
- weibo: Fix extractor and support user extraction (#7657) by c-basalt
- weverse: Support extraction without auth (#7924) by seproDev
- wimbledon: Add extractor (#7551) by nnoboa
- wrestleuniverseppv: Fix HLS AES key extraction by bashonly
- youtube
- zaiko: Improve thumbnail extraction (#8054) by pzhlkj6612
- zee5: Update access token endpoint (#7914) by bashonly
- zoom: Extract duration by bashonly
Downloader changes
Postprocessor changes
Networking changes
Misc. changes
2023.07.06
Important changes
- Security: [CVE-2023-35934] Fix Cookie leak
--add-header Cookie:
is deprecated and auto-scoped to input URL domains
- Cookies are scoped when passed to external downloaders
- Add
cookies
field to info.json and deprecate http_headers.Cookie
Core changes
Downloader changes
Misc. changes
2023.06.22
Core changes
Misc. changes
2023.06.21
Important changes
- YouTube: Improved throttling and signature fixes
Core changes
- Do not exit early for unsuitable
url_result
by pukkandan
- Do not warn for invalid chapter data in description by pukkandan
- Extract more metadata from ISM by pukkandan
- abematv: Add fallback for title and description extraction and extract more metadata (#6994) by Lesmiscore
- acast: Support embeds (#7212) by pabs3
- adobepass: Handle
Charter_Direct
MSO as Spectrum
(#6824) by bashonly
- aeonco: Support Youtube embeds (#6591) by alexklapheke
- afreecatv: Fix extractor (#6283) by blmarket
- ARDBetaMediathek: Add thumbnail (#6890) by StefanLobbenmeier
- bibeltv: Fix extraction, support live streams and series (#6505) by flashdagger
- bilibili
- biliIntl: Add comment extraction (#6079) by HobbyistDev
- bitchute: Add more fallback subdomains (#6907) by Neurognostic
- booyah: Remove extractor by pukkandan
- BrainPOP: Add extractors (#6106) by MinePlayersPE
- bravotv
- camfm: Add extractors (#7083) by garret1317
- cbc
- cbs: Add
ParamountPressExpress
extractor (#6604) by bashonly
- cbsnews: Overhaul extractors (#6681) by bashonly
- chilloutzone: Fix extractor (#6445) by bashonly
- clipchamp: Add extractor (#6978) by bashonly
- comedycentral: Add support for movies (#7108) by sqrtNOT
- crtvg: Add extractor (#7168) by ItzMaxTV
- crunchyroll: Rework with support for movies, music and artists (#6237) by Grub4K
- dacast: Add extractors (#6896) by bashonly
- daftsex: Update domain and embed player url (#5966) by JChris246
- DigitalConcertHall: Support films (#7202) by ItzMaxTV
- discogs: Add extractor (#6624) by rjy
- dlf: Add extractors (#6697) by nick-cd
- drtv: Fix radio page extraction (#6552) by viktor-enzell
- Dumpert: Fix m3u8 and support new URL pattern (#6091) by DataGhost, pukkandan
- elevensports: Add extractor (#7172) by ItzMaxTV
- ettutv: Add extractor (#6579) by elyse0
- europarl: Rewrite extractor (#7114) by HobbyistDev
- eurosport: Improve
_VALID_URL
(#7076) by HobbyistDev
- facebook: Fix metadata extraction (#6856) by ringus1
- foxnews: Fix extractors (#7222) by bashonly
- funker530: Add extractor (#7291) by Cyberes
- generic
- genius: Add support for articles (#6474) by bashonly
- globalplayer: Add extractors (#6903) by garret1317
- gmanetwork: Add extractor (#5945) by HobbyistDev
- gronkh: Extract duration and chapters (#6817) by satan1st
- hentaistigma: Remove extractor by pukkandan
- hidive: Fix login by pukkandan
- hollywoodreporter: Add extractors (#6614) by bashonly
- hotstar: Support
/shows/
URLs (#7225) by bashonly
- hrefli: Add extractor (#6762) by selfisekai
- idolplus: Add extractor (#6732) by ping
- iq: Set more language codes (#6476) by D0LLYNH0
- iwara
- JStream: Add extractor (#6252) by Lesmiscore
- jwplatform: Update
_extract_embed_urls
(#6383) by carusocr
- kick: Make initial request non-fatal by bashonly
- LastFM: Rewrite playlist extraction (#6379) by hatienl0i261299, pukkandan
- lbry: Extract original quality formats (#7257) by bashonly
- line: Remove extractors (#6734) by sian1468
- livestream: Support videos with account id (#6324) by theperfectpunk
- medaltv: Fix clips (#6502) by xenova
- mediastream: Improve
WinSports
and embed extraction (#6426) by bashonly
- mgtv: Fix formats extraction (#7234) by bashonly
- Mzaalo: Add extractor (#7163) by ItzMaxTV
- nbc: Fix
NBCStations
direct mp4 formats (#6637) by bashonly
- nebula: Add
beta.nebula.tv
(#6516) by unbeatable-101
- nekohacker: Add extractor (#7003) by hasezoey
- nhk
- niconico
- nubilesporn: Add extractor (#6231) by permunkle
- odnoklassniki: Fix formats extraction (#7217) by bashonly
- opencast
- owncloud: Add extractor (#6533) by C0D3D3V
- Parler: Rewrite extractor (#6446) by JChris246
- pgatour: Add extractor (#6613) by bashonly
- playsuisse: Support new url format (#6528) by sbor23
- polskieradio: Improve extractors (#5948) by selfisekai
- pornez: Support new URL formats (#6792) by zhgwn
- pornhub: Set access cookies to fix extraction (#6685) by arobase-che, Schmoaaaaah
- rai: Rewrite extractors (#5940) by danog, nixxo
- recurbate: Add extractor (#6297) by mrscrapy
- reddit
- rokfin: Re-construct manifest url (#6507) by vampirefrog
- rottentomatoes: Fix extractor (#6844) by JChris246
- rozhlas
- rtvc: Add extractors (#6578) by elyse0
- rumble
- sbs: Overhaul extractor for new API (#6839) by bashonly, dirkf, vidiot720
- shemaroome: Pass
stream_key
header to downloader (#7224) by bashonly
- sonyliv: Fix login with token (#7223) by bashonly
- stageplus: Add extractor (#6838) by bashonly
- stripchat: Fix extractor (#7306) by foreignBlade
- substack: Fix extraction (#7218) by bashonly
- sverigesradio: Support slug URLs (#7220) by bashonly
- tagesschau: Fix single audio urls (#6626) by flashdagger
- teamcoco: Fix extractor (#6437) by bashonly
- telecaribe: Expand livestream support (#6601) by bashonly
- tencent: Fix fatal metadata extraction (#7219) by bashonly
- thesun: Update
_VALID_URL
(#6522) by hatienl0i261299
- tiktok
- triller: Support short URLs, detect removed videos (#6636) by bashonly
- tv4: Fix extractor (#5649) by dirkf, TxI5
- tvp: Use new API (#6989) by selfisekai
- tvplay: Remove outdated domains (#7106) by ivanskodje
- twitch
- twitter
- urplay: Extract all subtitles (#7309) by hoaluvn
- voot: Fix extractor (#7227) by bashonly
- vrt: Overhaul extractors (#6244) by bashonly, bergoid, jeroenj
- weverse: Add extractors (#6711) by bashonly (With fixes in fd5d93f)
- wevidi: Add extractor (#6868) by truedread
- weyyak: Add extractor (#7124) by ItzMaxTV
- whyp: Add extractor (#6803) by CoryTibbettsDev
- wrestleuniverse
- wykop: Add extractors (#6140) by selfisekai
- ximalaya: Sort playlist entries (#7292) by linsui
- YahooGyaOIE, YahooGyaOPlayerIE: Delete extractors due to website close (#6218) by Lesmiscore
- yappy: YappyProfile: Add extractor (#7346) by 7vlad7
- youku: Improve error message (#6690) by carusocr
- youporn: Extract m3u8 formats by pukkandan
- youtube
- zaiko
- zdf: Fix formats extraction by bashonly
- zee5: Fix extraction of new content (#7280) by bashonly
- zingmp3: Fix and improve extractors (#6367) by hatienl0i261299
- zoom
Downloader changes
Postprocessor changes
Misc. changes
2023.03.04
- bilibili
- ESPNcricinfo
- lefigaro
- lumni
- Prankcast
- rutube
- SportDeutschland
- telecaribe
- tubetugraz
- tunein
- twitch
- twitter
- xvideos
Misc. changes
2023.03.03
Important changes
- A new release type has been added!
nightly
builds will be made after each push, containing the latest fixes (but also possibly bugs).
- When using
--update
/-U
, a release binary will only update to its current channel (either stable
or nightly
).
- The
--update-to
option has been added allowing the user more control over program upgrades (or downgrades).
--update-to
can change the release channel (stable
, nightly
) and also upgrade or downgrade to specific tags.
- Usage:
--update-to CHANNEL
, --update-to TAG
, --update-to CHANNEL@TAG
- YouTube throttling fixes!
Core changes
Misc. changes
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, dirkf
- [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_URL
s
- [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 @type
s
- [extractor] Import
_ALL_CLASSES
lazily
- [extractor] Recognize
src
attribute from HTML5 media elements by Lesmiscore
- [extractor/generic] Revert e6ae51c123897927eb3c9899923d8ffd31c7f85d
- [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_url
s 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 52efa4b31200119adaa8acf33e50b84fcb6948f0
- [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_hook
s
- [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
YoutubeDL
so 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
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
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
- 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
Note: This was constructed from the merge commit messages and may not be entirely accurate