Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crypto90 patch 2 #2

Merged
merged 214 commits into from
Jul 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
214 commits
Select commit Hold shift + click to select a range
ac817bc
[build] Migrate `linux_exe` to static musl builds (#9811)
Grub4K Apr 28, 2024
c485365
[ie/wrestleuniverse] Avoid partial stream formats (#9800)
bashonly May 4, 2024
231c2ea
[ie/soundcloud] Extract `genres` (#9821)
bashonly May 4, 2024
cb2fb4a
[ie/crunchyroll] Always make metadata available (#9772)
bashonly May 4, 2024
036e0d9
[ie/patreon] Extract multiple embeds (#9850)
bashonly May 4, 2024
bec9a59
[networking] Add `extensions` attribute to `Response` (#9756)
bashonly May 4, 2024
96da952
[core] Warn if lack of ffmpeg alters format selection (#9805)
seproDev May 4, 2024
351368c
[ie/youporn] Fix extractor (#8827)
The-MAGI May 5, 2024
c8bf48f
[ie/cbc.ca:player] Improve `_VALID_URL` (#9866)
carusocr May 5, 2024
5904853
[ie/crunchyroll] Support browser impersonation (#9857)
bashonly May 5, 2024
145dc6f
[ie/boosty] Add cookies support (#9522)
RasmusAntons May 8, 2024
b38018b
[ie/mixch] Extract comments (#9860)
pzhlkj6612 May 8, 2024
df5c9e7
[ie/vk] Improve format extraction (#9885)
seproDev May 8, 2024
06d52c8
[ie/BilibiliSpaceVideo] Better error message (#9839)
fireattack May 8, 2024
2338827
[ie/bilibili] Fix `--geo-verification-proxy` support (#9817)
fireattack May 8, 2024
c4b87dd
[ie/ZenYandex] Fix extractor (#9813)
src-tinkerer May 8, 2024
6b54ccc
[ie/Qub] Fix extractor (#7019)
alexhuot1 May 8, 2024
73f1211
[ie/netease:program] Improve `--no-playlist` message (#9488)
pzhlkj6612 May 10, 2024
00a9f2e
[ie/canalalpha] Fix extractor (#9675)
kclauhk May 10, 2024
98d71d8
[ie/commonmistakes] Raise error on blob URLs (#9897)
seproDev May 10, 2024
3c7a287
[test] Add HTTP proxy tests (#9578)
coletdjnz May 10, 2024
4cc99d7
[ie/BilibiliSpaceVideo] Fix extraction (#9905)
c-basalt May 10, 2024
0a1a8e3
[ie/nfb] Fix extractors (#9650)
rrgomes May 11, 2024
fc2879e
[ie/alura] Fix extractor (#9658)
hugohaa May 11, 2024
31b417e
[ie/hytale] Use `CloudflareStreamIE` explicitly (#9672)
May 11, 2024
f1f1589
[cookies] Get chrome session cookies with `--cookies-from-browser` (#…
StefanLobbenmeier May 11, 2024
7e4259d
Better warning when requested subs format not found (#9873)
wenbang24 May 11, 2024
800a439
[ie/EuroParlWebstream] Support new URL format (#9647)
voidful May 11, 2024
6db9626
[ie/TV5Monde] Fix extractor (#9143)
alard May 11, 2024
cf212d0
[ie/youtube] Add `mediaconnect` client (#9546)
clienthax May 12, 2024
01395a3
[cleanup] Remove questionable extractors (#9911)
seproDev May 12, 2024
b207d26
[ie/xvideos:quickies] Fix extractor (#9834)
JakeFinley96 May 12, 2024
85ec2a3
[ie/googledrive] Fix formats extraction (#9908)
WyohKnott May 12, 2024
518c1af
[ie/pornhub] Fix login by email address (#9914)
feederbox826 May 13, 2024
351dc0b
[ie/eplus] Handle URLs without videos (#9855)
pzhlkj6612 May 13, 2024
41ba4a8
[ie/tiktok] Extract via mobile API only if `app_info` is passed (#9938)
bashonly May 16, 2024
4813173
[ie/twitter] Support x.com URLs (#9926)
bashonly May 16, 2024
6d8a53d
[ie/cda] Fix age-gated web extraction (#9939)
Podiumnoche May 16, 2024
7975ddf
[ie/bbc] Fix and extend extraction (#9705)
kylegustavo May 17, 2024
61b1743
[ie] Add POST data hash to `--write-pages` filenames (#9879)
minamotorin May 17, 2024
dd9ad97
[cookies] Add `--cookies-from-browser` support for Whale (#9649)
roeniss May 17, 2024
8e15177
[ie/youtube] Fix comments extraction (#9775)
jakeogh May 17, 2024
12d8ea8
[ie/youtube] Remove `android` from default clients (#9553)
coletdjnz May 17, 2024
c999bac
Bugfix for 61b17437dc14a1c7e90ff48a6198df77828c6df4
bashonly May 18, 2024
53b4d44
[test] Fix connect timeout test (#9906)
coletdjnz May 18, 2024
3e35aa3
[ie/twitter] Fix auth for x.com migration (#9952)
bashonly May 18, 2024
c36513f
[rh:requests] Update to `requests` 2.32.0 (#9980)
coletdjnz May 20, 2024
6e36d17
[build] Exclude `requests` from `py2exe` (#9982)
bashonly May 20, 2024
3584b83
[ie/tiktok] Add `device_id` extractor-arg (#9951)
bashonly May 20, 2024
4ccd73f
[ie/tiktok] Extract all web formats (#9960)
bashonly May 20, 2024
3f79995
[rh:requests] Patch support for `requests` 2.32.2+ (#9992)
Grub4K May 22, 2024
78c57cc
[build] `macos` job requires `setuptools<70` (#9993)
bashonly May 22, 2024
eef1e9f
[ie/tiktok] Fix subtitles extraction (#9961)
bashonly May 22, 2024
beaf832
[ie/soundcloud] Add `formats` extractor-arg (#10004)
bashonly May 22, 2024
f281663
[ie/crunchyroll] Fix stream extraction (#10005)
bashonly May 22, 2024
7b56749
[ie/ArteTV] Label forced subtitles (#9945)
vtexier May 22, 2024
296df0d
[ie/Moviepilot] Fix extractor (#9366)
panatexxa May 23, 2024
06cb063
[ie/Instagram] Support `/reels/` URLs (#9539)
amir16yp May 23, 2024
65e709d
[ie/GodResource] Add extractor (#9629)
HobbyistDev May 23, 2024
be7db1a
[ie/NTSLive] Add extractor (#9641)
lostfictions May 23, 2024
0dd53fa
[ie/orf:on] Improve extraction (#9677)
TuxCoder May 23, 2024
5bbfdb7
[ie/HearThisAt] Improve `_VALID_URL` (#9949)
bohwaz May 23, 2024
eead3bb
[ie/brilliantpala] Fix login (#9788)
pzhlkj6612 May 23, 2024
82f4f44
[ie/reddit] Fix subtitles extraction (#10006)
kclauhk May 23, 2024
63b569b
[ie/taptap] Add extractors (#9776)
c-basalt May 23, 2024
3779f2a
[ie/ORFTVthek] Remove extractor (#10011)
seproDev May 23, 2024
90d2da3
[ie/DiscoveryPlus] Fix dmax.de and related extractors (#10020)
bashonly May 25, 2024
c92e4e6
[ie/tele5] Overhaul extractor (#10024)
bashonly May 25, 2024
1463945
[ie/jiocinema] Add extractors (#10026)
bashonly May 25, 2024
0d067e7
[ie/dangalplay] Add extractors (#10021)
bashonly May 25, 2024
3ba8de6
[ie/Piapro] Fix extractor (#9311)
FinnRG May 25, 2024
a2e9031
[ie/XiaoHongShu] Add extractor (#9646)
HobbyistDev May 25, 2024
e897bd8
[misc] Add `hatch`, `ruff`, `pre-commit` and improve dev docs (#7409)
Grub4K May 26, 2024
a4da9db
Update to ytdl-commit-a08f2b7 (#10012)
Grub4K May 26, 2024
96a134d
[ie/youtube] Extract upload timestamp if available (#9856)
coletdjnz May 26, 2024
347f13d
[ie/tiktok:user] Fix extractor (#9661)
bashonly May 26, 2024
119d41f
[ie/tiktok:collection] Add extractor (#9986)
imanoreotwe May 26, 2024
5a2eebc
[ie/LCI] Fix extractor (#10025)
ocococococ May 26, 2024
5c019f6
[misc] Cleanup (#9765)
Grub4K May 26, 2024
ae2af11
[cleanup] Misc
bashonly May 26, 2024
ed274b6
Release 2024.05.26
github-actions[bot] May 26, 2024
26603d0
[ie] Fix parsing of base URL in SMIL manifest (#9225)
seproDev May 26, 2024
ae2194e
[ie/Piksel] Update domain (#9223)
seproDev May 26, 2024
c53c2e4
[ie/tiktok:user] Fix extraction loop (#10035)
bashonly May 27, 2024
5e3e19c
[cleanup] Misc (#10043)
bashonly May 27, 2024
12b248c
[ie/peertube] Support livestreams (#10044)
trueauracoral May 27, 2024
111b61d
Release 2024.05.27
github-actions[bot] May 27, 2024
bef9a9e
[ie/TubiTv] Fix extractor (#9975)
chilinux May 29, 2024
8b46ad4
[ie/orf:on] Support segmented episodes (#10053)
seproDev May 29, 2024
03334d6
[build] Use `macos-12` image for `yt-dlp_macos` (#10063)
bashonly May 30, 2024
5fdd130
[build] Bump Pyinstaller to `>=6.7.0` for all builds (#10069)
bashonly May 30, 2024
2e5a47d
[ie/PatreonCampaign] Fix `campaign_id` extraction (#10070)
bashonly May 30, 2024
db50f19
[rh:requests] Bump minimum `requests` version to 2.32.2 (#10079)
bashonly Jun 1, 2024
add96eb
[cleanup] Add more ruff rules (#10149)
seproDev Jun 11, 2024
46c1b7c
[build] Cache dependencies for `macos` job (#10088)
bashonly Jun 13, 2024
d7d8618
[ie/tubitv:series] Fix extractor (#10116)
bashonly Jun 13, 2024
081708d
[ie/francetv] Fix extractor (#10177)
bashonly Jun 13, 2024
3690c2f
[ie/francetv] Detect and raise errors for DRM (#10165)
bashonly Jun 13, 2024
92a1c4a
[ie/rtvslo.si:show] Add extractor (#8418)
JSubelj Jun 13, 2024
e53e56b
[ie/soundcloud] Fix `download` format extraction (#10125)
bashonly Jun 13, 2024
b8e2a5e
[ie/NHKRadiru] Fix extractor (#10106)
garret1317 Jun 13, 2024
ea88129
[ie/tiktok] Detect and raise when login is required (#10124)
bashonly Jun 13, 2024
a0d9967
[ie/youtube:tab] Fix channel metadata extraction (#10071)
bashonly Jun 13, 2024
4093eb1
[ie/khanacademy] Fix extractors (#9136)
c-basalt Jun 15, 2024
ca8885e
[fd/hls] Apply `extra_param_to_key_url` from info dict
bashonly Jun 3, 2024
5dbac31
[ie/generic] Add `key_query` extractor-arg
bashonly Jun 15, 2024
d6c2c2b
[ie/sproutvideo] Add extractors (#10098)
bashonly Jun 17, 2024
d4b52ce
[ie/podbayfm] Fix extraction (#10195)
bashonly Jun 17, 2024
90c3721
[ie/brightcove] Upgrade requests to HTTPS (#10202)
bashonly Jun 17, 2024
9bd8501
[ie/youtube] Extract all formats from multi-language m3u8s (#9875)
clienthax Jun 20, 2024
7aa322c
[ie/cloudflarestream] Fix `_VALID_URL` and embed extraction (#10215)
bashonly Jun 20, 2024
96472d7
[ie/tiktok] Fix API extraction (#10216)
bashonly Jun 21, 2024
800ec08
[ie/youtube] Skip formats if nsig decoding fails (#10223)
bashonly Jun 21, 2024
8ca1d57
[ie/facebook:reel] Fix extraction (#10232)
bashonly Jun 21, 2024
a852024
[cookies] Fix `--cookies-from-browser` DE detection on Linux (#10237)
peisenwang Jun 22, 2024
f3411af
[ie/matchtv] Fix extractor (#10190)
megumintyan Jun 24, 2024
b758877
[ie/cloudycdn] Fix formats extraction (#10271)
Caesim404 Jun 26, 2024
0953209
[ie/mediasite] Fix extraction (#10273)
bashonly Jun 26, 2024
f2a4ea1
[pp/embedthumbnail] Fix postprocessor (#10248)
Grub4K Jun 27, 2024
7a03f88
[ie/neteasemusic] Extract more formats from new API (#10258)
hafeoz Jun 27, 2024
54a63e8
[test:download] Raise on network errors (#10283)
bashonly Jun 28, 2024
7814c50
[cleanup] Bump ruff to 0.5.x (#10282)
seproDev Jun 29, 2024
5b1a2aa
[ie/bitchute] Fix extractors (#10301)
seproDev Jun 29, 2024
61edf57
[ie/mlbtv] Fix extraction (#10296)
bashonly Jun 29, 2024
61714f4
[ie/jiocinema:series] Fix extraction (#10139)
varunchopra Jun 30, 2024
2a4f2e8
[ie/digitalconcerthall] Rework extractor (#10152)
tippfehlr Jun 30, 2024
e8352ad
[ie/afreecatv] Support browser impersonation (#10174)
hui1601 Jun 30, 2024
054a3ba
[ie/afreecatv:catchstory] Add extractor (#10235)
hui1601 Jun 30, 2024
24f3097
[ie/youtube] Suppress "Unavailable videos are hidden" warning (#10159)
mgedmin Jun 30, 2024
b8da8a9
[ie/laracasts] Add extractors (#10055)
ASertacAkkaya Jul 1, 2024
e6a2283
[ie/orf:on] Allow downloading of video in segments (#10314)
seproDev Jul 1, 2024
36e8dd8
[ie/pokergo] Make metadata extraction non-fatal (#10319)
axpauls Jul 1, 2024
55e3e6f
Add `playlist_channel` and `playlist_channel_id` fields (#10266)
bashonly Jul 1, 2024
1d369b4
[ie/graspop] Add extractor (#10268)
Niluge-KiWi Jul 1, 2024
4f5d7be
[ie/qqmusic] Fix extractors (#9768)
c-basalt Jul 1, 2024
aefede2
[ie/nuum] Fix formats extraction (#10316)
DmitryScaletta Jul 1, 2024
9200bc7
[ie/microsoftembed] Add extractors for dev materials (#9177)
c-basalt Jul 1, 2024
1d6ab17
[ie/bilibili] Support legacy formats (#9117)
c-basalt Jul 1, 2024
d4b99a2
[ie/vimeo] Support browser impersonation (#10327)
bashonly Jul 1, 2024
6aaf96a
[cleanup] Misc (#10075)
bashonly Jul 1, 2024
5ce5824
[core] Disallow unsafe extensions (CVE-2024-38519)
Grub4K Jul 1, 2024
cd68258
Release 2024.07.01
github-actions[bot] Jul 1, 2024
773bbb1
[core] Fix `--compat-opt allow-unsafe-ext` (#10336)
bashonly Jul 2, 2024
d502f4c
[pp/embedthumbnail] Fix embedding with mutagen (#10337)
bashonly Jul 2, 2024
6403530
[ie/murrtube] Fix extractor (#9249)
DrakoCpp Jul 2, 2024
7509791
[ie/banbye] Fix extractor (#10332)
PatrykMis Jul 2, 2024
7799e51
[ie/zaiko] Support JWT video URLs (#10130)
pzhlkj6612 Jul 2, 2024
93d33cb
[cleanup] Misc (#10330)
bashonly Jul 2, 2024
d28aa87
Release 2024.07.02
github-actions[bot] Jul 2, 2024
cc767e9
[core] Fix `--ignore-no-formats-error` (#10345)
bashonly Jul 3, 2024
6075a02
[ie/douyutv] Do not use dangerous javascript source/URL (#10347)
LeSuisse Jul 3, 2024
c1c9bb4
[ie/vimeo] Fix password-protected video extraction (#10341)
bashonly Jul 5, 2024
2a1a1b8
[ie/abematv] Extract availability (#10348)
middlingphys Jul 5, 2024
00766ec
[ie/vidyard] Add extractor (#10155)
exterrestris Jul 5, 2024
2469119
[core] Address gaps in allowed extensions (#10362)
bashonly Jul 5, 2024
4862a29
[ie/chzzk] Extract with API v3 (#10363)
hui1601 Jul 6, 2024
0d174e8
[ie/yle_areena] Fix subtitle extraction (#10379)
Grub4K Jul 7, 2024
4cdc976
[ie/yle_areena] Fix metadata extraction (#10380)
seproDev Jul 7, 2024
987a1f9
[ie/vtv] Add extractors (#10173)
DinhHuy2010 Jul 7, 2024
f0f867f
[ie/jiosaavn:playlist] Support featured playlists (#10382)
harbhim Jul 7, 2024
b337d29
[cleanup] Misc (#10383)
bashonly Jul 7, 2024
39bc699
Release 2024.07.07
github-actions[bot] Jul 7, 2024
6c056ea
[jsinterp] Implement `Function.prototype` resolving for `call` and `a…
Grub4K Jul 8, 2024
297b0a3
[ie/youtube] Fix JS `n` function name extraction (#10390)
bashonly Jul 8, 2024
4b50b29
[ie/soundcloud] Fix rate-limit handling (#10389)
bashonly Jul 8, 2024
1a6ac54
Release 2024.07.08
github-actions[bot] Jul 8, 2024
0b570f2
[core] Do not alter default format selection when simulated (#9862)
seproDev Jul 8, 2024
7ead733
[ie/youtube] Remove broken `n` function extraction fallback (#10396)
seproDev Jul 9, 2024
bbf84bf
Release 2024.07.09
github-actions[bot] Jul 9, 2024
04e17ba
[ie/youtube] Invalidate nsig cache from < 2024.07.09 (#10401)
bashonly Jul 9, 2024
d2189d3
[ie/tiktok:live] Fix room ID extraction (#10408)
mokrueger Jul 9, 2024
42bfca0
[rh:curl_cffi] Support `curl_cffi` 0.7.X
coletdjnz Jul 8, 2024
4521f30
[build] Include `curl_cffi` in `yt-dlp_linux`
bashonly Jul 3, 2024
4f84488
[build] Include `curl_cffi` in `yt-dlp_x86.exe`
bashonly Jul 3, 2024
9b95a67
[ie/tv5monde] Support browser impersonation (#10417)
bashonly Jul 10, 2024
705f5b8
[ie/box] Support enterprise URLs (#10419)
seproDev Jul 10, 2024
cc1a309
[ie/tv5monde] Fix impersonation (Bugfix for 9b95a6765a5f6325af99c4aca…
bashonly Jul 11, 2024
ac30941
[build] Pin `curl-cffi` to 0.5.10 for Windows
bashonly Jul 11, 2024
644d84d
Revert 4f8448896e6a664956ec2aa3d9fe932a931fb711
bashonly Jul 11, 2024
8b8b442
[ie/youtube] Avoid poToken experiment player responses (#10456)
seproDev Jul 13, 2024
150ecc4
[networking] Add `legacy_ssl` request extension (#10448)
coletdjnz Jul 13, 2024
bacd18b
[ie/picarto] Fix extractors (#10414)
Frankgoji Jul 14, 2024
4cd4146
[ie/afreecatv] Fix login and use `legacy_ssl` (#10440)
bashonly Jul 14, 2024
8531d2b
[ie/EpidemicSound] Support sound effects URLs (#10436)
iancmy Jul 14, 2024
959b7a3
[ie/adn] Adjust for .com domain change (#10399)
infanf Jul 14, 2024
16da8ef
[ie/youtube] Fix initial player response usage (Bugfix for 8b8b442cb0…
seproDev Jul 14, 2024
b9afb99
[ie/generic] Fix direct video link extensions (#10468)
bashonly Jul 14, 2024
22870b8
[ie/soundcloud:user:permalink] Extract tracks only (#10463)
DunnesH Jul 14, 2024
b85eef0
[ie/youtube] Reduce android client priority (#10467)
seproDev Jul 14, 2024
cc0070f
[utils] `parse_codecs`: Fix parsing of mixed case codec strings
bashonly Jul 14, 2024
e62fa6b
[ie/digitalconcerthall] Extract HEVC and FLAC formats (#10470)
bashonly Jul 14, 2024
39e6c4c
[ie/dplay] Fix extractors (#10471)
bashonly Jul 15, 2024
66ce3d7
[core] Fix `noprogress` if `test=True` with `--quiet` and `--verbose`…
Grub4K Jul 16, 2024
d9cbced
[core] Support `auto-tty` and `no_color-tty` for `--color` (#10453)
Grub4K Jul 16, 2024
ed1b9ed
[update] Fix network error handling (#10486)
bashonly Jul 16, 2024
89a161e
[cleanup] Misc (#10487)
bashonly Jul 16, 2024
37c2335
Release 2024.07.16
github-actions[bot] Jul 16, 2024
e046db8
[build] Pin `setuptools` version (#10493)
bashonly Jul 18, 2024
a3bab47
[ie/abematv] Adapt key retrieval to request handler framework (#10491)
bashonly Jul 18, 2024
713b4cd
[ie/youtube] Fix `n` function name extraction for player `3400486c` (…
bashonly Jul 23, 2024
2f97779
[ie/tiktok] Fix and deprioritize JSON subtitles (#10516)
bashonly Jul 23, 2024
a0a1bc3
[ie/vimeo] Fix chapters extraction (#10544)
bashonly Jul 23, 2024
1a34a80
[ie/facebook] Fix extraction (#10531)
bashonly Jul 23, 2024
f099339
[ie/mlbtv] Fix extractor (#10515)
bashonly Jul 24, 2024
6b1e430
Release 2024.07.25
github-actions[bot] Jul 25, 2024
0b77286
[ie/DiscoveryPlus] Support olympics URLs (#10566)
bashonly Jul 25, 2024
28d4857
[ie/tva] Fix extractor (#10567)
bashonly Jul 25, 2024
6daf2c2
[utils] `unified_timestamp`: Recognize Sunday (#10589)
bashonly Jul 29, 2024
ef36d51
[ie/abematv] Fix availability extraction (#10569)
middlingphys Jul 29, 2024
2b6df93
[ie/vimeo:review] Fix password-protected video extraction (#10598)
bashonly Jul 29, 2024
94a1c5e
[ie/cbc.ca:player] Fix extractor (#10302)
trainman261 Jul 29, 2024
fe15d31
[ie/learningonscreen] Add extractor (#10590)
bashonly Jul 30, 2024
2bdc73b
Update youtube.py
Crypto90 Jul 30, 2024
e14c43d
Merge branch 'yt-dlp:master' into Crypto90-patch-2
Crypto90 Jul 30, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 0 additions & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ Fixes #
### Before submitting a *pull request* make sure you have:
- [ ] At least skimmed through [contributing guidelines](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#developer-instructions) including [yt-dlp coding conventions](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#yt-dlp-coding-conventions)
- [ ] [Searched](https://github.com/yt-dlp/yt-dlp/search?q=is%3Apr&type=Issues) the bugtracker for similar pull requests
- [ ] Checked the code with [flake8](https://pypi.python.org/pypi/flake8) and [ran relevant tests](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#developer-instructions)

### In order to be accepted and merged into yt-dlp each piece of code must be in public domain or released under [Unlicense](http://unlicense.org/). Check all of the following options that apply:
- [ ] I am the original author of this code and I am willing to release it under [Unlicense](http://unlicense.org/)
Expand Down
191 changes: 125 additions & 66 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ on:
unix:
default: true
type: boolean
linux_static:
default: true
type: boolean
linux_arm:
default: true
type: boolean
Expand All @@ -27,9 +30,6 @@ on:
windows32:
default: true
type: boolean
meta_files:
default: true
type: boolean
origin:
required: false
default: ''
Expand All @@ -52,7 +52,11 @@ on:
default: stable
type: string
unix:
description: yt-dlp, yt-dlp.tar.gz, yt-dlp_linux, yt-dlp_linux.zip
description: yt-dlp, yt-dlp.tar.gz
default: true
type: boolean
linux_static:
description: yt-dlp_linux
default: true
type: boolean
linux_arm:
Expand All @@ -75,10 +79,6 @@ on:
description: yt-dlp_x86.exe
default: true
type: boolean
meta_files:
description: SHA2-256SUMS, SHA2-512SUMS, _update_spec
default: true
type: boolean
origin:
description: Origin
required: false
Expand Down Expand Up @@ -112,27 +112,9 @@ jobs:
- uses: actions/setup-python@v5
with:
python-version: "3.10"
- uses: conda-incubator/setup-miniconda@v3
with:
miniforge-variant: Mambaforge
use-mamba: true
channels: conda-forge
auto-update-conda: true
activate-environment: ""
auto-activate-base: false
- name: Install Requirements
run: |
sudo apt -y install zip pandoc man sed
cat > ./requirements.txt << EOF
python=3.10.*
pyinstaller
brotli-python
EOF
python devscripts/install_deps.py --print \
--exclude brotli --exclude brotlicffi \
--include secretstorage >> ./requirements.txt
mamba create -n build --file ./requirements.txt

- name: Prepare
run: |
python devscripts/update-version.py -c "${{ inputs.channel }}" -r "${{ needs.process.outputs.origin }}" "${{ inputs.version }}"
Expand All @@ -141,39 +123,55 @@ jobs:
- name: Build Unix platform-independent binary
run: |
make all tar
- name: Build Unix standalone binary
shell: bash -l {0}
run: |
unset LD_LIBRARY_PATH # Harmful; set by setup-python
conda activate build
python -m bundle.pyinstaller --onedir
(cd ./dist/yt-dlp_linux && zip -r ../yt-dlp_linux.zip .)
python -m bundle.pyinstaller
mv ./dist/yt-dlp_linux ./yt-dlp_linux
mv ./dist/yt-dlp_linux.zip ./yt-dlp_linux.zip

- name: Verify --update-to
if: vars.UPDATE_TO_VERIFICATION
run: |
binaries=("yt-dlp" "yt-dlp_linux")
for binary in "${binaries[@]}"; do
chmod +x ./${binary}
cp ./${binary} ./${binary}_downgraded
version="$(./${binary} --version)"
./${binary}_downgraded -v --update-to yt-dlp/yt-dlp@2023.03.04
downgraded_version="$(./${binary}_downgraded --version)"
[[ "$version" != "$downgraded_version" ]]
done

chmod +x ./yt-dlp
cp ./yt-dlp ./yt-dlp_downgraded
version="$(./yt-dlp --version)"
./yt-dlp_downgraded -v --update-to yt-dlp/yt-dlp@2023.03.04
downgraded_version="$(./yt-dlp_downgraded --version)"
[[ "$version" != "$downgraded_version" ]]
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: build-bin-${{ github.job }}
path: |
yt-dlp
yt-dlp.tar.gz
yt-dlp_linux
yt-dlp_linux.zip
compression-level: 0

linux_static:
needs: process
if: inputs.linux_static
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build static executable
env:
channel: ${{ inputs.channel }}
origin: ${{ needs.process.outputs.origin }}
version: ${{ inputs.version }}
run: |
mkdir ~/build
cd bundle/docker
docker compose up --build static
sudo chown "${USER}:docker" ~/build/yt-dlp_linux
- name: Verify --update-to
if: vars.UPDATE_TO_VERIFICATION
run: |
chmod +x ~/build/yt-dlp_linux
cp ~/build/yt-dlp_linux ~/build/yt-dlp_linux_downgraded
version="$(~/build/yt-dlp_linux --version)"
~/build/yt-dlp_linux_downgraded -v --update-to yt-dlp/yt-dlp@2023.03.04
downgraded_version="$(~/build/yt-dlp_linux_downgraded --version)"
[[ "$version" != "$downgraded_version" ]]
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: build-bin-${{ github.job }}
path: |
~/build/yt-dlp_linux
compression-level: 0

linux_arm:
Expand Down Expand Up @@ -239,41 +237,71 @@ jobs:
macos:
needs: process
if: inputs.macos
runs-on: macos-11
permissions:
contents: read
actions: write # For cleaning up cache
runs-on: macos-12

steps:
- uses: actions/checkout@v4
# NB: Building universal2 does not work with python from actions/setup-python

- name: Restore cached requirements
id: restore-cache
uses: actions/cache/restore@v4
env:
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 1
with:
path: |
~/yt-dlp-build-venv
key: cache-reqs-${{ github.job }}

- name: Install Requirements
run: |
brew install coreutils
python3 devscripts/install_deps.py --user -o --include build
python3 -m venv ~/yt-dlp-build-venv
source ~/yt-dlp-build-venv/bin/activate
python3 devscripts/install_deps.py -o --include build
python3 devscripts/install_deps.py --print --include pyinstaller > requirements.txt
# We need to ignore wheels otherwise we break universal2 builds
python3 -m pip install -U --user --no-binary :all: -r requirements.txt
python3 -m pip install -U --no-binary :all: -r requirements.txt
# We need to fuse our own universal2 wheels for curl_cffi
python3 -m pip install -U --user delocate
python3 -m pip install -U delocate
mkdir curl_cffi_whls curl_cffi_universal2
python3 devscripts/install_deps.py --print -o --include curl-cffi > requirements.txt
for platform in "macosx_11_0_arm64" "macosx_11_0_x86_64"; do
python3 -m pip download \
--only-binary=:all: \
--platform "${platform}" \
--pre -d curl_cffi_whls \
-d curl_cffi_whls \
-r requirements.txt
done
( # Overwrite x86_64-only libs with fat/universal2 libs or else Pyinstaller will do the opposite
# See https://github.com/yt-dlp/yt-dlp/pull/10069
cd curl_cffi_whls
mkdir -p curl_cffi/.dylibs
python_libdir=$(python3 -c 'import sys; from pathlib import Path; print(Path(sys.path[1]).parent)')
for dylib in lib{ssl,crypto}.3.dylib; do
cp "${python_libdir}/${dylib}" "curl_cffi/.dylibs/${dylib}"
for wheel in curl_cffi*macos*x86_64.whl; do
zip "${wheel}" "curl_cffi/.dylibs/${dylib}"
done
done
)
python3 -m delocate.cmd.delocate_fuse curl_cffi_whls/curl_cffi*.whl -w curl_cffi_universal2
python3 -m delocate.cmd.delocate_fuse curl_cffi_whls/cffi*.whl -w curl_cffi_universal2
cd curl_cffi_universal2
for wheel in *cffi*.whl; do mv -n -- "${wheel}" "${wheel/x86_64/universal2}"; done
python3 -m pip install -U --user *cffi*.whl
for wheel in curl_cffi_universal2/*cffi*.whl; do
mv -n -- "${wheel}" "${wheel/x86_64/universal2}"
done
python3 -m pip install --force-reinstall -U curl_cffi_universal2/*cffi*.whl

- name: Prepare
run: |
python3 devscripts/update-version.py -c "${{ inputs.channel }}" -r "${{ needs.process.outputs.origin }}" "${{ inputs.version }}"
python3 devscripts/make_lazy_extractors.py
- name: Build
run: |
source ~/yt-dlp-build-venv/bin/activate
python3 -m bundle.pyinstaller --target-architecture universal2 --onedir
(cd ./dist/yt-dlp_macos && zip -r ../yt-dlp_macos.zip .)
python3 -m bundle.pyinstaller --target-architecture universal2
Expand All @@ -297,6 +325,24 @@ jobs:
dist/yt-dlp_macos.zip
compression-level: 0

- name: Cleanup cache
if: steps.restore-cache.outputs.cache-hit == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
cache_key: cache-reqs-${{ github.job }}
repository: ${{ github.repository }}
branch: ${{ github.ref }}
run: |
gh extension install actions/gh-actions-cache
gh actions-cache delete "${cache_key}" -R "${repository}" -B "${branch}" --confirm

- name: Cache requirements
uses: actions/cache/save@v4
with:
path: |
~/yt-dlp-build-venv
key: cache-reqs-${{ github.job }}

macos_legacy:
needs: process
if: inputs.macos_legacy
Expand All @@ -313,7 +359,7 @@ jobs:
# Hack to get the latest patch version. Uncomment if needed
#brew install python@3.10
#export PYTHON_VERSION=$( $(brew --prefix)/opt/python@3.10/bin/python3 --version | cut -d ' ' -f 2 )
curl https://www.python.org/ftp/python/${PYTHON_VERSION}/python-${PYTHON_VERSION}-macos11.pkg -o "python.pkg"
curl "https://www.python.org/ftp/python/${PYTHON_VERSION}/python-${PYTHON_VERSION}-macos11.pkg" -o "python.pkg"
sudo installer -pkg python.pkg -target /
python3 --version
- name: Install Requirements
Expand Down Expand Up @@ -362,21 +408,29 @@ jobs:
- name: Install Requirements
run: | # Custom pyinstaller built with https://github.com/yt-dlp/pyinstaller-builds
python devscripts/install_deps.py -o --include build
python devscripts/install_deps.py --include py2exe --include curl-cffi
python -m pip install -U "https://yt-dlp.github.io/Pyinstaller-Builds/x86_64/pyinstaller-5.8.0-py3-none-any.whl"
python devscripts/install_deps.py --include curl-cffi
python -m pip install -U "https://yt-dlp.github.io/Pyinstaller-Builds/x86_64/pyinstaller-6.7.0-py3-none-any.whl"

- name: Prepare
run: |
python devscripts/update-version.py -c "${{ inputs.channel }}" -r "${{ needs.process.outputs.origin }}" "${{ inputs.version }}"
python devscripts/make_lazy_extractors.py
- name: Build
run: |
python -m bundle.py2exe
Move-Item ./dist/yt-dlp.exe ./dist/yt-dlp_min.exe
python -m bundle.pyinstaller
python -m bundle.pyinstaller --onedir
Move-Item ./dist/yt-dlp.exe ./dist/yt-dlp_real.exe
Compress-Archive -Path ./dist/yt-dlp/* -DestinationPath ./dist/yt-dlp_win.zip

- name: Install Requirements (py2exe)
run: |
python devscripts/install_deps.py --include py2exe
- name: Build (py2exe)
run: |
python -m bundle.py2exe
Move-Item ./dist/yt-dlp.exe ./dist/yt-dlp_min.exe
Move-Item ./dist/yt-dlp_real.exe ./dist/yt-dlp.exe

- name: Verify --update-to
if: vars.UPDATE_TO_VERIFICATION
run: |
Expand Down Expand Up @@ -415,7 +469,7 @@ jobs:
run: |
python devscripts/install_deps.py -o --include build
python devscripts/install_deps.py
python -m pip install -U "https://yt-dlp.github.io/Pyinstaller-Builds/i686/pyinstaller-5.8.0-py3-none-any.whl"
python -m pip install -U "https://yt-dlp.github.io/Pyinstaller-Builds/i686/pyinstaller-6.7.0-py3-none-any.whl"

- name: Prepare
run: |
Expand Down Expand Up @@ -447,10 +501,11 @@ jobs:
compression-level: 0

meta_files:
if: inputs.meta_files && always() && !cancelled()
if: always() && !cancelled()
needs:
- process
- unix
- linux_static
- linux_arm
- macos
- macos_legacy
Expand All @@ -468,8 +523,12 @@ jobs:
run: |
cd ./artifact/
# make sure SHA sums are also printed to stdout
sha256sum * | tee ../SHA2-256SUMS
sha512sum * | tee ../SHA2-512SUMS
sha256sum -- * | tee ../SHA2-256SUMS
sha512sum -- * | tee ../SHA2-512SUMS
# also print as permanent annotations to the summary page
while read -r shasum; do
echo "::notice title=${shasum##* }::sha256: ${shasum% *}"
done < ../SHA2-256SUMS

- name: Make Update spec
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
with:
python-version: ${{ matrix.python-version }}
- name: Install test requirements
run: python3 ./devscripts/install_deps.py --include dev --include curl-cffi
run: python3 ./devscripts/install_deps.py --include test --include curl-cffi
- name: Run tests
continue-on-error: False
run: |
Expand Down
16 changes: 9 additions & 7 deletions .github/workflows/quick-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,23 +15,25 @@ jobs:
with:
python-version: '3.8'
- name: Install test requirements
run: python3 ./devscripts/install_deps.py --include dev
run: python3 ./devscripts/install_deps.py --include test
- name: Run tests
run: |
python3 -m yt_dlp -v || true
python3 ./devscripts/run_tests.py core
flake8:
name: Linter
check:
name: Code check
if: "!contains(github.event.head_commit.message, 'ci skip all')"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.8'
- name: Install flake8
run: python3 ./devscripts/install_deps.py -o --include dev
- name: Install dev dependencies
run: python3 ./devscripts/install_deps.py -o --include static-analysis
- name: Make lazy extractors
run: python3 ./devscripts/make_lazy_extractors.py
- name: Run flake8
run: flake8 .
- name: Run ruff
run: ruff check --output-format github .
- name: Run autopep8
run: autopep8 --diff .
3 changes: 2 additions & 1 deletion .github/workflows/release-master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ jobs:
source: master
permissions:
contents: write
packages: write
packages: write # For package cache
actions: write # For cleaning up cache
id-token: write # mandatory for trusted publishing
secrets: inherit
Loading