52 Commits

Author SHA1 Message Date
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
wukko
a589bf7e54
api/youtube: fix audio dub track detection 2024-08-25 14:48:46 +06:00
wukko
0bbf822d70
api/youtube: catch token expiration error 2024-08-24 18:34:02 +06:00
wukko
7ac0726f37
api: move error context to matcher 2024-08-24 16:56:07 +06:00
wukko
facf7741ce
api/stream: standardize stream types & clean up related functions 2024-08-22 17:37:31 +06:00
wukko
281ae25d4a
api/youtube: prefer higher quality even if premuxed video is available 2024-08-20 22:27:03 +06:00
wukko
05abf9ad3e
api: update error codes in services, add more error codes where needed 2024-08-20 21:10:37 +06:00
wukko
c1813aa33f
api/stream: rename bridge mode to proxy 2024-08-15 19:58:40 +06:00