Wyzie Subs
Wyzie Subs Sources#
Wyzie Subs aggregates subtitles from multiple providers. Source availability can vary depending on provider status or if a source is down. I am always looking for new sources reach out to suggest one.
Using Sources#
Use the source parameter to specify which provider(s) to query:
/search?id=tt3659388&source=charlie&key=YOUR_KEY
/search?id=tt3659388&source=charlie,lima&key=YOUR_KEY
/search?id=tt3659388&source=all&key=YOUR_KEY- Use source=all to query all enabled sources simultaneously
- Default source is charlie if not specified
- Multiple sources can be specified as a comma-separated list
Health Checks#
Every source is checked once an hour with a real search and a real subtitle download. A source that fails two checks in a row is paused:
- it is left out of
GET /sourcesand out ofsource=alluntil it passes a check again - a search that names only paused sources (for example
source=limawhile lima is paused) returns503with"message": "Source temporarily offline"and is not billed; name a live source alongside it, or usesource=all - a search that mixes live and paused sources runs the live ones and lists the paused ones in the
X-Sources-Offlineresponse header
Paused sources are re-checked every 15 minutes and return automatically. sub.wyzie.io/status shows every source, including paused ones, and GET /api/status returns the same data as JSON (listed: false marks a paused source). Treat /sources as the live list rather than hard-coding it.
API Endpoint#
You can programmatically fetch the list of currently enabled sources and their plan tier:
GET /sourcesReturns:
{
"sources": ["charlie", "foxtrot", "india", "juliet", "lima", "mike", "november"],
"free": ["charlie", "lima"],
"paid": ["foxtrot", "india", "juliet", "mike", "november"],
"tiered": [
{ "key": "charlie", "name": "charlie", "tier": "free", "tags": [] },
{ "key": "foxtrot", "name": "foxtrot", "tier": "paid", "tags": ["anime"] }
],
"allFree": false
}free: sources any key can query, including free keys.paid: sources that require a Pro key.sources,free,paid,tiered: live sources only; a source paused by its health checks is missing from all of them until it recovers.tiered: one entry per live source with itskey(the value to pass assource), displayname,tier(freeorpaid), andtags(for exampleanime). The example above is shortened.allFree: when true, every enabled source is available to all keys and paid is empty.
Scoping to a key#
Pass your API key to get the sources that key can actually use:
GET /sources?key=YOUR_KEYThis adds key-specific fields without consuming a request from your quota:
{
"sources": ["charlie", "foxtrot", "india", "juliet", "lima", "mike", "november"],
"free": ["charlie", "lima"],
"paid": ["foxtrot", "india", "juliet", "mike", "november"],
"tiered": [
{ "key": "charlie", "name": "charlie", "tier": "free", "tags": [], "available": true }
],
"key": { "valid": true, "type": "free" },
"available": ["charlie", "lima"],
"restricted": ["foxtrot", "india", "juliet", "mike", "november"],
"allFree": false
}available: sources this key can query right now.restricted: enabled sources this key cannot query (upgrade to Pro to unlock them).key.type: free or paid.key.validis false when the key is malformed or not found, and null when the key could not be verified (in which case available and restricted are omitted).
You can also view the real-time status of all sources at sub.wyzie.io/status.
Source Details#
Sources are exposed under NATO codenames. Pass the codename as the source value; source=all works for every key and queries each source that key can use. The list below reflects the live /sources response and can change, so fetch it at runtime rather than hardcoding it.
| Source | Tier | Tags |
|---|---|---|
| charlie | Free | |
| foxtrot | Pro | anime |
| india | Pro | |
| juliet | Pro | anime |
| lima | Free | |
| mike | Pro | anime |
| november | Pro | anime |
ai#
Not a scraper. AI-translated SRT generated on demand from the best available source subtitle. Pro keys only. See the AI Translation guide for full details.
- Content: Anything Wyzie can find a text subtitle for
- Languages: 80+ target languages
- Formats: SRT only
