Subtitle scrapers in Zig with a shared provider API and a single scrapers binary.
- 12 provider integrations behind one app layer:
providers_app - One binary:
scrapers - CLI mode by default
- TUI mode available with
--tuiin the default build - Runtime HTTP implemented with Zig
std.http.Client - No runtime
curldependency
- Zig
0.16.0-dev.2905+ - Network access for provider queries and downloads
| Provider id | Site |
|---|---|
subdl_com | subdl.com |
opensubtitles_com | opensubtitles.com |
opensubtitles_org | opensubtitles.org |
moviesubtitles_org | moviesubtitles.org |
moviesubtitlesrt_com | moviesubtitlesrt.com |
podnapisi_net | podnapisi.net |
yifysubtitles_ch | yifysubtitles.ch |
subtitlecat_com | subtitlecat.com |
isubtitles_org | isubtitles.org |
my_subs_co | my-subs.co |
subsource_net | subsource.net |
tvsubtitles_net | tvsubtitles.net |
Build and test:
zig build
zig build testList providers:
zig build run -- --list-providersRun the CLI:
zig build run -- --query "The Matrix"Install the binary:
zig build install
./zig-out/bin/scrapers --providers subdl_com,podnapisi_net --query "Inception"
./zig-out/bin/scrapers -pnone --query "Inception"Build all supported targets into zig-out/bin:
zig build build-all-targets
zig build build-all-targets -Doptimize=ReleaseFast -Dstrip=trueTargets produced by build-all-targets:
scrapers-x86_64-linux-gnuscrapers-aarch64-linux-gnuscrapers-x86_64-macos-nonescrapers-aarch64-macos-nonescrapers-x86_64-windows-gnu.exe
The default build is intentionally conservative because some upstream integrations are still moving on Zig 0.16-dev.
Run the TUI:
zig build run -- --tuiEnable archive extraction for --extract:
zig build -Denable-unarr=true run -- --providers subsource_net --query "The Matrix" --extractEnable browser automation support:
zig build -Denable-alldriver=trueTracked upstream issues are documented in ISSUES.md.
-Doptimize=Debug|ReleaseSafe|ReleaseFast|ReleaseSmall-Dstrip=true|false-Dsingle-threaded=true|false-Domit-frame-pointer=true|false-Derror-tracing=true|false-Dpic=true|false-Dllvm=true|false-Denable-tui=true|false-Denable-alldriver=true|false-Denable-unarr=true|false
build-all-targets defaults:
-Doptimize=ReleaseFast-Dstrip=true
Use -Dllvm=true if the native GNU build hits host CRT .sframe relocation errors.