Les évènements liés à YGG s’enchaînent et entrainent des fermetures et abandons de sites, projets et teams depuis quelques jours. L’instance publique de WAStream est/va fermer et il est donc temps de l’héberger.
Si vous sortez de votre grotte, Reddit est rempli de posts à ce sujet.
WAStream est un addon Stremio/Nuvio/whatever qui permet de sourcer des fichiers en DDL. En terme d’auto-hébergement, surtout en attendant la publication du code de Baguettio, il fait partie des addons utiles avec StreamFusion Reborn et Comet voire FrenchIO.
Il s’appuie sur des débrideurs, évidemment, mais surtout les sites Wawacity, Free-Télécharger et Movix voire Darkino et ses suites mais le code doit être adapté.

L’installer en Docker est très simple, compose et .env sont sur le GitLab. Voici chez moi
services:
wastream:
image: registry.gitlab.com/10ho/wastream:latest
restart: always
container_name: stremio-wastream
ports:
- 9845:7000
volumes:
- /home/aerya/docker/stremio-wastream:/app/data
environment:
- SECRET_KEY=xxxx
- ADMIN_PASSWORD=xxxx
- WAWACITY_URL=https://www.wawacity.codes
- FREE_TELECHARGER_URL=https://www.free-telecharger.surf
- MOVIX_URL=https://movix.date
- WEBSHARE_URL=https://webshare.cz
- DATABASE_TYPE=sqlite
- DATABASE_PATH=/app/data/wastream.db
Et le .env
# ================================== #
# Addon Customization #
# ================================== #
ADDON_ID=community.wastream # (Optional) Stremio addon identifier (default: community.wastream)
ADDON_NAME="WAStream" # (Optional) Display name in Stremio (default: WAStream)
# ================================== #
# Server Configuration #
# ================================== #
PORT=7000 # (Optional) HTTP server port (default: 7000)
# ================================== #
# Source Configuration #
# ================================== #
WAWACITY_URL=https://example.com # (Optional) Wawacity base URL
FREE_TELECHARGER_URL=https://example.com # (Optional) Free-Telecharger base URL
DARKI_API_URL=https://api.example.com # (Optional) Darki-API base URL
DARKI_API_KEY=your_api_key_here # (Optional) Optional API key for Darki-API
MOVIX_URL=https://example.com # (Optional) Movix base URL (API URL auto-generated as api.{domain})
WEBSHARE_URL=https://example.com # (Optional) Webshare base URL
# ================================== #
# Kitsu/Anime Configuration #
# ================================== #
DARKIMOVIX_KITSU_TMDB_MAPPING=["tt0388629"] # (Optional) JSON list of IMDB IDs to use TMDB mapping for Kitsu anime on Darki-API/Movix
KITSU_IMDB_OVERRIDE=["6589=1,8174=2,13893=3,42213=4-1,42927=4-2:tt2250192"] # (Optional) JSON list of custom Kitsu ID to season/episode mapping for specific IMDB
# ================================== #
# Pagination Configuration #
# ================================== #
WAWACITY_MAX_SEARCH_PAGES=3 # (Optional) Max search result pages (default: 3 pages)
FREE_TELECHARGER_MAX_SEARCH_PAGES=3 # (Optional) Max search result pages for Free-Telecharger (default: 3 pages)
WEBSHARE_MAX_SEARCH_PAGES=3 # (Optional) Max search result pages for Webshare (default: 3 pages)
DARKI_API_MAX_LINK_PAGES=5 # (Optional) Max link pages to fetch (default: 5 pages)
DARKIBOX_LINK_TIMEOUT=2 # (Optional) Soft timeout in seconds for Darkibox links (default: 2s)
# ================================== #
# Database Configuration #
# ================================== #
DATABASE_TYPE=sqlite # (Optional) Database type: "sqlite" or "postgresql" (default: sqlite)
DATABASE_PATH=/app/data/wastream.db # (Optional) SQLite file path (default: /app/data/wastream.db)
DATABASE_URL=username:password@hostname:port/database # (Required if postgresql) PostgreSQL connection string
# ================================== #
# Cache Configuration #
# ================================== #
CONTENT_CACHE_TTL=1 # (Optional) Content cache duration: -1 = permanent (never expires), or seconds (default: 3600 = 1 hour)
CONTENT_CACHE_MODE=live # (Optional) Cache mode: "background" (wait if expired) or "live" (instant + background refresh) (default: background)
DEAD_LINK_TTL=-1 # (Optional) Dead link cache duration: -1 = permanent (default), or seconds (e.g., 2592000 = 30 days)
# ================================== #
# Lock Configuration #
# ================================== #
SCRAPE_LOCK_TTL=300 # (Optional) Lock expiration time in seconds (default: 300 = 5 min)
SCRAPE_WAIT_TIMEOUT=30 # (Optional) Max wait time for lock in seconds (default: 30s)
# ================================== #
# HTTP Timeout Configuration #
# ================================== #
HTTP_TIMEOUT=15 # (Optional) General HTTP request timeout in seconds (default: 15)
METADATA_TIMEOUT=10 # (Optional) TMDB/Kitsu API timeout in seconds (default: 10)
HEALTH_CHECK_TIMEOUT=5 # (Optional) Health endpoint timeout in seconds (default: 5)
# ================================== #
# Debrid Services Configuration #
# ================================== #
DEBRID_MAX_RETRIES=5 # (Optional) Max retry attempts for debrid operations (default: 5)
DEBRID_RETRY_DELAY_SECONDS=4 # (Optional) Delay between retries in seconds (default: 4)
STREAM_REQUEST_TIMEOUT=20 # (Optional) Timeout for stream requests in seconds (default: 20)
DEBRID_CACHE_CHECK_HTTP_TIMEOUT=3 # (Optional) Cache check timeout in seconds (default: 3)
DEBRID_HTTP_ERROR_MAX_RETRIES=5 # (Optional) Max retries for HTTP errors (429, 500, 502, 503, 504) (default: 5)
DEBRID_HTTP_ERROR_RETRY_DELAY=1 # (Optional) Delay for HTTP error retries in seconds (default: 1)
# ================================== #
# Proxy Configuration #
# ================================== #
PROXY_URL=http://warp:1080 # (Optional) Optional HTTP proxy URL - Leave empty if not used
# ================================== #
# Security Configuration #
# ================================== #
SECRET_KEY=xxxx # (Required) Encryption key for user configs (min 32 chars) - Generate with: openssl rand -hex 32
ADDON_PASSWORD="xxxx" # (Optional) Optional password protection - Multiple passwords separated by commas
# ================================== #
# Admin Configuration #
# ================================== #
ADMIN_PASSWORD=xxxx # (Optional) Password for admin dashboard - Leave empty to disable admin
# ================================== #
# Logging Configuration #
# ================================== #
LOG_LEVEL=DEBUG # (Optional) Log level: DEBUG (all details), INFO (workflow + errors), ERROR (errors only) (default: DEBUG)
# ================================== #
# HTTP Cache Configuration #
# ================================== #
HTTP_CACHE_ENABLED=true # (Optional) Enable ETag + Cache-Control on API responses (default: false)
HTTP_CACHE_STREAMS_TTL=300 # (Optional) Stream results cache in seconds (default: 300 = 5 min)
HTTP_CACHE_MANIFEST_TTL=86400 # (Optional) Manifest cache in seconds (default: 86400 = 1 day)
HTTP_CACHE_CONFIGURE_TTL=86400 # (Optional) Configure page cache in seconds (default: 86400 = 1 day)
HTTP_CACHE_STALE_WHILE_REVALIDATE=60 # (Optional) Stale-while-revalidate in seconds (default: 60)
# ================================== #
# Health Check Configuration #
# ================================== #
HEALTH_CHECK_INTERVAL=60 # (Optional) Health check interval in seconds (default: 60 = 1 minute)
# ================================== #
# TMDB Configuration #
# ================================== #
TMDB_API_KEY=fd53e4b4316c0160713e934b9bbf4a9f # (Optional) TMDB API key for auto-filling metadata in WASource (get from https://www.themoviedb.org/settings/api)
# ================================== #
# Pastebin Scraper Configuration #
# ================================== #
PASTEBIN_SCRAPER_URLS=[mettre des URLs du PasteBin"] # (Optional) JSON list of pastebin URLs to scrape into WASource (AllDebrid links only)
PASTEBIN_SCRAPER_INTERVAL=43200 # (Optional) Scrape interval in seconds (default: 86400 = 24 hours)
# ================================== #
# Interface Customization #
# ================================== #
CUSTOM_HTML="" # (Optional) Custom HTML for web interface
Et pour ceux qui ont du mal à trouver les URLs de sites de DDL il existe ce PasteBin (pwd: wastream) et pour les mettre à jour facilement, Stick partage sur le Discord de Stremiofr.me ce petit script Python dans lequel il suffit d’adapter le chemin de sa stack WAStream.
📦 Script auto-sync des domaines wastream (à télécharger via mon blog)
Petit script cron (Python, zéro dépendance) qui garde les domaines de vos sources à jour tout seul : il lit le paste partagé, et dès qu’un site (wawacity / movix / free-telecharger) change de domaine, il met à jour votre .env et redémarre le conteneur. Idempotent, il ne touche à rien s’il n’y a pas de changement.
Install :
- Mettez le fichier dans scripts/sync-domains.py de votre install wastream
- Adaptez juste BASE_DIR (le dossier qui contient votre .env + docker-compose.yml)
- Testez sans risque : python3 scripts/sync-domains.py –dry-run
- Ajoutez le cron (toutes les 6h) :
( crontab -l 2>/dev/null; echo « 0 */6 * * * /usr/bin/python3 /scripts/sync-domains.py >> /logs/domain-sync.cron.log 2>&1 » ) | crontab –
Fichier joint 👆 (paste + mdp du pack déjà dedans, rien à changer)
On peut aussi utiliser ce PasteBin (pwd: wastream) qui contient des informations de configuration et des URLs PasteBin à scrapper (pour AllDebrid uniquement).
Et voici un exemple de configuration via la WebUI.

