Commit Graph

59 Commits

Author SHA1 Message Date
jj
6f6f885723 api/youtube: update Session arguments to match new constructor 2025-04-23 14:02:27 +00:00
wukko
cf17f53405 api/youtube: use the iOS client for <=1080p vp9 videos 2025-03-21 21:29:25 +06:00
wukko
24ce19d09f api/youtube: use both ios & web_embedded client depending on request
this ensures better reliability & reduces rate limiting of either clients
2025-03-20 17:57:02 +06:00
wukko
073b169a93 api: remove code & docs related to youtube oauth
it hasn't been functional for a while, unfortunately
2025-03-19 20:43:31 +06:00
wukko
d1b5983e49 api/youtube: disable HLS if a session server is used 2025-03-19 20:34:56 +06:00
wukko
b6cd0ad727 api: automatically pull youtube session tokens from a session server
if provided, cobalt will pull poToken & visitor_data from an instance of invidious' youtube-trusted-session-generator or its counterpart
2025-03-19 19:54:20 +06:00
wukko
d2d098dbfb api/youtube: use custom innertube client env & decipher for more clients 2025-03-14 08:54:42 +06:00
wukko
2ebe2899be api/youtube: return an appropriate error if a video is locked behind DRM 2025-03-13 13:23:03 +06:00
wukko
b5ba86dd75 api/youtube: return a proper error if the video is "inappropriate" 2025-02-13 17:09:03 +06:00
jj
3f6dd4fced api/youtube: expect errorInfo to not be json 2025-02-08 20:59:53 +00:00
jj
ee3ef60a20 api/youtube: expect one of itags to be empty 2025-01-20 20:12:21 +00:00
jj
19ade7c905 api/youtube: return internal metadata for replaying request 2025-01-20 14:47:09 +00:00
jj
7767a5f5bb api/youtube: add support for pinning client/itag 2025-01-20 14:46:55 +00:00
jj
ec0d773792 api/youtube: use Math.min instead of ternary operator 2025-01-20 12:38:12 +00:00
jj
0378a1ae15 api/youtube: fix error when downloading stuff from WEB 2025-01-20 12:37:36 +00:00
wukko
4d634603e2 api/youtube: fix variable shadowing
oops
2024-12-23 23:34:05 +06:00
wukko
c6d0e0bdd5 api/youtube: use poToken, visitorData, and web client with cookies
and also decipher media whenever needed, but only if cookies are used
2024-12-23 22:58:16 +06:00
jj
9da3ba60a9 api/youtube: add support for cookies 2024-12-23 11:11:48 +00:00
wukko
4b8b0a0e9e api/youtube: don't retrieve the player as cobalt doesn't use it
we don't decipher anything lol
2024-12-10 17:30:32 +06:00
wukko
6770738116 api/create-filename: build & sanitize filenames in one place 2024-11-24 18:12:21 +06:00
wukko
5b445d5c7e api/youtube: catch even more innertube errors 2024-11-23 15:37:42 +06:00
jj
f7dc6cebad all: add space after catch 2024-11-15 12:19:49 +00:00
wukko
3fe2bd3b7c api/youtube: add missing else to adaptive codec fallback 2024-11-13 22:23:45 +06:00
wukko
dec977e34d api/youtube: fix variable shadowing in normalizeQuality 2024-11-13 18:45:18 +06:00
wukko
c88e21d4a8 api/youtube/adaptive: refactor, avoid extra loops, fallback all codecs 2024-11-13 18:41:57 +06:00
wukko
5f1c19d0f1 api/youtube: add no matching format error
this error is returned when cobalt got a response from innertube, but couldn't find a matching combo of video and audio streams. sometimes youtube returns only video or only audio per format combo for whatever reason.
2024-11-13 15:00:09 +06:00
wukko
8b972c7a85 api/youtube: disable hls if user prefers av1 2024-11-13 14:50:13 +06:00
wukko
b6e827c6f9 api/youtube: improve video quality normalization once again 2024-11-13 14:49:51 +06:00
wukko
2c451c69d0 api/youtube: rename quality variable in matchQuality 2024-10-31 21:43:02 +06:00
wukko
3dd6165472 api/youtube: slight refactor of matchQuality 2024-10-31 21:37:11 +06:00
wukko
5470926d52 api/youtube: adjust matched resolution
heights like 714 are now adjusted to 720, so that preferred quality is picked correctly
2024-10-31 21:31:39 +06:00
wukko
da72b9615e api/youtube: use best quality if all else fails 2024-10-31 21:18:34 +06:00
wukko
406ac7613c api/youtube: make sure language exists when checking for hls dubs
oops
2024-10-30 22:55:50 +06:00
wukko
367cab0de4 api/youtube: update hls vp9 container to webm
way better compatibility this way
2024-10-30 17:18:18 +06:00
wukko
e081751c59 api/youtube: fix dubbed audio track matching 2024-10-28 23:05:56 +06:00
wukko
17c020fe22 api/youtube: fix dubbed hls audio marking 2024-10-28 21:38:25 +06:00
wukko
b14c618228 api/youtube: pick a default track for videos with ai dubs 2024-10-28 19:35:08 +06:00
wukko
14ca47b73d api/youtube: make mp3 the best format for hls audio 2024-10-28 18:30:01 +06:00
wukko
866427a7a7 api/youtube: fix local variable overlap 2024-10-28 16:55:44 +06:00
wukko
effec1bfb9 api/youtube: return correct audio url in hls mode
my disappointment in its quality is immeasurable
2024-10-28 16:45:48 +06:00
wukko
fba6ba09c2 api/youtube: add hls codec fallback, update hls error code, refactor
also fixed best audio format
2024-10-28 15:45:18 +06:00
wukko
c9eefc4d55 api/youtube: add an option to use HLS streams
- added `youtubeHLS` variable to api
- added youtube HLS parsing & handling
2024-10-28 15:17:54 +06:00
wukko
7798844755 api/youtube: refactor, fix fallback, don't repeat same actions
fallback to h264 is now done if there's no required media, not only if adaptive formats list is empty.

best audio and best video are now picked only once.
2024-10-28 12:01:38 +06:00
wukko
fb7325f3b2 api/youtube: more refactoring, return audio even if there's no video 2024-10-26 23:53:43 +06:00
wukko
8b15fe7863 api/youtube: check if playability is ok after the status switch 2024-10-26 22:49:16 +06:00
wukko
cfb05282c3 api/youtube: refactor, fallback codecs, don't return premuxed videos 2024-10-23 19:56:59 +06:00
wukko
ae271fd3c6 api/youtube: refactor playability status handling 2024-10-23 18:08:50 +06:00
wukko
a3ee3d9c16 api/youtube: catch one more age limit error 2024-10-23 14:01:10 +06:00
wukko
bf7a48a36c api/youtube: fix youtube music metadata parsing
still pretty crappy tho
2024-09-28 02:01:43 +06:00
wukko
ca538a2e6c api/youtube: use webm container for av1 and opus 2024-09-12 20:07:56 +06:00