Commit graph

3283 commits

Author SHA1 Message Date
propagare
2d68193fcb
Merge cba14785e6 into a636575b09 2026-10-09 15:20:01 +02:00
propagare
cba14785e6 api/pr0gramm: add support for pr0gramm
pr0gramm is an imageboard, and its new frontend pr0.app uses the same public
api. every upload is a single image or a video, served over plain cdn urls
(img./vid./thumb.pr0gramm.com) that need no login for sfw items.

the extractor reads the item from the public api and picks what the site itself
offers:

  - videos exist as h264 (mp4, always with audio) and vp9 (webm, usually
    without audio), in several height classes; videoQuality caps the height
  - subtitles (.vtt) are attached for uploads that have audio
  - items without any video variant are images, and are proxied

the media path pr0gramm reports isn't always up to date: an item that was
converted after its upload keeps the old path in `fullsize` (a `.png` that is
really served as `.jpg`), and a video without any variant has only its `image`
path. rather than trusting whichever field is filled, the reachable candidate
is probed. reviewers who prefer not to make HEAD requests here can simply keep
the `fullsize || image` order instead.

item links from both pr0gramm.com and pr0.app are accepted (/top/<id>,
/new/<id>, /user/<user>/<id>, ... -- the item id is always the last path
segment), and pr0.app is canonicalized to pr0gramm.com.

the media is served with `access-control-allow-origin: https://pr0.app` and
without referer checks, so a plain redirect response works for both the api and
the web ui and no local processing is needed.

