Commit graph

375 commits

Author SHA1 Message Date
webstreamr
af5bfadba3
chore(release): release v0.28.3 (#140) 2025-06-14 20:25:38 +00:00
WebStreamr
6541782541
fix(fetcher): consider request body for cache key 2025-06-14 20:24:02 +00:00
webstreamr
89af08b703
chore(release): release v0.28.2 (#137) 2025-06-14 19:45:35 +00:00
WebStreamr
6a773f7740
fix(source): adapt and enable Eurostreaming (IT) again 2025-06-14 19:43:34 +00:00
WebStreamr
5f34be12a9
chore: handle not found TMDB IDs better 2025-06-14 18:00:55 +00:00
WebStreamr
81d788ef84
chore(extractor): add various exotic DoodStream domains 2025-06-14 17:58:19 +00:00
WebStreamr
605e88fef4
chore: implement rate-limit detection 2025-06-14 19:51:00 +02: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
519e0d4156
chore(release): release v0.28.1 (#136) 2025-06-13 12:32:02 +02:00
WebStreamr
5aeab3fe23
chore(fetcher): decrease regular request timeout to 5s 2025-06-13 10:26:56 +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
b4b8581383
chore: rename handler to source 2025-06-12 21:05:24 +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
b5067aa0a9
refactor: make BlockedReason an enum 2025-06-12 16:00:34 +00:00
WebStreamr
250d6a1323
refactor: make CountryCode an enum 2025-06-12 15:56:33 +00:00
WebStreamr
9432ba5944
refactor: clean up handler import 2025-06-12 15:33:37 +00:00
WebStreamr
d1da91e030
fix(extractor): detect SuperVideo video deletion/expiration 2025-06-12 12:06:52 +00:00
webstreamr
f1447e6975
chore(release): release v0.28.0 (#134) 2025-06-11 20:48:00 +00:00
WebStreamr
dd6d485340
feat(handler): add VidSrc with CloudStream Pro support 2025-06-11 20:46:28 +00:00
WebStreamr
d0efc0783f
fix(fetcher): correct noFlareSolverr logic 2025-06-11 20:41:11 +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
c05fe96059
chore(release): release v0.27.2 (#133) 2025-06-11 08:27:36 +00:00
WebStreamr
63079bf80a
chore(extractor): support dooood URLs 2025-06-11 08:25:58 +00:00
WebStreamr
9797957778
fix(handler): avoid creating invalid URLs in KinoGer 2025-06-11 08:24:19 +00:00
WebStreamr
19395f1921
chore(extractor): decrease timeout and ignore errors for external URLs 2025-06-11 08:17:58 +00:00
webstreamr
faad6a2562
chore(release): release v0.27.1 (#132) 2025-06-10 22:17:55 +02:00
WebStreamr
fcec03a6a4
fix(handler): do not share decipher instance in KinoGer 2025-06-10 20:16:48 +00:00
WebStreamr
695bf53262
chore: log error stack 2025-06-10 20:15:36 +00:00
webstreamr
c5ac27119e
chore(release): release v0.27.0 (#131) 2025-06-10 21:31:58 +02: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
6af86ef6a6
chore(release): release v0.26.1 (#130) 2025-06-10 17:54:27 +02:00
WebStreamr
42950bc2a3
chore(handler): generalize KinoGer to support more (external) URLs 2025-06-10 15:48:31 +00:00
WebStreamr
141c737cf3
chore(extractor): support dooodster links via DoodStream 2025-06-10 15:48:11 +00:00
WebStreamr
73ea091b83
refactor(handler): improve KinoGer readability 2025-06-10 15:24:52 +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
7b933bfbac
refactor: remove always true conditional 2025-06-10 09:30:03 +00:00
webstreamr
eec2e5030b
chore(release): release v0.26.0 (#128) 2025-06-09 22:46:15 +02:00
WebStreamr
16e1aab1c2
fix: avoid potential queuing dead lock 2025-06-09 20:42:10 +00:00
WebStreamr
bc9c41f005
test: remove usesless filter calls 2025-06-09 20:42:10 +00:00
WebStreamr
8382c009f4
feat(handler): add support for KinoGer Fsst 2025-06-09 20:42:10 +00:00
WebStreamr
7ad61df839
refactor: season instead of series ;) 2025-06-09 20:42:10 +00:00
webstreamr
8f3500385c
chore(release): release v0.25.3 (#123) 2025-06-09 13:37:09 +02:00
WebStreamr
1ca4ea4abe
chore(extractor): don't use FlareSolverr for external URLs 2025-06-09 11:36:17 +00:00
WebStreamr
114c383c54
chore(fetcher): only call FlareSolverr for known challenge blocks 2025-06-09 11:28:20 +00:00
WebStreamr
cbec7c1a01
fix(handler): fix KinoKiste which is now StreamKiste 2025-06-09 11:27:05 +00:00
WebStreamr
6dff634299
test: use snapshots for manifest config tests 2025-06-09 11:24:38 +00:00
webstreamr
20fa791632
chore(release): release v0.25.2 (#121) 2025-06-08 21:28:59 +02: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
364bf166ae
test(handler): avoid side-effects by using a fresh handler for each test 2025-06-08 18:50:53 +00:00
WebStreamr
7d0544a590
chore(handler): add height detection to Soaper 2025-06-08 18:21:52 +00:00
webstreamr
2d9f602256
chore(release): release v0.25.1 (#120) 2025-06-08 17:12:21 +02:00
WebStreamr
48209ac876
chore: introduce config helper, enable English by default 2025-06-08 14:09:10 +00:00
WebStreamr
968b7d4bc0
chore(handler): add year to soaper result movie title 2025-06-08 14:01:43 +00:00
WebStreamr
fbae3924e5
refactor: simplify id usage and imdb <-> tmdb transformations 2025-06-08 13:50:53 +00:00
WebStreamr
8724e04860
refactor: move ids into dedicated folder 2025-06-08 13:26:58 +00:00
WebStreamr
374896caca
refactor: introduce ImdbId and TmdbId 2025-06-08 13:24:31 +00:00
WebStreamr
62f18ece85
refactor: strictly type ContentType 2025-06-08 07:54:17 +00:00
webstreamr
82c75b0654
chore(release): release v0.25.0 (#119) 2025-06-07 19:25:45 +00:00
WebStreamr
717c2afdc4
feat(handler): implement EN Soaper source 2025-06-07 19:24:50 +00:00
WebStreamr
5bda4c88f0
test: rename confusing tests 2025-06-07 19:10:06 +00:00
WebStreamr
a56aea56a8
refactor: add custom helper for flags instead of package 2025-06-07 18:59:23 +00:00
webstreamr
f08670bb21
chore(release): release v0.24.1 (#118) 2025-06-06 12:54:21 +00:00
WebStreamr
ab39636196
chore: warm up cache only with trending movies and tv shows 2025-06-06 12:53:07 +00:00
WebStreamr
99434aa49a
chore: only warm up cache in prod 2025-06-06 12:16:29 +00:00
webstreamr
802ec4275d
chore(release): release v0.24.0 (#117) 2025-06-06 14:12:23 +02:00
WebStreamr
9ba4e7374c
feat: implement hourly movie cache warmup 2025-06-06 12:08:53 +00:00
WebStreamr
01218c77a6
chore(handler): support TMDB ID in Frembed 2025-06-06 11:21:54 +00:00
WebStreamr
355663f036
chore(tmdb): add parseTmdbId 2025-06-06 11:12:03 +00:00
WebStreamr
860a6ae18c
chore(imdb): stricter parsing checks 2025-06-06 11:08:39 +00:00
WebStreamr
a0e83f287d
chore(tmdb): add getImdbIdFromTmdbId and cache both ID transformations 2025-06-06 08:03:16 +00:00
WebStreamr
876698825f
chore: add statusText to HttpError and show in result as well 2025-06-06 06:50:31 +00:00
webstreamr
db67a91413
chore(release): release v0.23.5 (#116) 2025-06-05 22:05:39 +02:00
WebStreamr
8e57400c58
fix: always sort external URLs down 2025-06-05 20:02:25 +00:00
WebStreamr
04ee59e9d3
fix(handler): skip invalid CSV URLs 2025-06-05 19:56:45 +00:00
WebStreamr
d8f0c4602c
chore: introduce HttpError and show status in result 2025-06-05 19:52:49 +00:00
webstreamr
119e338292
chore(release): release v0.23.4 (#113) 2025-06-05 17:21:35 +02:00
WebStreamr
be3464369b
chore(fetcher): simplify queuing and allow parallel requests
instead of only one per host we allow 5, which is more realistic
2025-06-05 15:19:30 +00:00
webstreamr
ad98dc8661
chore(release): release v0.23.3 (#112) 2025-06-05 12:31:36 +02:00
WebStreamr
65d2d0ac83
chore(fetcher): enable keepalive 2025-06-05 10:30:30 +00:00
WebStreamr
63a53a18cc
refactor(fetcher): introduce CustomRequestInit 2025-06-05 10:30:30 +00:00
WebStreamr
092ee4bfc2
refactor(fetcher): add full FlareSolverrResult type 2025-06-05 10:30:30 +00:00
webstreamr
523bbc0f41
fix(fetcher): use expires FlareSolverr cookie prop (#111) 2025-06-05 10:30:26 +00:00
webstreamr
d0802fea50
chore(release): release v0.23.2 (#110) 2025-06-04 18:38:45 +00:00
WebStreamr
efb0f96be2
chore(fetcher): use well-working node user agent by default again 2025-06-04 18:37:51 +00:00
WebStreamr
aa4c672594
chore(fetcher): persist and use FlareSolverr cookie and user agent
doesn't seem to work, but this is best practice anyway..
2025-06-04 18:29:02 +00:00
WebStreamr
0d3a5b8919
chore(fetcher): use queue limit of 10 again :)
queuing too long results in a bad experience. and often there are other
non-blocked sources too, so people can choose those. or self-host.
2025-06-04 16:18:03 +00:00
webstreamr
a9ebe9946a
chore(release): release v0.23.1 (#107) 2025-06-04 15:24:36 +00:00
WebStreamr
7387aef764
chore(fetcher): use FlareSolverr also for other 403 Cloudflare responses 2025-06-04 15:23:15 +00:00
WebStreamr
e6aa95f875
chore(fetcher): increase queue limit to 30 2025-06-04 15:22:59 +00:00
WebStreamr
2c9faebcdc
fix(fetcher): improve Flaresolverr fetching
- use queued fetching to not mix sessions
- log issue responses
2025-06-04 14:59:12 +00:00
webstreamr
7c45c78788
chore(release): release v0.23.0 (#105) 2025-06-04 16:20:24 +02:00
WebStreamr
af65ed0094
feat(fetcher): add FlareSolverr support 2025-06-04 14:18: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
7ec7219ed4
chore: do not log headers for known blocking reasons 2025-06-04 12:05:09 +00:00
webstreamr
a156e98831
chore(release): release v0.22.10 (#104) 2025-06-04 12:59:20 +02:00
WebStreamr
422f7d014c
chore(fetcher): hard-code user-agent again for debugging purposes 2025-06-04 10:54:16 +00:00
WebStreamr
77fc20cfff
refactor: extract env access into helpers 2025-06-04 10:29:50 +00:00
webstreamr
64823685cc
chore(release): release v0.22.9 (#103) 2025-06-04 10:07:13 +00:00
WebStreamr
b69c9cde03
chore: cache successful results as long as we safely can 2025-06-04 10:06:24 +00:00
WebStreamr
d78dca3345
chore: log response headers for blocks 2025-06-04 08:45:08 +00:00
webstreamr
c5cc955d91
chore(release): release v0.22.8 (#99) 2025-06-04 00:47:28 +02:00
WebStreamr
f0817a3dd6
chore: implement queued fetching 2025-06-03 22:44:57 +00:00
WebStreamr
ef2c45e2cb
chore: add more error infos to results 2025-06-03 21:56:19 +00:00
webstreamr
ed501a7ee9
chore(release): release v0.22.7 (#96) 2025-06-03 17:04:57 +02:00
WebStreamr
9d17f5340a
chore: catch handler blocked errors and report the and report themm 2025-06-03 15:02:56 +00:00
WebStreamr
f6967da5cc
chore: try to log error causes 2025-06-03 14:54:05 +00:00
WebStreamr
0b9cf21fae
fix(handler): use new frembed domain (again) 2025-06-03 14:21:18 +00:00
WebStreamr
ae6fdfe726
chore: add language name to config in manifest as well 2025-06-02 15:45:16 +00:00
webstreamr
9291a377d3
chore(release): release v0.22.6 (#95) 2025-06-02 15:33:11 +00:00
WebStreamr
e4dd16e9d1
chore: improve results format and refactor name/title generation 2025-06-02 15:31:15 +00:00
webstreamr
120fb2896f
chore(release): release v0.22.5 (#94) 2025-06-02 11:43:57 +02:00
WebStreamr
e86b5c3454
fix(handler): use new frembed domain 2025-06-02 09:42:26 +00:00
WebStreamr
12d91ba0b4
test: fix mocked Fetcher real calls by using same headers 2025-06-02 09:42:26 +00:00
webstreamr
d271b2c337
chore(release): release v0.22.4 (#91) 2025-06-01 19:38:06 +00:00
WebStreamr
cd8ff60508
fix(handler): disable Eurostreaming as long as it doesn't work 2025-06-01 19:37:03 +00:00
WebStreamr
c3a2f9fdc6
fix(fetcher): use "node" as user agent explicitly
no idea why, but this avoids challenges so far..
2025-06-01 19:31:25 +00:00
WebStreamr
2eb09fc65a
chore: generalize forbidden/blocked handling 2025-06-01 19:31:11 +00:00
webstreamr
f3cbc92286
chore(release): release v0.22.3 (#88) 2025-06-01 13:42:44 +00:00
WebStreamr
424ed78b93
chore(fetcher): hardcode user-agent for now to avoid using "node" 2025-06-01 13:40:59 +00:00
webstreamr
ba9f33230f
chore(release): release v0.22.2 (#87) 2025-06-01 13:21:25 +00:00
WebStreamr
717019e04e
chore(fetcher): add response header info to non-expected errors 2025-06-01 13:19:38 +00:00
WebStreamr
ca981220c9
chore(fetcher): remove Origin header
more is not always better I guess :)

not breaking anything, but that header is not used for normal HTTP GET
requests
2025-06-01 13:08:52 +00:00
webstreamr
a85a483732
chore(release): release v0.22.1 (#86) 2025-05-31 21:15:58 +00:00
WebStreamr
fbc1aa994c
fix: switch back to fetch and do not generate user agents
seems to be causing less cloudflare challenges
2025-05-31 21:13:52 +00:00
webstreamr
0f19b4b7a7
chore(release): release v0.22.0 (#80) 2025-05-29 21:25:43 +02:00
WebStreamr
799ca975ac
feat: make external URL exclusion configurable 2025-05-29 19:17:21 +00:00
WebStreamr
5bfe2f800b
chore(fetcher): reduce timeout to 5s 2025-05-29 18:32:06 +00:00
WebStreamr
07ddaab7fb
chore(fetcher): set more headers to mimick browser requests 2025-05-29 17:55:20 +00:00
WebStreamr
f2a7da21e0
test: remove duplicated Fetcher test parts 2025-05-29 17:43:51 +00:00
WebStreamr
862d3bb5f2
refactor(handler): remove not needed 404 special handling 2025-05-29 17:40:48 +00:00
WebStreamr
02b73b41d7
chore(fetcher): use more realistic referer/origin header values 2025-05-29 17:36:43 +00:00
WebStreamr
0638ce0a8c
fix: detect and report Cloudflare challenge blocks 2025-05-29 17:17:17 +00:00
webstreamr
fbc35550b9
chore(release): release v0.21.0 (#76) 2025-05-25 20:48:23 +02:00
WebStreamr
d4e402e5c9
feat: add title to meta, restructure result name 2025-05-25 18:46:55 +00:00
WebStreamr
f27fc6c38a
refactor: introduce type for CountryCode 2025-05-25 19:32:16 +02: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