Commit Graph

517 Commits

Author SHA1 Message Date
wukko
7f7281d794
api/package: bump version to 10.5 2024-12-23 23:21:44 +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
Some checks are pending
Run tests / web sanity check (push) Waiting to run
Run tests / api sanity check (push) Waiting to run
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
2024-12-23 11:11:48 +00:00
jj
537d1e8b61
api: bump version to 10.4.7 2024-12-22 14:10:31 +00:00
jj
1ed7e74773
api/match-action: pass isHLS when muting audio
fixes a bug where HLS status would be ignored if a muted video
was downloaded with HLS enabled
2024-12-22 14:09:16 +00:00
jj
52b7f9523f
api/stream: remove content-length estimation from proxy()
Some checks failed
Run tests / api sanity check (push) Has been cancelled
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 service tests / test service: ${{ matrix.service }} (push) Has been cancelled
2024-12-20 16:35:40 +00:00
jj
78d0670f50
api/stream: stfu deepsource 2024-12-17 12:20:17 +00:00
jj
06c348126e
api/stream: remove random undici import
wtf
2024-12-17 12:16:04 +00:00
jj
fec07d0e10
api: add cors headers for tunnels 2024-12-16 17:45:02 +00:00
jj
f5b47a2b7e
api/tunnel: adjust estimate multiplier to 1.1 2024-12-16 17:42:39 +00:00
jj
6e6a792984
api/bilibili: mark tunnel as isHLS where appropriate 2024-12-16 17:41:38 +00:00
jj
05e0f031ed
api/stream: add Estimated-Content-Length header to tunnels
present where Content-Length cannot be accurately calculated,
pure proxy streams do not have this header and instead have
the accurate Content-Length one.
2024-12-16 17:07:30 +00:00
jj
11388cb418
api/stream: await all call types 2024-12-16 16:21:38 +00:00
jj
bf4675a5e3
api/stream: move bsky override into isHlsResponse 2024-12-16 11:29:13 +00:00
jj
bc597c817f
api: move itunnel handlers to separate file 2024-12-16 10:38:31 +00:00
jj
f06aa65801
api: always create separate server for itunnels 2024-12-16 10:19:15 +00:00
jj
e7c2872e40
api/stream: rename getInternalStream to getInternalTunnel 2024-12-16 10:16:48 +00:00
wukko
2e4b76de6e
api/package: bump version to 10.4.6 2024-12-16 00:04:58 +06:00
jj
459b2c8283
api/internal-hls: don't remake chunk istreams if already wrapped 2024-12-15 17:59:47 +00:00
wukko
86a67dee83
api/package: bump version to 10.4.5
Some checks failed
Run tests / web sanity check (push) Has been cancelled
Run tests / api sanity check (push) Has been cancelled
Run service tests / test service functionality (push) Has been cancelled
Run tests / check lockfile correctness (push) Has been cancelled
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Has been cancelled
Run service tests / test service: ${{ matrix.service }} (push) Has been cancelled
2024-12-13 16:03:32 +06:00
wukko
3dafdd825a
api/types/proxy: use default dispatcher instead of a global one
this function never gets anything but internal streams, so global proxy (`API_EXTERNAL_PROXY`) is only causing issues here. this commit fixes an issue of cobalt attempting to proxy internal streams, and failing spectacularly.
2024-12-13 16:01:16 +06:00
wukko
5973d70053
api/package: bump version to 10.4.4 & update youtube.js
Some checks failed
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
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Has been cancelled
2024-12-12 23:03:00 +06:00
wukko
112866096c
api/url: return a diff error when youtube is disabled on main instance 2024-12-12 23:00:49 +06:00
wukko
e041e376c7
api & web: bump dependencies
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-12-10 19:55:43 +06: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
e1b84e7472
api/package: bump version to 10.4.3
Some checks failed
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
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Has been cancelled
Run service tests / test service functionality (push) Has been cancelled
Run service tests / test service: ${{ matrix.service }} (push) Has been cancelled
2024-12-05 00:27:53 +06:00
jj
6f0a8196ff
api/istream: remove icy-metadata header if sent by client 2024-12-04 18:25:25 +00:00
jj
6c39edbc10
api/stream: use dispatcher if passed to istream 2024-12-04 18:17:13 +00:00
wukko
6ca377ded6
api/tiktok: catch unavailable post error
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-12-04 12:28:05 +06:00
wukko
0e5914f66c
api/package: bump version 10.4.2
Some checks failed
Run service tests / test service functionality (push) Has been cancelled
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (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-28 17:53:35 +06:00
wukko
15a0ba30c7
api/tests/vk: add new domain test 2024-11-28 17:32:41 +06:00
wukko
4700682ccb
api/vk: refactor quality picking 2024-11-28 17:32:10 +06:00
wukko
f696335278
api/vk: use proper api, add support for more links, refactor
also added support for video access keys
2024-11-28 16:01:26 +06:00
wukko
50344eda17
api/match-action: proper error code for unsupported audio extraction 2024-11-28 15:48:18 +06:00
wukko
eee9beef91
api/create-filename: don't require author for pretty title 2024-11-28 15:47:30 +06:00
jj
55c97f77b8
api/cookie: reformat console.error in getCookie
Some checks failed
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
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Has been cancelled
Run service tests / test service functionality (push) Has been cancelled
Run service tests / test service: ${{ matrix.service }} (push) Has been cancelled
2024-11-26 14:24:54 +00:00
jj
58edad553e
api/cookie: replace name exception with console log
much easier to debug when writing a service
2024-11-26 14:05:13 +00:00
jj
fbacb94495
api/cookie: do not recreate interval if it already exists 2024-11-26 14:02:16 +00:00
jj
a4cb6ada79
api/cookie: split initial load into separate function 2024-11-26 14:01:36 +00:00
jj
20074a5091
api/cookie: rephrase non-string warning 2024-11-26 13:55:18 +00:00
jj
00ac025235
api/cookie: warn if writing updated cookies fails 2024-11-26 13:52:20 +00:00
jj
3d95361c09
api/cookie: validate cookie file format 2024-11-26 13:51:49 +00:00
jj
31d65c9fb7
api/cookie: validate service names for cookies 2024-11-26 13:44:51 +00:00
wukko
d4bcb1ba61
api/service-config: add new domains for vk 2024-11-26 18:21:44 +06:00
wukko
e2f0123418
api/tests/tiktok: add an age restricted video test 2024-11-24 19:26:59 +06:00
wukko
a1fa79f2f5
api/tikok: catch an age restriction error 2024-11-24 19:26:44 +06:00
wukko
2433681d8b
api/package: bump version to 10.4.1 2024-11-24 19:08:40 +06:00
wukko
8a24dbb42d
api/match-action: fix audio in tiktok picker
it didn't have an audio format in the filename, so it either failed or downloaded without an extension.

closes #870
2024-11-24 19:02:10 +06:00
wukko
cdd349cfb6
api/tests/rutube: add a region locked video test 2024-11-24 18:44:07 +06:00
wukko
6039eae6a3
api/rutube: catch a region lock error
closes #930
2024-11-24 18:43:50 +06:00
wukko
9b0e4ab0bd
api/tests/soundcloud: add tests for region locked and paid songs 2024-11-24 18:35:32 +06:00
wukko
43c3294230
api/soundcloud: catch region locked and paid songs and show an error 2024-11-24 18:35:07 +06:00
wukko
eb52ab2be8
api/vimeo: return accidentally remove merge function 2024-11-24 18:19:56 +06:00
wukko
1cbffc2d75
api/stream/types: convert metadata in one place
also sanitize values & throw an error if tag isn't supported
2024-11-24 18:13:22 +06:00
wukko
6770738116
api/create-filename: build & sanitize filenames in one place 2024-11-24 18:12:21 +06:00
wukko
407c27ed86
api/utils: rename metadata converter function 2024-11-24 14:55:46 +06:00
wukko
6a430545d2
api/utils/cleanString: add more forbidden chars 2024-11-24 14:55:10 +06:00
wukko
6bb412852d
api/package: bump version to 10.4
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-24 00:37:52 +06:00
wukko
ff9e248e4f
api/util/test: add twitter to finnicky list
they seemingly blocked ips of github workers
2024-11-23 15:42:47 +06:00
wukko
5b445d5c7e
api/youtube: catch even more innertube errors 2024-11-23 15:37:42 +06:00
jj
b31c126cec
api/instagram: fix module not using graphql api 2024-11-18 17:34:48 +00:00
wukko
26e051fcd8
api/package: bump version to 10.3.3
Some checks failed
Run tests / web sanity check (push) Has been cancelled
Run tests / api sanity check (push) Has been cancelled
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 service tests / test service: ${{ matrix.service }} (push) Has been cancelled
2024-11-16 22:29:32 +06:00
wukko
606f0fd29a
api/stream/internal: workaround for wrong bsky content-type, refactor 2024-11-16 22:15:13 +06:00
wukko
b61b8c82a2
api/bluesky: use hls video cdn directly 2024-11-16 21:57:14 +06:00
wukko
09c66fead0
api/package: bump version to 10.3.2
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-11-15 20:35:06 +06:00
wukko
3de3e9e158
api: remove support for vine cuz the archive is dead
masterful gambit elon musk
2024-11-15 18:29:21 +06:00
jj
f7dc6cebad
all: add space after catch 2024-11-15 12:19:49 +00:00
jj
4c006b2291
api/test: add vk to finnicky services 2024-11-15 12:11:29 +00:00
jj
cf40f0542f
api/test: make deepsource happy 2024-11-13 17:27:26 +00:00
jj
f6bffe543c
api/test: replace test.js with test-ci.js 2024-11-13 17:26:15 +00:00
jj
91e8ef8ab4
api/test-ci: add functionality for running all tests 2024-11-13 17:26:15 +00:00
jj
aaf7077364
api/test: split up tests into individual files 2024-11-13 17:26:15 +00:00
KwiatekMiki
0e09bf9895
api/service-config: recognize facebook's mobile subdomain (#891)
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-13 22:35:45 +06:00
wukko
3fe2bd3b7c
api/youtube: add missing else to adaptive codec fallback 2024-11-13 22:23:45 +06:00
wukko
225a721805
api/tests: allow vk tests to fail 2024-11-13 18:48:36 +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
8fc9ca2916
api/bluesky: add a dispatcher & update unknown error message
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-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 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
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Has been cancelled
Run service tests / test service: ${{ matrix.service }} (push) Has been cancelled
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 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-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 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 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 functionality (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
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-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 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
closes #797
2024-10-08 16:09:08 +06:00
KwiatekMiki
1b48a2218c api/setup: use pnpm instead of npm 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
dumbmoron
034f7ebe4a
api/core: extract rate limit response to function 2024-10-04 16:58:15 +00:00
dumbmoron
741dfd40f5
api/security: implement api keys as method of authentication 2024-10-04 14:58:56 +00:00
lath
c2d7e1df12
api/config: add configuration for streamLifespan (#792) 2024-10-03 12:27:28 +06:00
KwiatekMiki
b3137ad9ac
feat/api: add support for twitter bookmark links (#706)
* feat: add support for twitter bookmark links

* feat: add tests for bookmark twitter links
2024-10-03 12:26:38 +06:00
wukko
bf7a48a36c
api/youtube: fix youtube music metadata parsing
still pretty crappy tho
2024-09-28 02:01:43 +06:00
wukko
2a42ed38b6
repo: merge new commits from main into develop 2024-09-23 20:27:32 +06:00
dumbmoron
f83537a73e
tests/bsky: fix tests & use dids instead of usernames 2024-09-21 13:24:40 +00:00
dumbmoron
8ae48fa524
api: allow colons (:) in url paths 2024-09-21 13:24:39 +00:00
dumbmoron
d560c0d34a
api: return correct extension for gif downloads in api response 2024-09-18 18:03:04 +00:00
wukko
a6b940e6c9
api/package: bump version to 10.1.0 2024-09-18 21:24:24 +06:00
wukko
0cc18b488c
api/core: return public turnstile sitekey in server info 2024-09-17 22:40:07 +06:00
dumbmoron
29f967a3ec
api: fix accept & content-type validation when not using authentication 2024-09-17 15:37:21 +00:00
GuriZenit
99937f61f6 api/setup: fix wrong misc path 2024-09-16 11:05:04 +06:00
wukko
5facbc9657
api/tests/bluesky: update deleted post test 2024-09-13 23:28:14 +06:00
wukko
a2414682c7
api/tests: update bluesky tests 2024-09-13 09:55:06 +06:00
wukko
a1feadb917
api/bluesky: add support for recordWithMedia embed type
& catch various api errors
2024-09-13 09:54:05 +06:00
wukko
ca538a2e6c
api/youtube: use webm container for av1 and opus 2024-09-12 20:07:56 +06:00
wukko
b90a58f4f0
api/tests/twitch: fix expected twitch status 2024-09-12 14:38:36 +06:00
wukko
e768e7f6fa
api/create-filename: don't assign any of potentially blank tags 2024-09-12 14:35:42 +06:00
wukko
80a01494c7
api/match-action: add missing twitch case to redirect group
closes #741
2024-09-12 14:30:21 +06:00
wukko
64173f7a03
api/create-filename: don't push youtubeFormat if it doesn't exist
oops
2024-09-11 22:18:51 +06:00
wukko
0a5405a3b4
api/tests/twitter: update age restricted video test 2024-09-09 22:21:27 +06:00
dumbmoron
a86a96d8ce
docs/api: also link to old docs for now 2024-09-09 15:50:51 +00:00
dumbmoron
99d4f9e8c9
api/README: remove leftover links 2024-09-09 15:45:06 +00:00
dumbmoron
7b06a5047f
repo: split README into subproject READMEs 2024-09-09 15:44:37 +00:00
wukko
ce7633c81a
api: move agpl license into subdir 2024-09-09 21:21:13 +06:00
dumbmoron
15a90e9b11
api/stream: use Map for storing info about internal streams 2024-09-09 14:29:06 +00:00
dumbmoron
57c9836f56
api/core: move ratelimiters before authentication handler 2024-09-09 14:21:19 +00:00
wukko
3317726afe
api/core: rename req and next args to indicate that they're unused 2024-09-09 19:44:40 +06:00
wukko
0aae3fe7f0
api/core: rename err argument to indicate that it's unused 2024-09-09 19:41:44 +06:00
wukko
de5162e417
api/jwt: remove redundant exports 2024-09-09 19:39:07 +06:00
wukko
2dbcdb18f9
api/bluesky: remove redundant await & async 2024-09-09 19:32:17 +06:00
dumbmoron
fba64df118
api/snapchat: fix regex matching to thumbnail 2024-09-09 12:53:46 +00:00
wukko
498e6f4419
api/snapchat: fix spotlight url extraction 2024-09-09 18:40:59 +06:00
wukko
002e70cb89
api/schema: make tiktokFullAudio false by default 2024-09-08 22:03:29 +06:00
dumbmoron
9a504443fd
api/stream: add support for 8kbps option for mp3 downloads 2024-09-07 16:28:34 +00:00
dumbmoron
5af4114c61
api/test: add facebook to finnicky services 2024-09-07 12:29:01 +00:00
dumbmoron
08490c54e4
api: include generated filename in api response 2024-09-07 12:26:43 +00:00
dumbmoron
438fce3c58
api/processing: append audio extension to filename before response 2024-09-07 12:26:43 +00:00
wukko
97866fb306
api/core: update the emoticon in startup message 2024-09-05 07:53:55 +06:00
wukko
fff1c6c7a6
web & api: rename stream to tunnel
- updated the endpoint to /tunnel
- updated status to tunnel
- fixed one incorrectly named error in web
2024-09-05 00:26:48 +06:00
wukko
645542c910
api/bluesky: catch video errors & prevent loading videos not from bsky 2024-09-03 13:24:08 +06:00
dumbmoron
4b4fce326f
test: update match() arguments to new format 2024-09-02 14:18:11 +00:00
wukko
8cee4e58c5
api/match: accept object as single argument
hi im what i do
2024-09-02 08:27:31 +06:00
wukko
93f2a6b226
api/bluesky: add support for saving images
one or multiple, everything works
2024-09-01 16:37:24 +06:00
wukko
d9925f2233
api/core: move friendly name map to server info 2024-09-01 16:02:06 +06:00
wukko
805e5d42c0
api/config: apply friendly name in a map
filter doesn't allow changing the value
2024-09-01 15:56:51 +06:00
wukko
c71ed59660
api/url: return friendly name in unsupported link error 2024-09-01 15:51:35 +06:00
wukko
97fb6e60a2
api/service-alias: refactor 2024-09-01 15:35:49 +06:00
wukko
740a75851e
api: add support for service name aliases
currently only used for bluesky
2024-09-01 15:28:29 +06:00
wukko
57050fb742
api/match-action: fix mute tag assignment for default filename
it's also no longer applied to photos and gifs LMFAOOO
2024-09-01 14:59:35 +06:00
wukko
67073b274d
api/tests: add bluesky tests 2024-09-01 14:41:41 +06:00
wukko
b727a56d67
api/bluesky: catch fetch errors (oops) 2024-09-01 14:39:28 +06:00
wukko
6c9601690b
api: add support for bluesky videos & clean up service patterns 2024-09-01 14:34:44 +06:00
wukko
4478a963c5
api/config: add cobalt user agent 2024-09-01 14:15:16 +06:00
wukko
f3521da9c1
api/stream/remux: convert audio to aac to increase compatibility
only applies to hls exceptions
2024-09-01 14:09:58 +06:00
wukko
ccdcd4cb09
api/url: add missing break to dailymotion case 2024-09-01 12:00:48 +06:00
wukko
f464d87585
api/tiktok: add support for proxying images in a picker 2024-08-31 15:01:09 +06:00
wukko
0852f5dc09
api/snapchat: always proxy picker thumbs & support proxying everything 2024-08-31 14:52:12 +06:00
wukko
892b875e3f
api/reddit: add a filename to returned gifs 2024-08-31 14:27:46 +06:00
wukko
10717c69f6
api/twitter: support proxying videos & images in a picker 2024-08-31 14:23:18 +06:00
wukko
00da2a9339
api/twitter: return a filename for images 2024-08-31 14:19:01 +06:00
wukko
d026eb75a5
api/instagram: add support for proxying everything in a picker 2024-08-31 14:10:03 +06:00
wukko
4476ae0672
api/pinterest: add missing filenames to images & gifs 2024-08-31 14:09:34 +06:00
wukko
a9e65b0da0
api: add an option to always proxy files 2024-08-31 14:07:37 +06:00
dumbmoron
2f63f6bab7
api/proxy: add support for proxying range requests 2024-08-31 07:15:20 +00:00
wukko
d8bacbeeef
api/tests/twitter: allow retweeted video tests to fail 2024-08-30 21:35:29 +06:00
dumbmoron
5cbc91cba9
tests: mark "twitter voice" test as canFail 2024-08-30 08:40:04 +00:00
dumbmoron
97266a46fa
ci: shuffle ciphers before running service tests 2024-08-30 08:30:34 +00:00
wukko
7f8204bc0c
api/core: handle all express errors, not just path parsing (wtf) 2024-08-30 14:25:46 +06:00
wukko
329b068038
api/schema: don't decode the url
this is from the dinosaur era of cobalt and hasn't been used since we moved to POST requests
2024-08-30 14:09:18 +06:00
wukko
3295afdaae
api/create-filename: don't add dub name when it doesn't exist 2024-08-28 00:35:53 +06:00
wukko
a589bf7e54
api/youtube: fix audio dub track detection 2024-08-25 14:48:46 +06:00