Commit graph

290 commits

Author SHA1 Message Date
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 8fc9ca2916
api/bluesky: add a dispatcher & update unknown error message
Some checks are pending
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Waiting to run
Run service tests / test service: ${{ matrix.service }} (push) Blocked by required conditions
Run service tests / test service functionality (push) Waiting to run
Run tests / check lockfile correctness (push) Waiting to run
Run tests / web sanity check (push) Waiting to run
Run tests / api sanity check (push) Waiting to run
2024-11-11 12:23:53 +06:00
wukko f50bd6339b
api/service-config: add support for loom embed links
Some checks failed
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Has been cancelled
Run service tests / test service functionality (push) Has been cancelled
Run tests / check lockfile correctness (push) Has been cancelled
Run tests / web sanity check (push) Has been cancelled
Run tests / api sanity check (push) Has been cancelled
Run service tests / test service: ${{ matrix.service }} (push) Has been cancelled
2024-11-07 20:53:25 +06:00
jj 5a7635cdf7
api/cookie: write cookies only if from-file cookie was changed
Some checks failed
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Waiting to run
Run tests / check lockfile correctness (push) Waiting to run
Run tests / web sanity check (push) Waiting to run
Run tests / api sanity check (push) Waiting to run
Run service tests / test service functionality (push) Has been cancelled
Run service tests / test service: ${{ matrix.service }} (push) Has been cancelled
2024-11-02 18:48:26 +00:00
jj c44a5ecc89
api/cookie: fix cookie.set() being ran only once 2024-11-02 18:46:56 +00:00
wukko ca665c5382
api: replace psl with homegrown & up-to-date fork
finally no more punycode warning
2024-11-02 21:19:19 +06:00
wukko 37517875db
api/package: update dependencies 2024-11-02 20:18:59 +06:00
jj e2b4141fc7
api/memory-store: unref timeout so it doesn't hold up process 2024-11-02 11:33:21 +00:00
wukko ab3af731e7
api/package: bump version to 10.3 2024-11-02 17:19:28 +06:00
jj cba308aabd
api/test-ci: reduce stream lifespan
the streams have picked up smoking
2024-11-02 11:13:04 +00:00
jj 2f89f79b14
api/memory-store: ; 2024-11-02 11:12:39 +00:00
wukko 44e08e8474
api/config: separate error if statements for session & instance count 2024-11-02 16:48:34 +06:00
wukko 541bf04575
api/services: fix createStream calls in pickers
oops
2024-11-02 16:43:36 +06:00
jj 382873dc11
api/core: fix main cluster being unable to handle itunnels 2024-11-02 09:59:48 +00:00
jj 5a66af514e
api: make deepsource happy 2024-11-01 17:24:22 +00:00
jj 90d57ab6ea
api/config: store tunnelPort in env 2024-11-01 17:02:29 +00:00
jj d48cc8fc07
api/cookie: implement cluster synchronization 2024-11-01 16:43:01 +00:00
jj 42ec28a642
api/cookie: update cookies value-by-value in manager 2024-11-01 14:58:04 +00:00
jj f098da870c
api/cookie: pick cookie at random instead of round-robin 2024-11-01 14:55:00 +00:00
jj 1c78dac7ed
api/cluster: implement broadcast helper 2024-11-01 14:49:52 +00:00
jj 2351cf74f4
api/cookie: formatting 2024-11-01 14:05:18 +00:00
jj 48883486fa
api/api-keys: load keys once per cluster 2024-11-01 13:57:53 +00:00
jj 3f505f6520
api: wait for cluster to finish preparing 2024-11-01 13:30:32 +00:00
jj 2317da5ba5
api: add support for redis to ratelimiter cache 2024-11-01 13:26:18 +00:00
jj d466f8a4af
api: upgrade express-rate-limit to v7, reuse key generator 2024-11-01 12:54:16 +00:00
jj 693204b799
api/store: use basic strings instead of hashes for keys 2024-11-01 12:20:01 +00:00
jj 66cb8d360d
api: move hmac secrets to single file 2024-11-01 12:16:53 +00:00
jj 40d6a02b61
api: cluster support
still missing synchronization for some structures
2024-10-31 22:59:06 +00:00
jj 2d6d406f48
api/crypto: use buffers for salt directly instead of hex strings 2024-10-31 22:42:46 +00:00
jj 93e6344fc7
api/stream/manage: make itunnel port configurable
this allows us to bind internal streams to
a specific worker in the future
2024-10-31 22:35:26 +00:00
jj 132255b004
api/stream/manage: use cobalt Store for stream cache 2024-10-31 22:33:32 +00:00
jj 11314fb8d1
api/store: implement has() method 2024-10-30 19:21:45 +00:00
jj 18acad19b9
api: implement redis/memory store for cache 2024-10-30 19:06:46 +00:00
jj 5e92b649a3
api: add API_REDIS_URL env 2024-10-30 18:59:20 +00:00
wukko 2c451c69d0
api/youtube: rename quality variable in matchQuality
Some checks failed
Run service tests / test service functionality (push) Has been cancelled
Run service tests / test service: ${{ matrix.service }} (push) Has been cancelled
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Waiting to run
Run tests / check lockfile correctness (push) Waiting to run
Run tests / web sanity check (push) Waiting to run
Run tests / api sanity check (push) Waiting to run
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 98acea6c58
api: bump version to 10.2.1
Some checks are pending
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Waiting to run
Run service tests / test service functionality (push) Waiting to run
Run service tests / test service: ${{ matrix.service }} (push) Blocked by required conditions
Run tests / check lockfile correctness (push) Waiting to run
Run tests / web sanity check (push) Waiting to run
Run tests / api sanity check (push) Waiting to run
2024-10-31 00:14:26 +06:00
wukko 776c4f4dba
api/stream/manage: don't use clones in node cache 2024-10-30 23:56:14 +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 44f842997e
api & web: bump version to 10.2 2024-10-30 18:29:53 +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 f610058b82
api/stream/types/merge: encode audio to aac or opus if hls
audio is encoded to opus only if it's a youtube hls stream with webm container
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 0b4d703d0f
api/utils: remove unused functions 2024-10-28 19:56:37 +06:00
wukko cdfc91844d
api/schema: update youtubeDubLang to accept all valid language codes 2024-10-28 19:56:18 +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
jj 53e6085095
api/stream: don't override content-length for hls transform 2024-10-28 11:55:15 +00:00
wukko 6b1eadbe09
api/util/tests: add youtube hls tests 2024-10-28 16:59:50 +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 0ddb3e3ecc
api/match-action: add isHLS to audio stream info 2024-10-28 16:45:30 +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 24ae08b105
api/stream: add isHLS to stream cache 2024-10-28 15:15:41 +06:00
wukko a46e04358a
api/match-action: rename isM3U8 to isHLS and u to url 2024-10-28 15:14:36 +06:00
wukko 7c516c0468
api/cookie/manager: pass cookiePath to writeChanges()
Some checks are pending
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Waiting to run
Run service tests / test service functionality (push) Waiting to run
Run service tests / test service: ${{ matrix.service }} (push) Blocked by required conditions
Run tests / check lockfile correctness (push) Waiting to run
Run tests / web sanity check (push) Waiting to run
Run tests / api sanity check (push) Waiting to run
also reordered functions to maintain the hierarchy
2024-10-28 12:08:12 +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
jj 7dc0121031
api: defer file loads until api is running
Some checks are pending
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Waiting to run
Run service tests / test service: ${{ matrix.service }} (push) Blocked by required conditions
Run service tests / test service functionality (push) Waiting to run
Run tests / check lockfile correctness (push) Waiting to run
Run tests / web sanity check (push) Waiting to run
Run tests / api sanity check (push) Waiting to run
2024-10-27 18:12:59 +00:00
jj b434b0b45e
api/cookies: log message to confirm successful file load 2024-10-27 18:12:01 +00:00
jj 5a5a65b373
api/cookies: trigger cookie load from api entrypoint 2024-10-27 18:10:57 +00:00
jj af50852815
api/api-keys: log message to confirm successful file load 2024-10-27 18:00:05 +00:00
jj 5ea23bee13
api/console-text: refactor 2024-10-27 17:52:04 +00:00
KwiatekMiki b22d0efbf1
api/service-patterns: recognize older streamable links (#862) 2024-10-27 18:34:11 +01:00
jj a4e6b49d7f
util/jwt: ensure uniform distribution of characters
Some checks failed
Run tests / check lockfile correctness (push) Waiting to run
Run tests / web sanity check (push) Waiting to run
Run tests / api sanity check (push) Waiting to run
Run service tests / test service functionality (push) Has been cancelled
Run service tests / test service: ${{ matrix.service }} (push) Has been cancelled
2024-10-26 18:28:25 +00:00
jj d8b7a6b559
api/test: remove youtube vp9 test
we fall back to h264 now, so this will always succeed
2024-10-26 18:08:43 +00:00
jj 2ccc210622
api/test: add test for audio download if no video found
tests for bug fixed in fb7325f3b2
2024-10-26 18:07:15 +00:00
wukko fb7325f3b2
api/youtube: more refactoring, return audio even if there's no video
Some checks are pending
Run service tests / test service: ${{ matrix.service }} (push) Blocked by required conditions
Run service tests / test service functionality (push) Waiting to run
Run tests / check lockfile correctness (push) Waiting to run
Run tests / web sanity check (push) Waiting to run
Run tests / api sanity check (push) Waiting to run
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
Some checks failed
Run service tests / test service functionality (push) Has been cancelled
Run tests / check lockfile correctness (push) Has been cancelled
Run tests / web sanity check (push) Has been cancelled
Run tests / api sanity check (push) Has been cancelled
Run service tests / test service: ${{ matrix.service }} (push) Has been cancelled
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
Some checks failed
Run service tests / test service functionality (push) Has been cancelled
Run tests / check lockfile correctness (push) Has been cancelled
Run tests / web sanity check (push) Has been cancelled
Run tests / api sanity check (push) Has been cancelled
Run service tests / test service: ${{ matrix.service }} (push) Has been cancelled
2024-10-23 14:01:10 +06:00
jj 4efe6d9350
api/config: disallow JWT_SECRETs shorter than 16 chars 2024-10-20 14:15:08 +00:00
wukko 16c5450d40
api/cobalt: update api url error message 2024-10-20 19:07:42 +06:00
wukko 9d68247523
api: remove the outdated setup script 2024-10-20 19:06:48 +06:00
wukko 6499d079ef
api/readme: add supported services & acknowledgements 2024-10-20 17:49:37 +06:00
wukko 51adfc85cd
api: update readme 2024-10-20 17:20:38 +06:00
jj c3f3499a42
api/util: add script to generate secure JWT_SECRET 2024-10-20 10:44:13 +00:00
jj f5d09f86db
tests/soundcloud: replace private link 2024-10-20 10:18:51 +00:00
jj d55dddea2e
core/api: normalize bearer authorization 2024-10-20 10:05:34 +00:00
wukko c33017283d
api/twitter: fix gifs having a wrong file extension in a picker
Some checks failed
Run service tests / test service functionality (push) Has been cancelled
Run tests / check lockfile correctness (push) Has been cancelled
Run tests / web sanity check (push) Has been cancelled
Run tests / api sanity check (push) Has been cancelled
Run service tests / test service: ${{ matrix.service }} (push) Has been cancelled
2024-10-13 09:59:52 +06:00
wukko fe1d17ba8d
api/service-patterns: update the tiktok tester 2024-10-12 23:29:19 +06:00
wukko 6ad838b649
api/tiktok: fix url patterns 2024-10-12 22:06:54 +06:00
dumbmoron 7c0fb16fdb
api/keys: fix prefix size calculation for individual ipv6 addresses 2024-10-12 11:24:29 +00:00
wukko 1e26788a1e
api/match-action: add missing ok case to video switch
Some checks failed
Run service tests / test service functionality (push) Has been cancelled
Run tests / check lockfile correctness (push) Has been cancelled
Run tests / web sanity check (push) Has been cancelled
Run tests / api sanity check (push) Has been cancelled
Run service tests / test service: ${{ matrix.service }} (push) Has been cancelled
closes #797
2024-10-08 16:09:08 +06:00
KwiatekMiki 1b48a2218c api/setup: use pnpm instead of npm
Some checks are pending
Run service tests / test service functionality (push) Waiting to run
Run service tests / test service: ${{ matrix.service }} (push) Blocked by required conditions
Run tests / check lockfile correctness (push) Waiting to run
Run tests / web sanity check (push) Waiting to run
Run tests / api sanity check (push) Waiting to run
2024-10-06 16:11:23 +02:00
wukko 3749fb2aa8
repo: update dependencies 2024-10-05 22:09:00 +06:00
dumbmoron cfd54e91d5
security/api-keys: add support for unlimited limit 2024-10-04 17:41:05 +00:00
dumbmoron 9cc6fd13fa
api/core: skip turnstile verification if user authed with api key 2024-10-04 17:37:57 +00:00
dumbmoron 3d7713a942
security/api-keys: clarify error when number is not positive 2024-10-04 17:34:15 +00:00
dumbmoron 81818f8741
api/core: implement authentication with api keys 2024-10-04 16:50:55 +00:00
dumbmoron dcd33803c1
api/core: generate JWT rate limiting key in auth handler 2024-10-04 17:03:57 +00:00
dumbmoron 418602ca87
api/core: add rate limiter for session 2024-10-04 17:02:00 +00:00
dumbmoron 38fcee4a50
api/core: rename tunnel limiter, move to endpoint 2024-10-04 17:00:58 +00:00
dumbmoron f2248d4e9a
api/core: move api limiter after authentication 2024-10-04 16:59:53 +00:00