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
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
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
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
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
2024-12-04 12:28:05 +06:00
wukko
0e5914f66c
api/package: bump version 10.4.2
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
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
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
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
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 )
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
2024-11-11 12:23:53 +06:00
wukko
f50bd6339b
api/service-config: add support for loom embed links
2024-11-07 20:53:25 +06:00
jj
5a7635cdf7
api/cookie: write cookies only if from-file cookie was changed
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
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
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()
...
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
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
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
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
jj
4efe6d9350
api/config: disallow JWT_SECRET
s 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