Source extensions
A source exposes discovery functions like popular, latest and search, then returns detailed items, children and mirrors.
JavaScript sources, extractors and extension syntax
Everything you need to understand the current extension contract, build compatible sources, and apply practical implementation patterns.
Sources provide catalogs and metadata. Extractors resolve playable video URLs from hosts or embed pages.
A source exposes discovery functions like popular, latest and search, then returns detailed items, children and mirrors.
An extractor takes a host URL such as an embed page and resolves it into final playable streams like MP4 or HLS.
Open focused pages for implementation details and copy-paste snippets.
Contract, required fields, and return shapes for source extensions.
Domains, `extractVideos(url)`, and stream output conventions.
Minimal source and extractor examples with neutral naming.
Practical conventions for selectors, pagination, mirrors and safe fallbacks.
Every source starts with a `SOURCE` object plus a small set of async functions.
Include stable metadata like id, name, baseUrl, language, version and optional iconUrl/contentKind.
Implement `fetchPopular`, `fetchLatest` and `fetchSearch` when available so the app can build lists and search results.
Use `fetchItemDetails(id)` and `fetchChildren(itemId)` to describe the media item and its playable parts.
These are the main functions the runtime expects today.
Return lightweight lists of media items for home sections and search results.
Return the full item plus its children, parts or entries using neutral naming.
Return candidate mirrors or direct streams. Extractors may be used later to resolve those URLs.
Extractors are focused: detect supported domains and resolve a host URL into playable streams.