MediaForge is a WebUI-only tool for downloading anime and series from AniWorld, SerienStream and FilmPalast. Start it with 'mediaforge' to launch the web interface directly.
Project description
MediaForge
MediaForge is a cross-platform WebUI tool for downloading anime from aniworld.to, series from s.to, and movies from filmpalast.to. It runs on Windows, macOS, and Linux.
Fork of the original AniWorld-Downloader by phoenixthrush, SiroxCW and Tmaster055 — maintained and extended here by TheMRX13 and Domekologe. The legacy CLI has been removed; everything runs through the WebUI.
| WebUI (Landing Page) | WebUI (Auto-Sync) |
|---|---|
Quick Start
Requirements: Python ≥ 3.9 and ffmpeg available in your
PATH. New to Python? See the Installation wiki for per-OS instructions.
# Install the latest stable release
pip install mediaforge
# Launch — starts the WebUI and opens your browser
mediaforge
Open http://localhost:8080. Authentication is enabled by default and all settings live in the WebUI — no .env file needed.
Useful launch flags: -wP <port> (custom port) · -wH 0.0.0.0 (expose to LAN/Docker/reverse proxy) · -wN (don't open the browser) · -d (debug logging).
📖 Full setup — including how to install Python & ffmpeg, the data directory and first-run steps — is on the Installation and Getting Started wiki pages.
Highlights
- Browse, search & download full series, seasons or single episodes from aniworld.to, s.to and filmpalast.to
- AutoSync — keep series up to date automatically on an interval or weekly schedule, with per-job season/episode filters and a separate path for movies/specials
- Download queue & history — a real-time queue plus a searchable, filterable history (failed/cancelled/skipped, retry, bulk delete, export, auto-retention)
- Media library, favourites & statistics built in
- CineInfo (TMDB) metadata, a Calendar of upcoming episodes, plus Jellyfin/Plex and Jellyseerr/Overseerr integration
- Notifications via Web Push, Telegram, Pushover, Discord or WhatsApp
- Encoding (Stream Copy / H.264 / H.265, with NVENC, VAAPI, VideoToolbox) and Anime4K upscaling
- Multi-user auth & OIDC SSO, a full REST API, Docker-ready, and a UI in English & German
→ Full feature tour in the Wiki.
Documentation
Everything is documented in the Wiki — available in English and Deutsch:
| Getting started | Features | Reference |
|---|---|---|
| Installation · Getting Started · Docker | AutoSync · Download History · Library · Integrations · SyncPlay · Encoding | Configuration · Authentication · Supported Sites · API Reference · Architecture |
Docker
docker pull ghcr.io/pd-codes/mediaforge:latest
docker run -it --rm -p 8080:8080 \
-v "${PWD}/Downloads:/app/Downloads" \
-v mediaforge-data:/home/mediaforge/.mediaforge \
ghcr.io/pd-codes/mediaforge:latest
Mount your Downloads folder for the files and the mediaforge-data volume for config/database. For Docker Compose, reverse proxy (nginx), LAN access and env-based admin setup, see the Docker wiki page.
Roadmap
Actively in development — current work in progress:
- Multi-Language Support — UI available in German and English
- More Extractors — additional video host support beyond the current providers
- Live Transcode / In-Browser Playback — watch downloaded files directly in the UI
- Discord Rich Presence — show what you're currently watching on your Discord profile
- More Sources — additional anime, series and movie providers (open a feature request)
- AutoSync Episode Filter — configure per job which seasons/episodes to sync, include/skip movies & specials, separate movie download path
- AutoSync Schedule — run on a fixed interval or a weekly plan (weekdays + times)
- Provider Fallback Order — automatically try the next provider if the primary one fails
- Calendar View — show upcoming episode air dates for AutoSync jobs based on TMDB data
- Bandwidth Limit / Download Time Window — throttle speed or restrict downloads to specific hours
- Download History — searchable log of all completed downloads with date, size and duration
- Generic Outgoing Webhook — send a configurable POST request on download completion (Home Assistant, n8n, etc.)
- Subtitle Support — additional language and subtitle download options
- Integrated VPN/Proxy — download through VPN or proxy servers to increase privacy
- Adding Pills to Advanced Search if a Media is already downloaded, and more
- Auto-Sync "Waitlist". If an Auto-Sync Title was not found for X Days, it will be tried again in Y week(s)
Supported Sites & Extractors
URLs from aniworld.to, s.to and filmpalast.to are supported, delivered behind the scenes via hosters such as VOE, Vidoza, Vidmoly, Filemoon, Doodstream, Vidara and Veev.
→ See Supported Sites for the live status of each site and extractor, and which hosters are prioritized per site.
Contributing
Contributions are highly appreciated — report bugs, suggest features, submit pull requests, or improve the docs. Please check existing issues first to avoid duplicates, and feel free to discuss ideas on Discord before opening a PR.
Credits
Builds upon the work of several outstanding open-source projects and individuals:
Original authors — phoenixthrush (creator of AniWorld-Downloader), SiroxCW and Tmaster055.
Libraries & tools — mpv, Flask and Waitress.
Other Cool Projects
- Jellyfin AniWorld Downloader by SiroxCW — a Jellyfin plugin to browse and download anime & series directly from AniWorld, integrated into your media server.
- AniBridge by Zzackllack — a minimal FastAPI service bridging anime and series catalogues (AniWorld, SerienStream/s.to, MegaKino) with automation tools.
Support
- Discord Server — the fastest way to get help and chat with other users.
- GitHub Issues — preferred for installation problems, bug reports and feature requests.
If you find MediaForge useful, please ⭐ the repository — it's greatly appreciated and motivates continued development.
Legal Disclaimer
MediaForge is a client-side tool that enables access to content hosted on third-party websites. It does not host, upload, store, or distribute any media itself.
This software is not intended to promote piracy or copyright infringement. You are solely responsible for how you use it and for ensuring that your use complies with applicable laws and the terms of service of the websites you access.
The developer provides this project "as is" and is not responsible for third-party content, external links, or the availability, accuracy, legality or reliability of any third-party service. If you have concerns about specific content, please contact the respective website or rights holder directly.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mediaforge-1.1.0.tar.gz.
File metadata
- Download URL: mediaforge-1.1.0.tar.gz
- Upload date:
- Size: 1.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d6cc9b1b244cfe2c9e7ac806a1808ec868431cbd6759dc27f76545b180cb2cd
|
|
| MD5 |
38037cb55deaa747b8dab687e9409477
|
|
| BLAKE2b-256 |
254bb3d20e7896267a0130957357369480b5ab9a4edb094e8b268e0b0bfa2328
|
Provenance
The following attestation bundles were made for mediaforge-1.1.0.tar.gz:
Publisher:
auto-tag.yaml on PD-Codes/MediaForge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mediaforge-1.1.0.tar.gz -
Subject digest:
2d6cc9b1b244cfe2c9e7ac806a1808ec868431cbd6759dc27f76545b180cb2cd - Sigstore transparency entry: 2087903396
- Sigstore integration time:
-
Permalink:
PD-Codes/MediaForge@240b5dda63dce629eb20b0f101413c549a046269 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PD-Codes
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
auto-tag.yaml@240b5dda63dce629eb20b0f101413c549a046269 -
Trigger Event:
push
-
Statement type:
File details
Details for the file mediaforge-1.1.0-py3-none-any.whl.
File metadata
- Download URL: mediaforge-1.1.0-py3-none-any.whl
- Upload date:
- Size: 1.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
841b04acf3a72682e5ce4ac38d56b3b5d210f36f32d2b0fe392ce3ddb843117e
|
|
| MD5 |
73a75f4d46c0dd07607734c08012ae52
|
|
| BLAKE2b-256 |
0e33745f1014a3ec76eaacb02559324e3f19323498570b4a531a479d74b17977
|
Provenance
The following attestation bundles were made for mediaforge-1.1.0-py3-none-any.whl:
Publisher:
auto-tag.yaml on PD-Codes/MediaForge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mediaforge-1.1.0-py3-none-any.whl -
Subject digest:
841b04acf3a72682e5ce4ac38d56b3b5d210f36f32d2b0fe392ce3ddb843117e - Sigstore transparency entry: 2087903496
- Sigstore integration time:
-
Permalink:
PD-Codes/MediaForge@240b5dda63dce629eb20b0f101413c549a046269 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PD-Codes
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
auto-tag.yaml@240b5dda63dce629eb20b0f101413c549a046269 -
Trigger Event:
push
-
Statement type: