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:

Go_Finance_Bot

go_finance_bot: Märkte beobachten, Strategien testen und Trading automatisieren

Wer sich für Börse und Softwareentwicklung begeistert, kennt die Idee: Kursdaten automatisch auswerten, Handelssignale nachvollziehen und eigene Strategien systematisch testen. Genau hier setzt go_finance_bot an. Das in Go entwickelte Projekt verbindet Marktbeobachtung, technische Analyse, Handelssimulation und Broker-Anbindung mit einer eigenen Weboberfläche.

Das macht es zu einem spannenden Werkzeug für alle, die sich praktisch mit automatisiertem Trading beschäftigen möchten – vom ersten Experiment mit simulierten Kursen bis zur Anbindung eines Brokerkontos.

Von Kursdaten zu nachvollziehbaren Signalen

Im Mittelpunkt stehen Aktien und ETFs, deren Kursentwicklung der Bot anhand verschiedener technischer Indikatoren untersucht. Dazu gehören etwa gleitende Durchschnitte, RSI, MACD, Bollinger-Bänder und volumenbasierte Verfahren.

Mehrere Signalgeber lassen sich miteinander kombinieren. Dadurch können Strategien entstehen, die beispielsweise einen Trend erkennen und zusätzliche Bestätigung durch Momentum oder Handelsvolumen verlangen. Auch die Bestätigung über mehrere Zeitebenen ist vorgesehen.

Praktisch ist dabei die Transparenz: Die Weboberfläche zeigt die Einschätzungen der einzelnen Signalgeber. So lässt sich beobachten, wie eine Handelsentscheidung zustande kommt.

Erst ausprobieren, dann weitergehen

Der Einstieg gelingt vollständig offline: Standardmäßig verwendet das Projekt synthetische Kursdaten und einen simulierten Broker. Die Orderausführung ist zunächst deaktiviert. Damit lassen sich Oberfläche und Einstellungen in Ruhe kennenlernen.

Für weiterführende Tests stehen mehrere Möglichkeiten bereit:

  • Backtesting: Strategien auf historischen Kursdaten durchspielen.
  • Simulierter Handel: Die Strategie mit laufenden Marktdaten beobachten.
  • Parameteroptimierung: Unterschiedliche Einstellungen systematisch vergleichen.

Besonders interessant: Das Backtesting verwendet dieselben Strategie-, Risiko- und Ausstiegsmechanismen wie der laufende Bot. Das erleichtert den Vergleich zwischen Test und Betrieb. Wie aussagekräftig die Ergebnisse sind, hängt weiterhin von Datenqualität, berücksichtigten Handelskosten und der Prüfung auf unabhängigen Zeiträumen ab.

Risikoregeln als fester Bestandteil

go_finance_bot berücksichtigt mehr als Kauf- und Verkaufssignale. Jede manuelle und automatisierte Order durchläuft eine zentrale Risikoprüfung.

Konfigurierbar sind unter anderem Höchstbeträge pro Order und Position, das insgesamt investierte Kapital, tägliche Kaufbeträge sowie eine verbleibende Bargeldreserve. Ergänzend gibt es Stop-Loss, Trailing-Stop, Gewinnmitnahmen und Schutzmechanismen bei Verlusten oder auffällig hoher Orderfrequenz.

Diese Funktionen helfen, den vorgesehenen Handlungsspielraum technisch abzubilden. Kapitalverluste bleiben auch mit solchen Regeln möglich.

Weboberfläche, Docker und persistente Daten

Die integrierte Weboberfläche macht das Projekt auch im Alltag zugänglich. Watchlist, Signale, offene Positionen und zahlreiche Strategieeinstellungen lassen sich im Browser einsehen beziehungsweise bearbeiten. Die neuere Oberfläche unterstützt Deutsch und Englisch.

Für den Betrieb stehen Docker-Images für AMD64 und ARM64 bereit. Konfiguration und SQLite-Datenbank können in einem eingebundenen Datenverzeichnis liegen. Bei aktivierter SQLite-Speicherung bleiben unter anderem Trades, Watchlist und offene Positionen über Neustarts hinweg erhalten.

Benachrichtigungen über beispielsweise Telegram, Discord oder Webhooks ergänzen die Überwachung.

Broker-Anbindung und optionale KI

Für Aktien und ETFs enthält das Projekt Anbindungen an Alpaca, Saxo Bank und Trading 212. Die verfügbaren Orderfunktionen unterscheiden sich je nach Broker und API.

Zusätzlich lassen sich öffentliche Binance-Marktdaten zur Analyse und Simulation von Kryptowährungen nutzen. Dieser Bereich dient der Marktbeobachtung, dem Backtesting und simulierten Handel.

