go_media_downloader
go_media_downloader: Vielseitige Medienverwaltung für den eigenen Homeserver
Wer eine eigene Mediensammlung pflegt, kennt die Aufgaben, die damit wachsen: Dateien zuordnen, Metadaten ergänzen, fehlende Inhalte erkennen und einheitliche Verzeichnisstrukturen schaffen. Dazu kommen unterschiedliche Wünsche an Sprache, Qualität und Dateiformate. Gerade diese Details machen aus einer Sammlung ein persönliches Archiv.
go_media_downloader setzt an dieser Stelle an. Das in Go entwickelte Open-Source-Projekt verbindet die Verwaltung von Filmen, Serien, Musik, Hörbüchern und Büchern mit umfangreichen Automatisierungsmöglichkeiten. Als Inspiration nennt das Projekt Radarr, Sonarr, FlexGet und beets. Ein erklärtes Entwicklungsziel ist ein geringer Speicherverbrauch.
Was daran besonders reizvoll ist: Die Software bietet viele Möglichkeiten, die eigene Vorstellung von Medienverwaltung in konkrete Regeln zu übersetzen.
Mehrere Sammlungen mit eigenen Regeln
Ein zentrales Konzept sind Mediengruppen. Für Filme und Serien lassen sich getrennte Sammlungen mit eigenen Qualitätsvorgaben, Quellen, Zielverzeichnissen und Zeitplänen einrichten.
Denkbar sind beispielsweise deutschsprachige Filme, englische Originalfassungen und eine zusätzliche 4K-Auswahl. Jede Gruppe erhält passende Einstellungen. Vorlagen für Datei- und Ordnernamen ergänzen diese Struktur. So lässt sich eine gewachsene Sammlung gezielt organisieren.
Neue Inhalte über Listen und Watchlists entdecken
Als Ausgangspunkt dienen unterschiedliche Listenquellen. Dazu gehören Trakt, TMDB, Plex- und Jellyfin-Watchlists sowie lokale IMDb-CSV-Dateien. Je nach Quellentyp stehen Filter für Genres, Bewertungen, Bewertungsanzahl und die Zahl importierter Einträge zur Verfügung.
Auch Musikcharts, Last.fm-Top-Künstler und Buchbestseller können als Quellen dienen. Die Dokumentation beschreibt dafür unter anderem konfigurierbare XPath-Abfragen. Das eröffnet interessante Möglichkeiten für Sammlungen, die sich an persönlichen Interessen oder aktuellen Listen orientieren.
Metadaten passend zur Medienart
Für Musik lassen sich Anbieter wie MusicBrainz, AcoustID, Last.fm und Discogs priorisieren. AcoustID ermöglicht mit dem zusätzlichen Werkzeug fpcalc die Identifikation über Audio-Fingerprints. Für Bücher und Hörbücher nennt die Konfiguration unter anderem OpenLibrary und Audnex.
Zur technischen Dateianalyse können FFprobe oder MediaInfo eingebunden werden. Damit stehen neben der Benennung weitere Informationen für die Verarbeitung zur Verfügung.
Qualitätsprofile bis ins Detail
Qualität hat viele Facetten. Entsprechend erlauben die Profile Vorgaben für Auflösung, Quellenqualität, Video-Codec und Audioformat. Auch eine Zielqualität lässt sich definieren, bei deren Erreichen die Suche nach weiteren Verbesserungen endet.
Für Musik und Hörbücher kommen eigene Kriterien hinzu: akzeptierte Audioformate, Mindestbitrate und die Bevorzugung verlustfreier Formate. Eine Musiksammlung mit FLAC-Schwerpunkt kann dadurch andere Prioritäten erhalten als eine platzsparende Hörbuchbibliothek.
Zusätzliche Regex-Regeln verfeinern die Auswahl anhand von Release-Namen. Bestimmte Merkmale lassen sich voraussetzen oder ausschließen – beispielsweise Sprachkennzeichnungen, Veröffentlichungsgruppen oder Begriffe wie „Sample“ und „Trailer“.
Indexer und Download-Clients verbinden
Für die Suche unterstützt go_media_downloader Newznab- und Torznab-Indexer. RSS-Verarbeitung, Suchparameter und konfigurierbare Abruflimits helfen dabei, die Abfragen an die jeweilige Quelle anzupassen.
Die eigentlichen Downloads übernehmen angebundene Clients. Dokumentiert sind unter anderem SABnzbd, NZBGet, qBittorrent, Transmission und Deluge. Alternativ lassen sich NZB- oder Torrent-Dateien in einem Verzeichnis ablegen und von dort weiterverarbeiten. Damit bietet sich die Anwendung auch für vorhandene Download-Umgebungen an.
Dateien organisieren und Audio ergänzen
Die Dateiverarbeitung bietet weitere Möglichkeiten: automatische Organisation anhand eigener Namensvorlagen, optionales Entpacken von Archiven und Protokolle der Umbenennungen.
Im Audiobereich können Cover eingebettet und Liedtexte ergänzt werden. Für den Abgleich von Musik und Hörbüchern gibt es zudem Einstellungen zur Gewichtung von Titeln, Reihenfolge und Laufzeiten. Das ist gerade bei unterschiedlichen Albumeditionen oder abweichenden Kapitelaufteilungen interessant.
Wiederkehrende Arbeit dem Scheduler überlassen
Der Scheduler unterstützt sowohl Zeitintervalle als auch Cron-Ausdrücke. Listenimporte, Metadatenaktualisierungen, Dateiprüfungen und Suchläufe lassen sich dadurch zeitlich steuern.
Ein möglicher Ablauf wäre, Listen regelmäßig einzulesen und umfangreichere Prüfungen auf die Nacht zu legen. Unterschiedliche Aufgaben können ihren eigenen Rhythmus erhalten. Wer seinen Homeserver bewusst betreibt, findet hier viele Stellschrauben für einen passenden Tagesablauf.
Weboberfläche mit Werkzeugen für die Feinarbeit
Die Weboberfläche bündelt Konfiguration, Verwaltung und Diagnose. Zu den dokumentierten Werkzeugen gehören:
- Cron-Generator zum Erstellen und Prüfen von Zeitplänen.
- Naming-Generator und Namensvorschau für Datei- und Ordnerstrukturen.
- Regex-Tester zur Kontrolle eigener Filter.
- Parsing- und Metadatentests zur Prüfung der Erkennung.
- Logansicht, Jobverwaltung und Datenbankwerkzeuge für den laufenden Betrieb.
Solche Hilfen sind besonders wertvoll, wenn Regeln über längere Zeit wachsen: Sie machen Einstellungen greifbarer und erleichtern die Fehlersuche.
Eine API für eigene Ideen
Über die API lassen sich beispielsweise Jobs starten, Metadaten aktualisieren, einzelne Filme oder Episoden suchen und zugeordnete beziehungsweise unzugeordnete Inhalte abfragen. Die Dokumentation enthält PowerShell-Beispiele; die laufende Anwendung stellt eine Swagger-Dokumentation bereit.
Für eigene Skripte ergeben sich daraus viele Ansatzpunkte – etwa gezielte Suchläufe, zusätzliche Auswertungen oder die Einbindung in bestehende Verwaltungsabläufe.
Benachrichtigungen und nachvollziehbare Ereignisse
Auch über Veränderungen an der Sammlung kann die Anwendung informieren. Unterstützt werden Pushover, Gotify, Pushbullet und Apprise. Ereignisse lassen sich außerdem als CSV protokollieren.
Dadurch können neue oder verbesserte Inhalte als Push-Nachricht sichtbar werden oder in eine eigene Auswertung einfließen. Die Automatisierung erhält damit eine praktische Rückmeldung für den Alltag.
Einstieg auf dem eigenen Server
Für den Betrieb stehen Docker sowie Installationen unter Windows und Linux zur Verfügung. Die Installationsanleitung empfiehlt Docker und beschreibt die benötigten Werkzeuge sowie die Einrichtung. Abhängig von den gewünschten Integrationen werden Zugangsdaten oder API-Schlüssel externer Dienste benötigt.
Ein sinnvoller Einstieg ist eine einzelne Mediengruppe mit überschaubaren Regeln. Sobald Quellen, Erkennung und Zielstruktur passen, lässt sich die Konfiguration schrittweise erweitern.
Die README kennzeichnet die Weboberfläche V2 als in Entwicklung und empfiehlt vor ihrer Nutzung Sicherungen von Konfiguration und Datenbank.
Viel Raum für das eigene Medienkonzept
Der besondere Reiz von go_media_downloader liegt im Zusammenspiel seiner Möglichkeiten. Listen liefern Anregungen, Qualitätsprofile setzen Prioritäten, Vorlagen schaffen Ordnung und Zeitpläne übernehmen Routineaufgaben. Dazu kommen Werkzeuge für Menschen, die gern genauer hinsehen und ihre Abläufe selbst gestalten.
Wer Freude an Self-Hosting hat, findet hier ein Projekt mit vielen Ansatzpunkten zum Ausprobieren und Anpassen.
Projekt und Dokumentation:
go_media_downloader: Flexible Media Management for Your Home Server
Maintaining a personal media collection brings a growing list of tasks: identifying files, adding metadata, spotting missing content, and keeping folders consistent. Different preferences for languages, quality, and file formats add another layer. Those details are what make a collection feel like your own.
go_media_downloader addresses these challenges with a broad set of automation features. Written in Go, this open-source project supports movies, TV shows, music, audiobooks, and books. Its stated inspirations include Radarr, Sonarr, FlexGet, and beets, while a small memory footprint is one of its development goals.
Its appeal lies in the opportunity to turn your preferences into practical rules for managing your collection.
Separate Collections with Their Own Rules
Media groups are a central concept. Movie and TV collections can have separate quality settings, sources, storage directories, and schedules.
For example, German-language movies, English originals, and a dedicated 4K selection could each have suitable settings. File and folder naming templates help complete the structure. This gives an established collection room to develop in a deliberate way.
Discover Content Through Lists and Watchlists
Supported list sources include Trakt, TMDB, Plex and Jellyfin watchlists, and local IMDb CSV files. Depending on the source, filters can narrow entries by genre, rating, vote count, or import limit.
Music charts, Last.fm top artists, and book bestseller lists provide further starting points. The documentation includes configurable XPath queries for extracting entries from supported pages. These options are useful for building collections around personal interests or regularly updated lists.
Metadata for Different Media Types
Music metadata providers such as MusicBrainz, AcoustID, Last.fm, and Discogs can be placed in a preferred order. AcoustID supports audio fingerprint identification through the additional fpcalc tool. Book and audiobook configuration includes sources such as OpenLibrary and Audnex.
FFprobe or MediaInfo can also be connected for technical file analysis, providing information beyond the filename during processing.
Detailed Quality Preferences
Quality profiles cover resolution, source quality, video codecs, and audio formats. Cutoff settings define a target at which further upgrade searches can stop.
Music and audiobooks have additional criteria, including accepted formats, minimum bitrate, and a preference for lossless audio. A music library focused on FLAC can therefore follow different priorities from an audiobook collection designed around smaller files.
Regex rules add another level of control over release names. They can require or reject particular patterns, including language labels, release groups, or terms such as “Sample” and “Trailer”.
Connect Indexers and Download Clients
Searches use Newznab and Torznab indexers. RSS processing, search settings, and configurable request limits allow queries to be tailored to the source.
Connected clients handle the downloads themselves. Documented integrations include SABnzbd, NZBGet, qBittorrent, Transmission, and Deluge. Another option saves NZB or torrent files to a directory for subsequent processing. This offers several ways to work with an existing download setup.
Organise Files and Enrich Audio
File processing includes automatic organisation through naming templates, optional archive extraction, and logs recording renamed files.
Audio processing adds options for embedding cover artwork and lyrics. Music and audiobook matching also provides settings for the relative importance of titles, sequence, and duration. These controls are particularly interesting when working with different album editions or varying audiobook chapter layouts.
Let the Scheduler Handle Recurring Tasks
The scheduler supports time intervals and cron expressions. List imports, metadata updates, file checks, and searches can each run on a suitable schedule.
One possible approach is to refresh lists regularly while reserving more extensive checks for overnight processing. Different tasks can follow different rhythms, giving home server enthusiasts useful control over when work happens.
Browser Tools for Fine-Tuning
The web interface brings configuration, management, and diagnostics together. Its documented tools include:
- Cron generator for creating and validating schedules.
- Naming generator and previews for file and folder structures.
- Regex tester for checking custom filters.
- Parsing and metadata tests for examining recognition.
- Log viewer, job management, and database tools for ongoing administration.
These tools become especially useful as a configuration grows. They make rules easier to inspect and provide practical help when investigating unexpected results.
An API for Your Own Ideas
The API offers operations such as starting jobs, refreshing metadata, searching for individual movies or episodes, and querying matched or unmatched content. The documentation includes PowerShell examples, and the running application provides Swagger documentation.
This creates useful opportunities for custom scripts: targeted searches, additional reporting, or integration with existing administration workflows.
Notifications and Event Records
The application can also report changes to your collection. Supported notification options include Pushover, Gotify, Pushbullet, and Apprise. Events can additionally be recorded in CSV files.
New additions or upgrades can therefore appear as push notifications or feed into your own reporting. This provides convenient feedback on what the automation has accomplished.
Getting Started on Your Server
Deployment options include Docker and direct installation on Windows or Linux. The installation guide recommends Docker and covers setup and supporting tools. Credentials or API keys for external services are required according to the integrations you choose.
A practical starting point is a single media group with a manageable set of rules. Once sources, identification, and destination paths work as intended, the configuration can grow gradually.
The README identifies the V2 web interface as being in development and recommends backing up the configuration and database before using it.
Room to Build Your Own Media Workflow
The appeal of go_media_downloader comes from how its features work together. Lists provide discovery, quality profiles express preferences, templates organise files, and schedules handle recurring work. Management and testing tools support those who enjoy understanding and refining the details.
For anyone who enjoys self-hosting, it offers plenty of opportunities to experiment and build a media workflow around their own requirements.
Explore the project: