Commit graph

353 commits

Author SHA1 Message Date
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_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 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
wukko
6dcd951e21
api/create-filename: refactor 2024-08-25 14:48:28 +06:00
wukko
0bbf822d70
api/youtube: catch token expiration error 2024-08-24 18:34:02 +06:00
wukko
856004366e
api/match: fix typo in fetch.critical code 2024-08-24 17:28:43 +06:00
wukko
7478a373fc
api & web: add service context to api.fetch.critical error 2024-08-24 17:24:51 +06:00
wukko
7ac0726f37
api: move error context to matcher 2024-08-24 16:56:07 +06:00
wukko
37efa035a2
api/twitter: update no tweet error code 2024-08-24 16:31:19 +06:00
wukko
7041d61d80
api/core: fix link parsing error handling 2024-08-24 16:13:42 +06:00
wukko
70264f3691
api/core: update server info
- cache server info as string
- serve a list of services & duration limit in server info
2024-08-23 00:33:52 +06:00
wukko
7a557a97c3
api: move service disabling to DISABLED_SERVICES env 2024-08-23 00:16:26 +06:00
wukko
ee375a27cd
api/schema: enable tiktok full audio by default 2024-08-22 23:17:49 +06:00
wukko
a21c9e7632
api/core/api: clean up imports 2024-08-22 23:04:11 +06:00
wukko
102dec4a84
api/match-action: clean up audio action 2024-08-22 22:45:26 +06:00
wukko
ff9efdc471
api & web: update default audio bitrate to be 128kbps 2024-08-22 20:50:21 +06:00
wukko
42ff874c95
api/schema: add 8bkps audio bitrate option 2024-08-22 20:06:54 +06:00
wukko
91fd26e880
api: add audio bitrate functionality 2024-08-22 19:35:17 +06:00
wukko
fb5d68a830
api/instagram: add file name for proxied image thumbs 2024-08-22 18:02:53 +06:00
wukko
76fa1b2b87
api/twitter: add proper file name for proxied thumb 2024-08-22 17:40:44 +06:00
wukko
facf7741ce
api/stream: standardize stream types & clean up related functions 2024-08-22 17:37:31 +06:00
wukko
1064be6a7a
api/twitter: proxy thumbnails 2024-08-22 13:38:16 +06:00
wukko
07dc176024
api/stream/types: fix cross origin resource policy for proxy 2024-08-22 13:38:04 +06:00
wukko
281ae25d4a
api/youtube: prefer higher quality even if premuxed video is available 2024-08-20 22:27:03 +06:00
wukko
555625878e
api/schema: update twitterGif & videoQuality defaults 2024-08-20 22:04:17 +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
c698d272a1
api/jwt: return relative expiration date to accommodate offset clocks 2024-08-19 22:25:21 +06:00
wukko
1f3509db07
api: update error codes in api core functions 2024-08-19 21:51:45 +06:00
wukko
9592e59f76
api/jwt: fix timestamp to match the spec 2024-08-17 17:58:40 +06:00
wukko
974b98f0ac
api/core: fix & clean up auth middleware 2024-08-17 00:59:59 +06:00
wukko
30c51b9fe8
api/core: rate limit by token if it's present 2024-08-17 00:55:26 +06:00
wukko
c54294601b
api/core: limit authorization header length 2024-08-17 00:13:26 +06:00
wukko
51bd2f72fd
api/core: fix typo 2024-08-16 23:41:20 +06:00
wukko
16acf62886
api/security: jwt session token 2024-08-16 23:28:03 +06:00
wukko
4283774c6c
api: add support for cloudflare turnstile 2024-08-16 00:10:17 +06:00
wukko
c1813aa33f
api/stream: rename bridge mode to proxy 2024-08-15 19:58:40 +06:00
wukko
e727e3a95b
api/processing: slightly reformat code related to zod 2024-08-08 23:43:04 +06:00
dumbmoron
66d70ffc44
test: update match() call format 2024-08-08 16:35:19 +00:00
dumbmoron
f32f624916
api: use zod for request schema validation 2024-08-08 16:34:54 +00:00
wukko
03152375ec
api/snapchat: fix the reverse strict not equals operator
oh my god
2024-08-06 21:35:39 +06:00
wukko
9ff27391d0
api/snapchat: don't return thumb for photos in a picker
prevents saving low quality images with a long press
2024-08-06 21:31:43 +06:00
wukko
72a21b203e
api/twitter: don't return thumb for photos in a picker
it's the same image anyway, this just makes the response smaller
2024-08-06 21:31:15 +06:00
wukko
95f5fd978f
api: merge two picker types into one 2024-08-06 21:30:18 +06:00
wukko
f96c1cd13b
api: remove deprecated statuses & clean up related code 2024-08-06 20:45:04 +06:00
dumbmoron
168c1bdbbb
api/test: update tests to use new request format 2024-08-03 17:33:56 +00:00
dumbmoron
94c2545ca6
api/serverInfo: make cors into boolean 2024-08-03 17:11:18 +00:00
wukko
0a28b4091f
api/youtube: small indentation fix 2024-08-03 23:08:59 +06:00
wukko
5ea71ee58e
api: update post parameters
they're now way easier to read
2024-08-03 23:06:32 +06:00
dumbmoron
c751837ed8
api/package: change name to @imput/cobalt-api 2024-08-03 16:48:57 +00:00
wukko
e58bca0cdd
api: remove alias mapping for deprecated env variables 2024-08-03 22:05:50 +06:00
wukko
3bd1a00855
api: renovate endpoints
no more redundant "/api" path
2024-08-03 21:51:05 +06:00
wukko
40425ad3bf
api: use version-info package & clean up start message 2024-08-03 21:34:02 +06:00
wukko
bef9b5b172
snapchat: add support for android short links 2024-08-03 16:50:57 +06:00
wukko
417a21ea91
ci: fix service config retrieval 2024-08-03 16:36:01 +06:00
wukko
0a411196e9
api/config: clean up (better formatting) 2024-08-03 16:33:36 +06:00
wukko
332eae16b2
api: convert service config to JS and remove it from main config 2024-08-03 16:27:20 +06:00
dumbmoron
6d817f149e
api/load-from-fs: refactor loadFile, use in loadJSON 2024-08-03 09:29:33 +00:00
dumbmoron
0e0ad7cb0e
api/load-from-fs: always load files from root of api folder 2024-08-03 09:29:33 +00:00
wukko
8e7b63ade6
api/match: fix audio format variable typo 2024-08-03 15:05:00 +06:00
wukko
0ffea2d886
api/match: pass action parameters as object 2024-08-03 15:02:59 +06:00
wukko
dd831e13e8
api: flatten code directories, better filenames, remove old files 2024-08-03 14:47:13 +06:00
wukko
aff22e8560
api: remove localization, renovate error response 2024-08-03 13:51:09 +06:00
dumbmoron
3fdf266ad0
youtube: periodically refresh innertube player 2024-08-03 12:46:01 +06:00
wukko
dd30973601
package: update version to 10.0.0 2024-08-02 22:35:56 +06:00
wukko
f66ae63d57
api/core: remove favicon 2024-08-02 22:35:49 +06:00
wukko
012fadd2f0
api: remove API_NAME env variable & from server info 2024-08-02 21:33:59 +06:00
wukko
2575b0c145
api: remove web mode & variables 2024-08-02 21:32:00 +06:00