Wer experimentieren möchte, kann außerdem einen optionalen KI-Berater hinzunehmen. Dieser unterstützt lokale Modelle über Ollama sowie OpenAI-kompatible Endpunkte und bringt seine Einschätzung als weiteres Signal ein. Ein zusätzlicher Machine-Learning-Detektor ergänzt die regelbasierten Verfahren.

Ein Projekt für alle, die Trading verstehen möchten

go_finance_bot bringt viele Bausteine zusammen, die für eigene Trading-Experimente hilfreich sind: transparente Signale, Simulation, Backtesting, konfigurierbare Risikoregeln und einen selbst betreibbaren technischen Unterbau.

Sein besonderer Reiz liegt darin, eigene Ideen Schritt für Schritt untersuchen zu können. Wer Freude an Go, Automatisierung und Marktanalyse hat, findet hier reichlich Möglichkeiten zum Ausprobieren und Weiterentwickeln.

Neugierig geworden? Quellcode, Einrichtung und ausführliche Dokumentation findest du auf GitHub: go_finance_bot.

Hinweis: Das Projekt dient Lern- und Experimentierzwecken. Bei aktivierter Live-Anbindung können echte Orders und finanzielle Verluste entstehen. Ergebnisse aus Simulationen und Backtests garantieren keine zukünftigen Gewinne.


go_finance_bot: Monitor Markets, Test Strategies and Automate Trading

Anyone interested in both financial markets and software development will recognise the idea: analyse prices automatically, understand trading signals and test strategies systematically. go_finance_bot brings these elements together. Written in Go, the project combines market monitoring, technical analysis, trading simulation and broker connectivity with its own web interface.

It offers an interesting starting point for exploring automated trading—from initial experiments with simulated prices to connecting a brokerage account.

Turning Market Data into Understandable Signals

The bot focuses on stocks and ETFs, analysing price movements through a range of technical indicators. These include moving averages, RSI, MACD, Bollinger Bands and volume-based methods.

Multiple signal generators can work together. A strategy might identify a trend and require additional confirmation from momentum or trading volume. Confirmation across multiple timeframes is also supported.

Transparency is a useful part of the design: the web interface displays the individual detectors’ assessments, helping users understand how a trading decision takes shape.

Start with Simulation

The project can run entirely offline. By default, it uses synthetic market data and a simulated broker, with order execution initially disabled. This provides a straightforward way to explore the interface and settings.

Further testing options include:

  • Backtesting: Replay historical market data through a strategy.
  • Simulated trading: Observe strategy behaviour using a live market feed.
  • Parameter optimisation: Compare different configurations systematically.

The backtesting tools use the same strategy, risk and exit mechanisms as the running bot. This makes comparisons between testing and operation more meaningful. Results still depend on data quality, realistic trading costs and validation against independent periods.

Risk Rules Built into the Process

go_finance_bot goes beyond generating buy and sell signals. Every manual and automated order passes through a central risk check.

Configurable limits cover individual orders, position sizes, total invested capital, daily purchases and a remaining cash reserve. Additional features include stop-loss orders, trailing stops, profit-taking and protective halts for losses or unusually frequent orders.

These controls help enforce the intended trading boundaries. Financial losses remain possible even when those controls are active.

A Web Interface and Self-Hosted Deployment

The integrated web interface makes the project accessible during everyday use. Users can inspect their watchlist, signals and open positions, and edit many strategy settings directly in the browser. The newer interface supports English and German.

Docker images are available for AMD64 and ARM64. Configuration and the SQLite database can reside in a mounted data directory. With SQLite persistence enabled, trades, the watchlist and open positions survive restarts.

Notifications through services such as Telegram, Discord and webhooks provide additional visibility.

Broker Connections and Optional AI

For stocks and ETFs, the project includes adapters for Alpaca, Saxo Bank and Trading 212. Available order features depend on the selected broker and its API.

Public Binance market data can also be used to analyse and simulate cryptocurrency strategies. This functionality covers market monitoring, backtesting and simulated trading.

For further experimentation, an optional AI advisor supports local models through Ollama and OpenAI-compatible endpoints. Its assessment becomes another input to the signal combination process. A separate machine-learning detector complements the rule-based methods.

A Practical Project for Exploring Automated Trading

go_finance_bot brings together many useful components for trading experiments: transparent signals, simulation, backtesting, configurable risk controls and a self-hosted application.

Its appeal lies in the ability to investigate ideas step by step. For anyone who enjoys Go, automation and market analysis, it offers plenty to explore and extend.

Want to take a closer look? Find the source code, setup instructions and detailed documentation on GitHub: go_finance_bot.

Note: This project is intended for learning and experimentation. Enabling live broker connectivity can result in real orders and financial losses. Simulation and backtesting results do not guarantee future profits.