WebStreamr
|
fd0900e053
|
feat: add stats endpoint with cache stats
|
2025-09-03 13:00:07 +00:00 |
|
WebStreamr
|
2b7e9c403d
|
feat: configure sqlite as secondary source and extractor cache
|
2025-09-03 10:56:13 +00:00 |
|
WebStreamr
|
833043143f
|
chore(extractor): cache YouTube for 6h
|
2025-09-02 15:06:55 +00:00 |
|
WebStreamr
|
41aacf84db
|
chore(extractor): cache ExternalUrl for 6h
|
2025-09-02 15:05:51 +00:00 |
|
WebStreamr
|
969ab8d0d7
|
chore(extractor): start refreshing results randomly after at least 2/3 of the TTL passed
|
2025-09-02 14:41:55 +00:00 |
|
WebStreamr
|
316fd4621b
|
chore(extractor): cache KinoGer for 6h
|
2025-09-02 14:28:45 +00:00 |
|
WebStreamr
|
bb95118d2b
|
chore(extractor): cache SaveFiles for 6h
|
2025-09-02 14:28:04 +00:00 |
|
WebStreamr
|
fc17545860
|
chore(extractor): cache XPrime for 6h
|
2025-09-02 14:27:23 +00:00 |
|
WebStreamr
|
a250440670
|
chore(extractor): cache Doodstream for 6h
|
2025-09-02 14:26:25 +00:00 |
|
WebStreamr
|
1e100e6d2e
|
chore(extractor): cache Soaper for 12h
|
2025-09-02 13:48:01 +00:00 |
|
WebStreamr
|
ccf8006f13
|
chore(extractor): cache Dropload for 3h
|
2025-09-02 13:40:22 +00:00 |
|
WebStreamr
|
7ac71837b3
|
chore(extractor): cache SuperVideo for 3h
|
2025-09-02 13:39:39 +00:00 |
|
WebStreamr
|
c68570d2bc
|
chore(extractor): cache VidSrc for 3h
|
2025-09-02 13:38:51 +00:00 |
|
WebStreamr
|
dc093f7109
|
refactor: consistently use cacheable for caching
|
2025-09-02 13:33:51 +00:00 |
|
WebStreamr
|
c556d9500b
|
chore(extractor): support caching via MediaFlow Proxy
|
2025-08-31 20:06:33 +00:00 |
|
WebStreamr
|
33ee150915
|
fix(extractor): set missing viaMediaFlowProxy in Streamtape
|
2025-08-31 19:22:48 +00:00 |
|
WebStreamr
|
18d8ee6b79
|
chore(extractor): use guessSizeFromMp4 in Streamtape, Uqload and XPrime
|
2025-08-28 19:17:21 +00:00 |
|
WebStreamr
|
4a1a3b19aa
|
refactor: introduce guessSizeFromMp4
|
2025-08-28 19:01:14 +00:00 |
|
WebStreamr
|
cefc80fa55
|
chore(extractor): move Fetcher into parent, guess missing heights for SuperVideo
|
2025-08-28 18:58:15 +00:00 |
|
WebStreamr
|
c8cd2ec794
|
chore(extractor): add more KinoGer domains
|
2025-08-25 14:29:58 +00:00 |
|
WebStreamr
|
eecd3255f0
|
fix(extractor): handle SaveFiles /d/ links properly
|
2025-08-21 11:28:15 +00:00 |
|
WebStreamr
|
2d9f9bf1af
|
chore(extractor): add more KinoGer domains and determine resolution
|
2025-08-19 09:35:35 +00:00 |
|
WebStreamr
|
35acb49545
|
fix(extractor): remove unreliable title height guessing
|
2025-08-18 13:17:42 +00:00 |
|
WebStreamr
|
36f3d70467
|
chore(extractor): extract size and title for Fastream URLs
|
2025-08-18 12:30:28 +00:00 |
|
WebStreamr
|
5e6c71f4ad
|
feat(extractor): add YouTube extractor
|
2025-08-17 18:59:29 +00:00 |
|
WebStreamr
|
73627fbf0d
|
revert: "chore(extractor): remove HEAD request to XPrime hosters to determine size"
This reverts commit fdf1415f6d.
|
2025-08-17 18:17:07 +00:00 |
|
WebStreamr
|
63e598a725
|
fix(extractor): use default TTL for XPrime
|
2025-08-16 22:03:34 +00:00 |
|
WebStreamr
|
ef613f2742
|
chore: double HTTP cache, quadruple extractor cache
|
2025-08-16 16:40:15 +00:00 |
|
WebStreamr
|
5316199b8c
|
chore(extractor): increase XPrime cache to 12 hours
|
2025-08-16 16:24:49 +00:00 |
|
WebStreamr
|
fdf1415f6d
|
chore(extractor): remove HEAD request to XPrime hosters to determine size
they seem to be currently rate-limiting and the size info is not that
useful here
|
2025-08-16 16:24:43 +00:00 |
|
WebStreamr
|
a65b8fb507
|
fix(extractor): use title from XPrime API
|
2025-08-15 13:43:30 +00:00 |
|
WebStreamr
|
cfe38878d7
|
feat(source): add XPrime
|
2025-08-15 10:35:56 +00:00 |
|
WebStreamr
|
6492e6be82
|
chore(extractor): use all VidSrc TLDs to handle rate-limit better
|
2025-08-14 07:35:03 +00:00 |
|
WebStreamr
|
285996cbf6
|
fix(extractor): handle SaveFiles locked file
|
2025-08-13 20:34:20 +00:00 |
|
WebStreamr
|
3e964f28ff
|
refactor(extractor): clean-up DoodStream sightly
|
2025-08-13 09:59:34 +00:00 |
|
WebStreamr
|
c9aaf8bb8f
|
feat(extractor): add SaveFiles support
|
2025-08-13 09:57:08 +00:00 |
|
WebStreamr
|
8a81a5c14e
|
chore(extractor): add new DoodStream domains
|
2025-08-12 14:17:05 +00:00 |
|
WebStreamr
|
114d296fe3
|
feat: disable extractors via config
|
2025-07-21 19:18:20 +00:00 |
|
WebStreamr
|
f3f61c85cc
|
feat(extractor): add Fastream via MediaFlow Proxy
|
2025-07-18 18:38:43 +00:00 |
|
WebStreamr
|
533470d080
|
fix(extractor): do not skip external blocked URLs
|
2025-07-18 17:47:28 +00:00 |
|
WebStreamr
|
1b9ee36cfd
|
revert: "chore: remove Soaper 😭" 🎉
This reverts commit df60013e16.
|
2025-07-17 07:56:54 +00:00 |
|
WebStreamr
|
7cf313cedb
|
chore(extractor): normalize Mixdrop non-embed URLs
|
2025-07-16 10:56:51 +00:00 |
|
WebStreamr
|
69afcdcdb2
|
chore(extractor): normalize Dropload download URLs
|
2025-07-15 21:02:57 +00:00 |
|
WebStreamr
|
25d32117ed
|
fix(extractor): support DoodStream via cloudflarestorage
|
2025-07-14 15:58:26 +00:00 |
|
WebStreamr
|
df60013e16
|
chore: remove Soaper 😭
Refs: https://www.reddit.com/r/Piracy/comments/1lux17l/soaperlive_down_again/
|
2025-07-14 13:53:50 +00:00 |
|
WebStreamr
|
b11bba761a
|
fix(extractor): ignore processing SuperVideo files
|
2025-07-10 10:34:12 +00:00 |
|
WebStreamr
|
3d28b226e5
|
feat(extractor): add StreamEmbed support
|
2025-07-02 16:57:21 +00:00 |
|
WebStreamr
|
5c7b3fb7f2
|
refactor: more consistent import style
|
2025-07-02 09:28:10 +00:00 |
|
WebStreamr
|
1c986b0521
|
refactor(extractor): sort extractors
|
2025-07-01 18:30:49 +00:00 |
|
WebStreamr
|
5da52d648a
|
refactor(extractor): move title height guessing into central place
|
2025-07-01 18:23:27 +00:00 |
|
WebStreamr
|
a0ed13f18e
|
feat: make multi sources explicitly configurable
|
2025-07-01 18:02:21 +00:00 |
|
WebStreamr
|
81434fff0e
|
feat: add Japanese and Korean to languages for VixSrc
|
2025-07-01 15:46:30 +00:00 |
|
WebStreamr
|
9d3ce24b90
|
feat(extractor): implement Streamtape via MediaFlow Proxy
|
2025-06-30 18:57:34 +00:00 |
|
WebStreamr
|
b88eba017d
|
chore(extractor): simplify type and passing of height
|
2025-06-30 18:57:34 +00:00 |
|
WebStreamr
|
8c8bfd6051
|
chore(extractor): add viaMediaFlowProxy flag to extractors
|
2025-06-30 13:32:11 +00:00 |
|
WebStreamr
|
adae573a0f
|
chore(extractor): handle Dropload queued files better
|
2025-06-26 12:21:38 +00:00 |
|
WebStreamr
|
00681e1411
|
fix(extractor): disable ip/session locked Fsst
until a solution is found or MediaFlow Proxy is added
|
2025-06-26 04:21:20 +00:00 |
|
WebStreamr
|
b9d0fb3613
|
fix(extractor): filter by configured languages in VixSrc
|
2025-06-25 20:13:17 +00:00 |
|
WebStreamr
|
ec037d7c90
|
fix(extractor): do not cache session-scoped Fsst
should fix issues where results work only once
|
2025-06-25 20:06:18 +00:00 |
|
WebStreamr
|
c0fc6ff7ea
|
feat(extractor): support multi-language in VixSrc
|
2025-06-25 19:06:13 +00:00 |
|
WebStreamr
|
91d5e9dd36
|
refactor: add support for multi-language extractor results
|
2025-06-25 18:27:44 +00:00 |
|
WebStreamr
|
287b031a12
|
fix(extractor): avoid cache clash between context dependent extractors
|
2025-06-24 23:22:47 +00:00 |
|
WebStreamr
|
f12e3c5bd8
|
feat(extractor): implement VixSrc via MediaFlow Proxy
|
2025-06-24 19:07:23 +00:00 |
|
WebStreamr
|
7ea57222d9
|
refactor: pass Context instead of Config to MFP helper
|
2025-06-24 11:33:58 +00:00 |
|
WebStreamr
|
b2eb16fc82
|
refactor: extract Media Flow Proxy functions
|
2025-06-24 10:52:38 +00:00 |
|
WebStreamr
|
ab588a1501
|
feat(extractor): implement Uqload via MediaFlow Proxy
|
2025-06-23 12:35:54 +00:00 |
|
WebStreamr
|
fd1145c162
|
fix(extractor): introduce format and set notWebReady accordingly
According to https://github.com/Stremio/stremio-addon-sdk/blob/master/docs/api/responses/stream.md
|
2025-06-20 18:40:59 +00:00 |
|
WebStreamr
|
d641fa1c2d
|
chore(extractor): add MediaFlow Proxy info to Mixdrop label
|
2025-06-20 08:46:46 +00:00 |
|
WebStreamr
|
7c600427e6
|
feat(extractor): implement Mixdrop via MediaFlow Proxy
|
2025-06-19 20:51:39 +00:00 |
|
WebStreamr
|
2d4c5a8221
|
test: introduce helper function createTestContext
|
2025-06-19 11:32:59 +00:00 |
|
WebStreamr
|
1d263b5540
|
chore(extractor): show label instead of host for errors
|
2025-06-19 11:04:44 +00:00 |
|
WebStreamr
|
c1f9de58b0
|
chore: do not show external URLs by default
|
2025-06-18 10:06:13 +00:00 |
|
WebStreamr
|
6c7993cdba
|
fix(extractor): handle Fsst with single file result
|
2025-06-18 09:33:40 +00:00 |
|
WebStreamr
|
952993a537
|
chore(extractor): set Referer to URL origin for external URLs
|
2025-06-15 20:41:02 +00:00 |
|
WebStreamr
|
3a28de46bd
|
fix(extractor): handle missing height infos in playlist properly
|
2025-06-15 11:27:53 +00:00 |
|
WebStreamr
|
dd121a068a
|
fix(extractor): only cache URL results if there was no error
|
2025-06-15 11:16:14 +00:00 |
|
WebStreamr
|
81d788ef84
|
chore(extractor): add various exotic DoodStream domains
|
2025-06-14 17:58:19 +00:00 |
|
WebStreamr
|
f11c591dc5
|
chore: do not pass referer through context
|
2025-06-14 13:44:32 +02:00 |
|
WebStreamr
|
2853bff284
|
refactor: use context scoped fixtures
|
2025-06-13 22:37:50 +02:00 |
|
WebStreamr
|
3a4ff73953
|
test: hand-rolled, explicit Fetcher mock
|
2025-06-13 21:53:11 +02:00 |
|
WebStreamr
|
4bc25692a8
|
refactor: use proper prototype class methods
|
2025-06-13 21:26:26 +02:00 |
|
WebStreamr
|
4caf62a367
|
test: instantiate mocked Fetcher with logger consistently
|
2025-06-13 13:20:13 +00:00 |
|
WebStreamr
|
15099de798
|
refactor: introduce helper showExternalUrls()
|
2025-06-13 10:24:32 +00:00 |
|
WebStreamr
|
9b5943208e
|
refactor(extractor): introduce parent class for simplifications
|
2025-06-13 10:04:40 +00:00 |
|
WebStreamr
|
bdae1ff346
|
refactor: define member accessiblity explicitly
|
2025-06-13 09:42:06 +00:00 |
|
WebStreamr
|
013fb4084f
|
fix(extractor): handle missing VidSrc files
|
2025-06-12 20:58:25 +00:00 |
|
WebStreamr
|
d2d7e84d9b
|
refactor: separate handlers and extractors
|
2025-06-12 20:56:50 +00:00 |
|
WebStreamr
|
250d6a1323
|
refactor: make CountryCode an enum
|
2025-06-12 15:56:33 +00:00 |
|
WebStreamr
|
d1da91e030
|
fix(extractor): detect SuperVideo video deletion/expiration
|
2025-06-12 12:06:52 +00:00 |
|
WebStreamr
|
dd6d485340
|
feat(handler): add VidSrc with CloudStream Pro support
|
2025-06-11 20:46:28 +00:00 |
|
WebStreamr
|
4dc3c636a6
|
refactor: extract playlist height guessing
|
2025-06-11 20:18:49 +00:00 |
|
WebStreamr
|
2ea8c16d9e
|
chore(extractor): improve SuperVideo title
|
2025-06-11 10:08:13 +00:00 |
|
WebStreamr
|
63079bf80a
|
chore(extractor): support dooood URLs
|
2025-06-11 08:25:58 +00:00 |
|
WebStreamr
|
19395f1921
|
chore(extractor): decrease timeout and ignore errors for external URLs
|
2025-06-11 08:17:58 +00:00 |
|
WebStreamr
|
fcec03a6a4
|
fix(handler): do not share decipher instance in KinoGer
|
2025-06-10 20:16:48 +00:00 |
|
WebStreamr
|
262abde2fc
|
feat(extractor): implement KinoGer extractor
|
2025-06-10 19:30:33 +00:00 |
|
WebStreamr
|
b940df5bc0
|
chore(extractor): add DoodStream height guessing based on title
|
2025-06-10 19:21:00 +00:00 |
|
WebStreamr
|
041c04e327
|
fix(extractor): prefer using extractor title
|
2025-06-10 19:13:04 +00:00 |
|
WebStreamr
|
141c737cf3
|
chore(extractor): support dooodster links via DoodStream
|
2025-06-10 15:48:11 +00:00 |
|
WebStreamr
|
dd1b3a1f1d
|
chore(extractor): support embed-only SuperVideo URLs
|
2025-06-10 15:17:53 +00:00 |
|
WebStreamr
|
4da121d094
|
refactor(extractor): add return type to all extract methods
|
2025-06-10 15:15:52 +00:00 |
|
WebStreamr
|
2d615ce582
|
refactor(extractor): introduce URL normalization
|
2025-06-10 15:03:05 +00:00 |
|
WebStreamr
|
8382c009f4
|
feat(handler): add support for KinoGer Fsst
|
2025-06-09 20:42:10 +00:00 |
|
WebStreamr
|
1ca4ea4abe
|
chore(extractor): don't use FlareSolverr for external URLs
|
2025-06-09 11:36:17 +00:00 |
|
WebStreamr
|
d1ff7cd732
|
chore(extractor): add bytes detection to DoodStream
|
2025-06-08 19:27:18 +00:00 |
|
WebStreamr
|
0446d52e78
|
refactor: UrlResult[] instead of UrlResult | undefined
|
2025-06-08 18:55:03 +00:00 |
|
WebStreamr
|
7d0544a590
|
chore(handler): add height detection to Soaper
|
2025-06-08 18:21:52 +00:00 |
|
WebStreamr
|
717c2afdc4
|
feat(handler): implement EN Soaper source
|
2025-06-07 19:24:50 +00:00 |
|
WebStreamr
|
1b8f75f00e
|
fix(extractor): do not mutate URLs to avoid cache misses
|
2025-06-04 13:23:54 +00:00 |
|
WebStreamr
|
fef59dd03b
|
fix: never cache result errors
|
2025-06-04 12:05:59 +00:00 |
|
WebStreamr
|
b69c9cde03
|
chore: cache successful results as long as we safely can
|
2025-06-04 10:06:24 +00:00 |
|
WebStreamr
|
ef2c45e2cb
|
chore: add more error infos to results
|
2025-06-03 21:56:19 +00:00 |
|
WebStreamr
|
f6967da5cc
|
chore: try to log error causes
|
2025-06-03 14:54:05 +00:00 |
|
WebStreamr
|
2eb09fc65a
|
chore: generalize forbidden/blocked handling
|
2025-06-01 19:31:11 +00:00 |
|
WebStreamr
|
799ca975ac
|
feat: make external URL exclusion configurable
|
2025-05-29 19:17:21 +00:00 |
|
WebStreamr
|
0638ce0a8c
|
fix: detect and report Cloudflare challenge blocks
|
2025-05-29 17:17:17 +00:00 |
|
WebStreamr
|
d4e402e5c9
|
feat: add title to meta, restructure result name
|
2025-05-25 18:46:55 +00:00 |
|
WebStreamr
|
979dddd20c
|
refactor: move bytes, height and countryCode into meta object
and pass that to the extractors instead. this is a preparation to
support more meta like e.g. title
|
2025-05-25 19:25:39 +02:00 |
|
WebStreamr
|
f3beb72f17
|
bug(extractor): handle not found case properly for DoodStream
|
2025-05-25 19:04:12 +02:00 |
|
WebStreamr
|
6b5c9a4ce7
|
feat(extractor): cache not found results too
|
2025-05-25 18:58:00 +02:00 |
|
WebStreamr
|
8e791bbe24
|
chore: better handle not found streams/links
|
2025-05-23 10:40:59 +00:00 |
|
WebStreamr
|
0a99f1e501
|
chore(extractor): use HEAD instead of GET to check external URLs
|
2025-05-22 16:36:28 +00:00 |
|
WebStreamr
|
23445c143b
|
feat(extractor): add external URL support
This could still be a useful fallback on some devices since it indicates
that we found a potential embed URL but could not extract the video URL.
|
2025-05-21 19:22:32 +00:00 |
|
WebStreamr
|
57799a777a
|
revert: "feat(extractor): implement UQLoad"
This reverts commit fb61d39225.
UQLoad is IP-locked.
|
2025-05-18 22:50:31 +02:00 |
|
WebStreamr
|
b5c45d806e
|
refactor(extractor): manipulate URL instead of creating new one
|
2025-05-18 21:48:17 +02:00 |
|
WebStreamr
|
fb61d39225
|
feat(extractor): implement UQLoad
|
2025-05-18 21:20:48 +02:00 |
|
WebStreamr
|
5b389ada9e
|
feat: configure languages instead of handlers
just feels more natural and helps maintainence. handlers should be an
internal thing.
|
2025-05-18 00:00:10 +02:00 |
|
WebStreamr
|
f2fb4821e3
|
refactor: use template literal consistently
|
2025-05-17 21:10:40 +02:00 |
|
WebStreamr
|
f635d6c233
|
chore: create ID per request for logging and error response
|
2025-05-17 21:06:51 +02:00 |
|
WebStreamr
|
4a705ce088
|
refactor: cleanup url and extractorRegistry variable/prop names
|
2025-05-17 20:25:51 +02:00 |
|
WebStreamr
|
8b82215c32
|
feat(handler): limited Frembed support
|
2025-05-17 20:20:19 +02:00 |
|
WebStreamr
|
bb395f0375
|
revert: "feat(extractor): implement Mixdrop"
This reverts commit 4c53161e98.
Mixdrop seems to be IP-locked.
|
2025-05-17 01:05:40 +02:00 |
|
WebStreamr
|
63a79f8758
|
fix(extractor): do not throw for broken/outdated link
|
2025-05-16 22:36:20 +02:00 |
|
WebStreamr
|
b790cc7954
|
refactor: use url.href instead of url.toString()
|
2025-05-16 22:34:19 +02:00 |
|
WebStreamr
|
4c53161e98
|
feat(extractor): implement Mixdrop
|
2025-05-16 22:34:19 +02:00 |
|
WebStreamr
|
24f1107df8
|
refactor(extractor): improve DoodStream comment about no match case
|
2025-05-16 18:51:32 +00:00 |
|
WebStreamr
|
87ec328a66
|
refactor(extractor): remove embed part from extractor
|
2025-05-16 15:07:03 +00:00 |
|