sun
4f74101b3a
feat(hls): add native HLS (m3u8) download protocol
...
New hls protocol in internal/protocol/hls (registered ahead of http):
- master playlist variant picking (highest bandwidth), RFC3986 segment
URL resolution, fMP4 init segments, EXT-X-BYTERANGE, EXT-X-GAP skip
- AES-128 decryption with mid-playlist key rotation and sequence-derived
IVs; explicit errors for live streams, SAMPLE-AES and multi-period fMP4
- concurrent segment downloads with retry, journal-based resume across
pause/app restarts, automatic in-order merge into a single .ts/.mp4
- best-effort Content-Length probing for determinate progress
- anti-hotlink Referer/Cookie/UA via task extra headers (Go transport
does not filter them)
Core: fix SchemeFilter extension match for URLs with query strings
(also benefits .torrent links); Flutter: Protocol.hls enum, hls protocol
config model (prevents config round-trip wipe) and HLS settings block
with localized labels in all 22 locales.
Tests: parser/crypto unit tests, httptest e2e (Referer-enforced CDN,
encrypted streams, byterange, pause/resume, store/restore) and an
opt-in live-site acceptance gate (HLS_LIVE_URL).
2026-09-14 09:55:31 +08:00
Wu Shuwen
04b9aa18ec
fix(http): infer extension for opaque URLs ( #1495 )
2026-09-11 08:01:32 +08:00
Levi
177c225f16
feat: new ui ( #1455 )
2026-09-05 19:53:41 +08:00
Levi
3be8db664c
fix(http): resume ranged downloads with unknown size ( #1467 )
2026-09-03 23:16:38 +08:00
Levi
9b704f6f14
fix(http): keep Resolve response until Range takeover succeeds ( #1465 )
2026-09-02 23:49:37 +08:00
ggg
f49e2510f5
fix(http): re-probe range support after sequential retry ( #1464 )
2026-09-02 14:29:48 +08:00
Levi
c5c8bb2bf5
fix(http): reset discarded prefetch progress on resume ( #1462 )
2026-08-31 23:05:01 +08:00
ggg
962ff4dc98
fix(http): fall back when servers ignore range requests ( #1459 )
2026-08-31 22:32:14 +08:00
Levi
59f3aa7028
test: enforce async extension API contract ( #1452 )
2026-08-27 12:51:37 +08:00
Levi
cfdf87c3b8
feat: HTTP add TLS fingerprint fallback ( #1444 )
2026-08-20 20:21:02 +08:00
Levi
9fb3758203
feat: replace gblob with blob http transport ( #1407 )
2026-07-14 20:05:33 +08:00
Levi
def54f8998
feat: add WebView support for extension ( #1359 )
2026-04-24 22:16:33 +08:00
Levi
a205c0b8d7
feat: add gblob scheme support for extension ( #1358 )
2026-04-19 19:15:48 +08:00
Levi
847e88881d
fix: non-range HTTP downloaded bytes exceeding total file size ( #1317 )
2026-03-18 18:53:49 +08:00
Levi
09f7c88ed3
feat: ed2k protocol support ( #1316 )
2026-03-17 19:42:16 +08:00
Levi
3eb6df55df
feat: implement task patching functionality ( #1267 )
2026-02-06 23:42:57 +08:00
Levi
93088b22f1
fix: improve retry handling for expired HTTP redirect url ( #1263 )
2026-01-29 22:13:42 +08:00
Levi
c9626cb389
perf: slow down DHT announcing on errors ( #1186 )
2026-01-14 20:04:21 +08:00
Levi
a9eee26be7
refactor: fethcer interface & download flow ( #1229 )
2026-01-08 21:50:47 +08:00
Copilot
abd16d5326
fix: filename truncation for HTML-encoded ampersands in Content-Disposition ( #1215 )
2026-01-05 22:56:04 +08:00
Copilot
6756d82ffa
fix: use PathUnescape for filename URL decoding ( #1214 )
2026-01-05 21:46:50 +08:00
Matteo Pietro Dazzi
b0e133b554
feat: show extraction progress ( #1217 )
2025-12-31 09:25:21 +08:00
Copilot
2f5fbfb17c
fix: HTTP filename parsing for mixed encodings and GBK-encoded ( #1189 )
2025-11-29 11:34:50 +08:00
Levi
75a8a3a9ac
ci: downgrade to Ubuntu 22.04 ( #1128 )
2025-10-09 21:01:06 +08:00
Levi
20a70d7f91
fix: certain special single-file torrent downloads ( #1136 )
2025-09-29 22:52:06 +08:00
Levi
46c379d556
fix: resolve incorrect download path for single file torrent ( #1111 )
2025-09-10 07:59:10 +08:00
Krau
cfdcb586ee
fix: decode URL-encoded filename from contentDisposition header ( #1099 )
2025-09-04 18:22:30 +08:00
Levi
3451f577ab
fix: remove invalid characters in HTTP headers ( #1053 )
2025-07-15 22:34:10 +08:00
Charles Huang
3262e5a11b
fix: do not add external tracker to a private torrent ( #1011 )
2025-04-23 22:53:15 +08:00
Charles Huang
ff43a373cd
fix: json syntax error in bt config ( #1014 )
2025-04-23 13:48:46 +08:00
Levi
b0ef2c2a87
fix: bt seed cause crash ( #985 )
2025-04-08 18:38:17 +08:00
Levi
cd5fd45667
fix: resolve http non encode attachment filename ( #975 )
2025-04-05 22:37:19 +08:00
Levi
50bc9ab129
feat: improve http download strategy to prevent speed drops near completion ( #969 )
2025-04-05 22:20:35 +08:00
Levi
f4b839fd11
fix: http download size exceeds file size ( #959 )
2025-03-14 20:07:34 +08:00
Levi
03e26dbea8
feat: improve http download retry strategy ( #951 )
2025-03-07 12:01:52 +08:00
Levi
9c5aebaf36
fix: path url encode filename parse ( #939 )
2025-02-18 19:37:38 +08:00
Levi
fba990a056
fix: http MIME encoded word filename parse ( #931 )
2025-02-13 21:54:13 +08:00
Levi
0919936050
feat: support custom http request headers ( #868 )
2025-01-16 00:19:50 +08:00
Levi
acc7ed8f6b
feat: torrent scheme deep link and file associations ( #866 )
2025-01-16 00:02:00 +08:00
Levi
3ce95f21fd
fix: some torrents can not resovle ( #857 )
2024-12-27 19:06:17 +08:00
Levi
c970378fd7
fix: http download retries too many times ( #849 )
2024-12-24 20:28:04 +08:00
Levi
f4876c8a0e
fix: HTTP fetch crash when modified request extra via extension ( #832 )
2024-12-08 12:07:08 +08:00
Levi
366244fa5d
fix: android build on go 1.23 ( #813 )
2024-11-15 11:43:55 +08:00
Ricky
2523282a89
feat(http): add option to skip SSL certificate verification ( #801 )
2024-11-12 10:30:21 +08:00
Levi
d3750464aa
fix: torrent stats panic ( #737 )
2024-09-20 12:28:24 +08:00
Levi
a1981328aa
fix: avoid HTTP zero connections ( #729 )
2024-09-07 13:49:32 +08:00
Levi
0c17093b1a
feat: task separate proxy ( #727 )
2024-09-06 18:35:23 +08:00
Levi
ece5b91dc2
fix: torrent redundant directory ( #649 )
2024-08-14 21:54:59 +08:00
Levi
1f791c66e6
perf: excessive torrent tracker dns resolve ( #634 )
2024-08-08 18:55:52 +08:00
foxxorcat
d119de7b98
feat: enhanced extension engine ( #629 )
2024-08-05 10:44:17 +08:00