this change was written with Hermes Agent and reviewed by me before submitting.
2026-10-09 15:19:42 +02:00
wukko
a636575b09
api/package: revert redis to 4.7.1 (#1536) 2026-04-06 17:59:51 +06:00
wukko
9f7953c4c6
update: cobalt 11.7 (#1535) 2026-04-06 17:32:24 +06:00
wukko
54655720bf
api & web: bump and sync version to 11.7 2026-04-06 15:53:41 +06:00
wukko
15667247b2
api/vk: update api endpoints & client version
fixes flaky video response
2026-04-06 15:45:25 +06:00
wukko
5d8b6ba867
api/package: update freebind to 0.2.3 2026-04-06 14:16:15 +06:00
wukko
94eaae6394
api/tests/tumblr: update audio link 2026-04-06 13:47:05 +06:00
wukko
4f65467946
api/package: update min node version 2026-04-06 12:55:28 +06:00
wukko
f72ea139c6
api & web: update dependencies 2026-04-06 12:55:07 +06:00
wukko
3e2984459d
web/i18n/settings: remove mentions of xiaohongshu 2026-03-30 16:13:54 +06:00
wukko
f2466baed6
api: remove support for xiaohongshu
posts are no longer viewable without logging in
2026-03-30 16:13:32 +06:00
wukko
008e1e4a93
api/rutube: fix yappy downloading 2026-03-30 16:03:33 +06:00
wukko
8cefaab1bd
api/tests: update outdated tests 2026-03-30 16:03:19 +06:00
wukko
23463d518b
api/facebook: update video and share urls (#1531) 2026-03-30 15:28:55 +06:00
wukko
e6a987cd4f
web/i18n/error: update youtube main instance error text 2026-03-30 14:48:22 +06:00
jj
25df76ed7c
api: bump youtubei.js to 17.0.1 2026-03-22 10:31:23 +00:00
jj
c5d89296c3
api: bump version to 11.6 2026-03-07 14:49:40 +00:00
jj
3120d7d034
ci: install lts node version for tests 2026-03-07 14:49:05 +00:00
jj
1bf45bb5f1
youtube: wrap eval shim in v8 isolate 2026-03-07 14:44:03 +00:00
jj
2283901dc2
youtube: introduce YOUTUBE_PLAYER_ID envvar 2026-03-07 14:43:34 +00:00
Andrej Popov
e1ce1dbf69
api/service-config: add 'pro' subdomain to tiktok (#1507) 2026-01-24 21:06:52 +00:00
Andrej Popov
a62d734993
api/service-config: add 'pro' subdomain to tiktok (#1507) 2026-01-24 22:05:28 +01:00
wukko
f520d2bf74
api/package: roll back to redis 4 2026-01-09 15:56:24 +06:00
patrick
07bb16dfe7
api/soundcloud: fix extraction of client_id (#1497)
fixes #1495
2026-01-09 15:38:29 +06:00
wukko
eb5cf3b64c
web/storage/memory: fix the type of chunks 2025-12-24 00:19:01 +06:00
wukko
728d225515
web: fix state_referenced_locally warnings with proper runes 2025-12-23 23:56:24 +06:00
wukko
c857054dcc
all: update dependencies
- updated all dependencies to safe versions to fix all possible package vulnerabilities
- web: removed @types/eslint__js
2025-12-23 23:37:05 +06:00
jj
ae518692ed
web/download: do not show additional dialog on top of dialog in openURL 2025-12-20 15:21:32 +00:00
jj
8d9bccc4fe
web/download: open external links with noopener,noreferrer 2025-12-20 12:43:43 +00:00
jj
e6bbd9477c
api/twitter: strip "tag" param from video urls 2025-12-20 12:28:02 +00:00
patrick
b439ee93c5
api/bilibili: use another user agent (#1472) 2025-12-20 13:19:47 +01:00
jj
cf96bce6cc
Revert "readme: add info about the warp sponsor"
This reverts commit 990ce9a4d2.
2025-12-20 12:08:39 +00:00
jj
cb5eaa814b
youtube: await decipher()s
they are async as of https://github.com/LuanRT/YouTube.js/pull/1047
2025-10-13 23:30:44 +00:00
jj
c8245a04d0
youtube: provide own JS interpreter
since the data should be side-effect free, this should
be fine for now, but maybe it might be a good idea to look
into a proper sandboxed environment in the future.
2025-10-13 23:29:30 +00:00
jj
e7b6d3b8ff
youtube: fix custom fetch breakage
https://github.com/LuanRT/YouTube.js/issues/962#issuecomment-2864091135
2025-10-13 23:27:08 +00:00
jj
d8ca5855a9
api/youtube: try new session server 2025-10-13 22:52:42 +00:00
jj
6678238a6c
api/package: bump youtubei.js to 16.0.0 2025-10-13 22:19:46 +00:00
jj
47d8ccbc17
api/package: bump to 11.5 2025-09-24 16:29:17 +00:00
jj
fc76e24996
api/package: bump youtubei.js to 15.1.1 2025-09-24 16:29:03 +00:00
zImPatrick
83a8da7151
api/vimeo: add support for specifying access tokens (#1443)
* the android client now also needs a valid device_identifier, but already generated access_tokens work fine
* you can also get them from a rooted device by mitm'ing the device while starting vimeo for the first time or going into its data directory and searching for the token in shared_prefs/
2025-09-24 18:27:13 +02:00
jj
d577d5e451
api/package: bump version to 11.4.3 2025-09-05 19:44:26 +00:00
jj
bec77b99e5
api/twitter: use newer graphql endpoint, refactor (#1436) 2025-09-05 19:00:50 +02:00
wukko
990ce9a4d2
readme: add info about the warp sponsor
it's only present on github, which is cool cuz we get to keep cobalt itself ad-free
2025-08-29 09:31:19 +06:00
wukko
29deb4dccb
api/package: bump version to 11.4.2 2025-08-19 14:05:06 +06:00
wukko
7a6977ec35
api/processing/service-patterns: refactor
sorted all patterns alphabetically and moved the "or" operator to the end of the line
2025-08-11 18:31:52 +06:00
wukko
64a7b1dd62
api/bilibili: add support for video parts/episodes
different videos share the same id, kind of weird
2025-08-11 18:15:38 +06:00
TfourJ
1d5db46a79
api/service-config: add support for m subdomain for twitch (#1407)
* api/twitch: add support for m. subdomain

* tests/twitch: add test for m. subdomain
2025-08-10 13:14:23 +02:00
jj
d3ea80fdfe
docs/run-an-instance: replace useless digitalocean links 2025-08-06 21:09:15 +00:00
jj
ea3dc7e6a8
ci: split up install/run steps 2025-07-23 17:11:12 +00:00