Commit graph

67 commits

Author SHA1 Message Date
WebStreamr
0a0bedacb4
chore(fetcher): complete proxy headers 2025-09-23 08:50:56 +00:00
WebStreamr
7e771c2644
revert: Revert "chore(fetcher): try to remove the proxy headers (again)"
This reverts commit 00bd11495f.
2025-09-23 08:32:59 +00:00
WebStreamr
d90cd8f984
fix(fetcher): only retry 503 and 504 2025-09-16 14:49:13 +00:00
WebStreamr
2a47d97d5c
chore(fetcher): switch back to undici fetch 🤡 2025-09-12 13:20:59 +00:00
WebStreamr
87893819b0
chore(fetcher): switch back to native fetch 🤡 2025-09-11 14:34:26 +00:00
WebStreamr
00bd11495f
chore(fetcher): try to remove the proxy headers (again) 2025-09-10 11:25:16 +00:00
WebStreamr
211babec37
chore(fetcher): wait out short rate limits and retry 2025-09-05 08:52:36 +00:00
WebStreamr
fd0900e053
feat: add stats endpoint with cache stats 2025-09-03 13:00:07 +00:00
WebStreamr
0fc7675560
chore(fetcher): retry timeouts once 2025-08-31 20:12:04 +00:00
WebStreamr
a12ae7aaa5
chore(fetcher): retry 5xx errors up to 3 times 2025-08-13 10:49:36 +00:00
WebStreamr
e28de7d4d9
revert: "fix(fetcher): remove weird proxy headers in request"
This reverts commit ee09e10e6e.
2025-08-12 15:15:03 +00:00
WebStreamr
ee09e10e6e
fix(fetcher): remove weird proxy headers in request
looks like this is finally causing weird issues and leading to some
Cloudflare blocks. we might be better of without it, let's try..
2025-08-11 12:09:46 +00:00
WebStreamr
51b9104f07
chore: handle cloudflare 451 censor block, show block reasons 2025-07-21 19:35:52 +00:00
WebStreamr
674eb7ca6d
fix(fetcher): support Basic Auth 2025-07-20 18:44:37 +00:00
WebStreamr
2c210941aa
refactor(fetcher): switch to undici fetch 2025-07-11 16:43:31 +00:00
WebStreamr
5c7b3fb7f2
refactor: more consistent import style 2025-07-02 09:28:10 +00:00
WebStreamr
aee0fd8373
revert: Revert "fix(fetcher): remove 200 minimum cache"
This reverts commit 80e4f4edc4.
2025-06-27 19:18:56 +00:00
WebStreamr
80e4f4edc4
fix(fetcher): remove 200 minimum cache
causes problems with session-scoped responses which should not be cached
2025-06-25 20:05:31 +00:00
WebStreamr
e895077a7b
chore: handle invalid MediaFlow Proxy password better 2025-06-25 18:16:12 +00:00
WebStreamr
f90a53da68
feat(fetcher): add proxy support 2025-06-21 12:03:34 +00:00
WebStreamr
138e92afc5
chore: make ip in Context optional 2025-06-19 11:54:13 +00:00
WebStreamr
2d4c5a8221
test: introduce helper function createTestContext 2025-06-19 11:32:59 +00:00
WebStreamr
f7042b94ef
chore(fetcher): remember recent timeouts and throw if count is too high
This should avoid issues with longer outages of hosters like we had with
DoodStream now twice recently.
2025-06-17 19:09:22 +00:00
WebStreamr
e1f5192f4b
refactor: avoid leaking fetch internals by introducing TimeoutError 2025-06-17 15:42:47 +00:00
WebStreamr
d5ee89db9b
refactor(fetcher): use Semaphore with timeout for queuing 2025-06-16 09:03:35 +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
717c2afdc4
feat(handler): implement EN Soaper source 2025-06-07 19:24:50 +00:00
WebStreamr
d8f0c4602c
chore: introduce HttpError and show status in result 2025-06-05 19:52:49 +00: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
63a53a18cc
refactor(fetcher): introduce CustomRequestInit 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
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
af65ed0094
feat(fetcher): add FlareSolverr support 2025-06-04 14:18:50 +00:00
WebStreamr
422f7d014c
chore(fetcher): hard-code user-agent again for debugging purposes 2025-06-04 10:54:16 +00:00
WebStreamr
f0817a3dd6
chore: implement queued fetching 2025-06-03 22:44:57 +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
424ed78b93
chore(fetcher): hardcode user-agent for now to avoid using "node" 2025-06-01 13:40:59 +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
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
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
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
b313c4eb8d
chore(fetcher): set Origin header and add back proxy headers 2025-05-23 10:52:49 +00:00
WebStreamr
8e791bbe24
chore: better handle not found streams/links 2025-05-23 10:40:59 +00:00