Content Sources¶
Configure where MediaFusion fetches stream data. These are the scrapers, indexers, and feed integrations that populate your catalogs.
Built-in stream sources¶
| Variable | Default | Description |
|---|---|---|
IS_SCRAP_FROM_TORRENTIO |
true |
Fetch streams from Torrentio |
IS_SCRAP_FROM_MEDIAFUSION |
true |
Fetch from the community MediaFusion index |
IS_SCRAP_FROM_ZILEAN |
true |
Fetch cached content from Zilean DMM |
Prowlarr integration¶
Prowlarr aggregates torrent indexers and is the recommended way to get comprehensive torrent results.
| Variable | Default | Description |
|---|---|---|
PROWLARR_URL |
http://prowlarr:9696 |
Prowlarr base URL |
PROWLARR_API_KEY |
None |
Prowlarr API key (generate in Prowlarr → Settings → General) |
PROWLARR_IMMEDIATE_MAX_PROCESS |
30 |
Max simultaneous Prowlarr searches on live requests |
PROWLARR_IMMEDIATE_MAX_PROCESS_TIME |
30 |
Timeout in seconds for live Prowlarr searches |
PROWLARR_SEARCH_INTERVAL_HOUR |
24 |
How often to re-search Prowlarr for cached titles (hours) |
PROWLARR_LIVE_TITLE_SEARCH |
true |
Search Prowlarr in real time when a stream is requested |
See Prowlarr Integration for setup instructions.
Torznab endpoints¶
Add custom Torznab-compatible indexers beyond Prowlarr:
IS_SCRAP_FROM_TORZNAB=true
TORZNAB_ENDPOINTS='[
{
"name": "My Indexer",
"url": "https://indexer.example/api?apikey=xxx",
"enabled": true,
"priority": 1,
"categories": [2000, 5000]
}
]'
Background scrapers¶
These scrapers run on a schedule to keep catalogs fresh. Enable the ones relevant to your use case:
| Variable | Default | Description |
|---|---|---|
IS_SCRAP_FROM_ACESTREAM_BACKGROUND |
true |
Scrape AceStream channels in the background |
ACESTREAM_BACKGROUND_SEARCH_API_KEY |
None |
API key for AceStream search |
IS_SCRAP_FROM_YOUTUBE_BACKGROUND |
false |
Scrape YouTube content |
YOUTUBE_API_KEY |
None |
Required when YouTube scraping is enabled |
IS_SCRAP_FROM_TELEGRAM_BACKGROUND |
false |
Scrape Telegram channels |
Live search¶
| Variable | Default | Description |
|---|---|---|
LIVE_SEARCH_STREAMS |
true |
Fan out to N scrapers in parallel when a stream is requested. Adds 1–5 s latency but surfaces fresher results. |
Disable this to reduce latency at the cost of fewer real-time results.
Scrapling (browser-based scraping)¶
Used for public indexers that require JavaScript or Cloudflare bypass:
| Variable | Default | Description |
|---|---|---|
SCRAPLING_CDP_URL |
None |
WebSocket URL of a running Browserless / Chrome DevTools endpoint (e.g. ws://browserless:3000) |
SCRAPLING_FETCHER_MODE |
stealthy |
stealthy or dynamic |
SCRAPLING_HEADLESS |
true |
Run browser headlessly |
SCRAPLING_SOLVE_CLOUDFLARE |
true |
Attempt Cloudflare bypass |
SCRAPLING_REAL_CHROME |
false |
Use a real Chrome binary instead of Playwright |
SCRAPLING_PROXY_URL |
None |
Proxy for scrapling requests |
PUBLIC_INDEXERS_LIVE_SEARCH_ENABLE_CLOUDFLARE_SOLVER |
false |
Enable Cloudflare solver for live searches |
Cloudflare solver
Leave PUBLIC_INDEXERS_LIVE_SEARCH_ENABLE_CLOUDFLARE_SOLVER=false unless you need it — it increases resource usage significantly. Requires a SCRAPLING_CDP_URL endpoint.
Proxy settings¶
| Variable | Default | Description |
|---|---|---|
REQUESTS_PROXY_URL |
None |
Route all outbound HTTP requests through this proxy |
REQUESTS_PROXY_EXCLUDE_DEBRID_PROVIDERS |
[] |
List of provider names to bypass the proxy (direct egress) |
SCRAPLING_PROXY_URL |
None |
Separate proxy for browser-based scraping |
Scheduler control¶
| Variable | Default | Description |
|---|---|---|
DISABLE_ALL_SCHEDULER |
false |
Disable all background scheduling (useful during development) |
TASKIQ_SINGLE_WORKER_MODE |
true |
Route all task queues to one worker |