### Configure Direct Indexer URL Source: https://context7.com/pcjones/umlautadaptarr/llms.txt Alternative setup where UmlautAdaptarr is used directly as the indexer URL instead of a proxy. ```bash # Statt der originalen Indexer-URL: # https://scenenzbs.com/api?apikey=INDEXER_KEY # Verwende diese UmlautAdaptarr-URL: # http://localhost:5005/_/scenenzbs.com/api?apikey=INDEXER_KEY # Format: http://localhost:5005/{apiKey}/{indexer-domain}/api # {apiKey} = "_" wenn kein API-Key konfiguriert, sonst der konfigurierte Key # Beispiel Sonarr/Radarr Indexer-Konfiguration: # URL: http://localhost:5005/_/scenenzbs.com # API Path: /api # API Key: (original Indexer API Key) ``` -------------------------------- ### Capabilities (Caps) API Source: https://context7.com/pcjones/umlautadaptarr/llms.txt This endpoint forwards capabilities requests to the actual indexer, allowing *arr applications to query the indexer's supported features. The example response shows the structure for server information, searching capabilities, and categories. ```bash curl "http://localhost:5005/{apiKey}/indexer.example.com/api?t=caps&apikey=INDEXER_API_KEY" ``` ```xml ``` -------------------------------- ### GET /titlelookup/ Source: https://context7.com/pcjones/umlautadaptarr/llms.txt Retrieves the original title for a given renamed media title. Requires SETTINGS__EnableChangedTitleCache to be set to true in the configuration. ```APIDOC ## GET /titlelookup/ ### Description Resolves renamed media titles back to their original titles, useful for post-processing scripts. ### Method GET ### Endpoint /titlelookup/ ### Query Parameters - **changedTitle** (string) - Required - The renamed title string to look up. ### Response #### Success Response (200) - **changedTitle** (string) - The input title. - **originalTitle** (string) - The resolved original title. #### Response Example { "changedTitle": "Game.of.Thrones.S01E01.GERMAN.720p", "originalTitle": "Game.of.Thrones.Das.Lied.von.Eis.und.Feuer.S01E01.GERMAN.720p" } ``` -------------------------------- ### TV Search API with Title Source: https://context7.com/pcjones/umlautadaptarr/llms.txt Search for TV series by title. UmlautAdaptarr handles German titles and umlauts, ensuring Sonarr can import the releases correctly. The example response shows the expected XML format. ```bash curl "http://localhost:5005/{apiKey}/indexer.example.com/api?t=tvsearch&q=Game%20of%20Thrones&cat=5000&apikey=INDEXER_API_KEY" ``` ```xml Game.of.Thrones.S01E01.GERMAN.720p.BluRay.x264 TV > HD ... ``` -------------------------------- ### Konfiguration der appsettings.json Source: https://context7.com/pcjones/umlautadaptarr/llms.txt Definiert Kestrel-Endpunkte, API-Host-Einstellungen, Cache-Dauer und die Anbindung an Sonarr, Lidarr und Readarr. ```json { "Kestrel": { "Endpoints": { "Http": { "Url": "http://[::]:5005" } } }, "Settings": { "UserAgent": "UmlautAdaptarr/1.0", "UmlautAdaptarrApiHost": "https://umlautadaptarr.pcjones.de/api/v1", "IndexerRequestsCacheDurationInMinutes": 12, "ApiKey": null, "ProxyPort": 5006, "EnableChangedTitleCache": false }, "Sonarr": [ { "Enabled": true, "Name": "Sonarr", "Host": "http://localhost:8989", "ApiKey": "your_sonarr_api_key" } ], "Lidarr": { "Enabled": false, "Host": "http://localhost:8686", "ApiKey": "your_lidarr_api_key" }, "Readarr": { "Enabled": false, "Host": "http://localhost:8787", "ApiKey": "your_readarr_api_key" } } ``` -------------------------------- ### Indexer Proxy Configuration Source: https://context7.com/pcjones/umlautadaptarr/llms.txt Documentation on how to configure UmlautAdaptarr as an HTTP proxy or direct indexer URL for *arr applications. ```APIDOC ## Indexer Configuration ### Description UmlautAdaptarr can be used as an HTTP proxy (via port 5006) or as a direct indexer URL (via port 5005) to intercept and process indexer requests. ### Direct Indexer URL Format http://localhost:5005/{apiKey}/{indexer-domain}/api - **{apiKey}**: Use "_" if no API key is configured, otherwise use the configured key. - **{indexer-domain}**: The domain of the target indexer. ### Proxy Usage Configure the application as an HTTP proxy in Prowlarr settings using the proxy port (default 5006). ``` -------------------------------- ### Configure Multiple *arr Instances Source: https://context7.com/pcjones/umlautadaptarr/llms.txt Define multiple instances of the same *arr type by using indexed environment variables. ```yaml # docker-compose.yml mit mehreren Sonarr-Instanzen services: umlautadaptarr: image: pcjones/umlautadaptarr environment: # Erste Sonarr-Instanz - SONARR__0__NAME=Sonarr HD - SONARR__0__ENABLED=true - SONARR__0__HOST=http://sonarr-hd:8989 - SONARR__0__APIKEY=api_key_hd # Zweite Sonarr-Instanz - SONARR__1__NAME=Sonarr 4K - SONARR__1__ENABLED=true - SONARR__1__HOST=http://sonarr-4k:8989 - SONARR__1__APIKEY=api_key_4k ``` -------------------------------- ### TitleMatchingService Logik Source: https://context7.com/pcjones/umlautadaptarr/llms.txt Beschreibt die interne Verarbeitung von XML-Indexer-Antworten und die automatische Umbenennung von Titeln basierend auf Medientypen. ```csharp // Interner Service-Aufruf // Der Service verarbeitet XML-Content und benennt Titel automatisch um // Unterstützte Medientypen und deren Kategorien: // - "tv": Kategorie 5000, beginnt mit "TV" oder "Serien" // - "movie": Kategorie 2000, beginnt mit "Movies" oder "Filme" // - "audio": Kategorie 3000, beginnt mit "Audio" oder "Musik" // - "book": Kategorie 7000/3030, enthält "Audiobook", "Hörbuch", "EBook", "Book" // Beispiel der Titelverarbeitung: // Input: "Game.of.Thrones.Das.Lied.von.Eis.und.Feuer.S01E01.GERMAN.720p" // Output: "Game.of.Thrones.S01E01.GERMAN.720p" // // Input: "Frieren.Beyond.Journeys.End.S01E01.GERMAN.1080p" // Output: "Frieren.Beyond.Journeys.End.S01E01.GERMAN.1080p" (bereits korrekt) // // Input: "Stephen.King.-.Es.German.2017.MP3" // Output: "Stephen King - ES-[German.2017.MP3]" ``` -------------------------------- ### Configure Docker Compose Source: https://context7.com/pcjones/umlautadaptarr/llms.txt Standard Docker Compose configuration for UmlautAdaptarr using environment variables for service integration. ```yaml # docker-compose.yml version: '3.8' services: umlautadaptarr: image: pcjones/umlautadaptarr restart: unless-stopped ports: - "5005:5005" # HTTP API Port - "5006:5006" # Proxy Port für Prowlarr environment: - TZ=Europe/Berlin # Sonarr Konfiguration (einzelne Instanz) - SONARR__ENABLED=true - SONARR__HOST=http://sonarr:8989 - SONARR__APIKEY=your_sonarr_api_key # Radarr Konfiguration - RADARR__ENABLED=true - RADARR__HOST=http://radarr:7878 - RADARR__APIKEY=your_radarr_api_key # Readarr Konfiguration - READARR__ENABLED=true - READARR__HOST=http://readarr:8787 - READARR__APIKEY=your_readarr_api_key # Lidarr Konfiguration - LIDARR__ENABLED=true - LIDARR__HOST=http://lidarr:8686 - LIDARR__APIKEY=your_lidarr_api_key # Erweiterte Einstellungen - SETTINGS__IndexerRequestsCacheDurationInMinutes=12 - SETTINGS__EnableChangedTitleCache=false - SETTINGS__ProxyPort=5006 ``` -------------------------------- ### CacheService Lookups Source: https://context7.com/pcjones/umlautadaptarr/llms.txt Zeigt die Cache-Struktur für SearchItems und Beispiele für den Abruf von Daten über den CacheService. ```csharp // Cache-Struktur für verschiedene Medientypen: // - {mediaType}_extid_{externalId}: SearchItem nach externer ID // - {mediaType}_title_{normalizedTitle}: SearchItem nach normalisiertem Titel // - {mediaType}_var_{normalizedVariation}: SearchItem nach Titelvariante // Titel-Rename-Cache (für TitleLookup API): // - title_rename_{changedTitle}: Original-Titel (12 Stunden Cache) // Beispiel-Lookups: // cacheService.GetSearchItemByExternalId("tv", "121361") // cacheService.SearchItemByTitle("tv", "Game of Thrones Das Lied von Eis und Feuer") // cacheService.GetOriginalTitleFromRenamed("Game.of.Thrones.S01E01") ``` -------------------------------- ### Configure Prowlarr HTTP Proxy Source: https://context7.com/pcjones/umlautadaptarr/llms.txt Set up UmlautAdaptarr as an HTTP proxy in Prowlarr to enable parallel indexer requests. ```bash # Prowlarr Proxy-Einstellungen: # 1. Settings > Indexers > Neuer HTTP-Proxy # - Name: UmlautAdaptarr HTTP Proxy # - Host: umlautadaptarr (oder localhost/IP) # - Port: 5006 # - Tag: umlautadaptarr # # 2. Für jeden Indexer: # - Tag "umlautadaptarr" hinzufügen # - URL von https:// zu http:// ändern # # Test der Proxy-Konfiguration curl -x http://localhost:5006 "http://indexer.example.com/api?t=caps&apikey=INDEXER_KEY" # Bei aktiviertem API-Key: curl -x http://user:YOUR_API_KEY@localhost:5006 "http://indexer.example.com/api?t=caps&apikey=INDEXER_KEY" ``` -------------------------------- ### Music Search API Source: https://context7.com/pcjones/umlautadaptarr/llms.txt Integrate with Lidarr for music downloads using this endpoint. Supports specific categories for audio and music. ```bash curl "http://localhost:5005/{apiKey}/indexer.example.com/api?t=music&q=Artist%20Name&cat=3000&apikey=INDEXER_API_KEY" ``` ```bash curl "http://localhost:5005/{apiKey}/indexer.example.com/api?t=music&q=Album%20Title&cat=3010,3020&apikey=INDEXER_API_KEY" ``` -------------------------------- ### Capabilities (Caps) API Source: https://context7.com/pcjones/umlautadaptarr/llms.txt The Caps endpoint forwards the Capabilities request to the actual indexer, allowing *arr applications to query the indexer's supported features. ```APIDOC ## Capabilities (Caps) API ### Description Forwards the Capabilities request to the actual indexer, allowing *arr applications to query supported features. ### Method GET ### Endpoint `http://localhost:5005/{apiKey}/indexer.example.com/api` ### Query Parameters - **t** (string) - Required - Specifies the type of request, should be `caps`. - **apikey** (string) - Required - Your indexer API key. ### Request Example ```bash # Capabilities-Abfrage curl "http://localhost:5005/{apiKey}/indexer.example.com/api?t=caps&apikey=INDEXER_API_KEY" ``` ### Response #### Success Response (200) Returns an XML document detailing the server version, title, and supported search capabilities (searching, categories) of the indexer. #### Response Example ```xml ``` ``` -------------------------------- ### Movie Search API with Free Text Source: https://context7.com/pcjones/umlautadaptarr/llms.txt Perform a free text search for movies. UmlautAdaptarr ensures that the results are compatible with Radarr. ```bash curl "http://localhost:5005/{apiKey}/indexer.example.com/api?t=movie&q=Inception&cat=2000&apikey=INDEXER_API_KEY" ``` -------------------------------- ### Generic Search API Source: https://context7.com/pcjones/umlautadaptarr/llms.txt The Generic Search endpoint (t=search) allows for general search queries. UmlautAdaptarr automatically determines the media type based on the provided categories. ```bash curl "http://localhost:5005/{apiKey}/indexer.example.com/api?t=search&q=Suchbegriff&cat=5000,7000&apikey=INDEXER_API_KEY" ``` -------------------------------- ### Music Search API Source: https://context7.com/pcjones/umlautadaptarr/llms.txt The Music-Search endpoint integrates with Lidarr for music downloads. It supports specific categories for music and audio files. ```APIDOC ## Music Search API ### Description Integrates with Lidarr for music downloads. Supports specific categories for music and audio files. ### Method GET ### Endpoint `http://localhost:5005/{apiKey}/indexer.example.com/api` ### Query Parameters - **t** (string) - Required - Specifies the type of search, should be `music`. - **q** (string) - Required - The artist or album title to search for. - **cat** (string) - Required - Category IDs, e.g., `3000` (Audio/General), `3010` (24bit Lossless), `3020` (16bit Lossless), `3040` (Lossy), `3050` (MP3). - **apikey** (string) - Required - Your indexer API key. ### Request Example ```bash # Musik-Suche curl "http://localhost:5005/{apiKey}/indexer.example.com/api?t=music&q=Artist%20Name&cat=3000&apikey=INDEXER_API_KEY" # Musik-Suche mit spezifischer Kategorie (Audio/Musik) curl "http://localhost:5005/{apiKey}/indexer.example.com/api?t=music&q=Album%20Title&cat=3010,3020&apikey=INDEXER_API_KEY" ``` ``` -------------------------------- ### Query Title-Lookup API Source: https://context7.com/pcjones/umlautadaptarr/llms.txt Use the title lookup endpoint to resolve renamed titles to their original versions. Requires SETTINGS__EnableChangedTitleCache to be set to true in the configuration. ```bash # Title-Lookup aktivieren in der Konfiguration: # SETTINGS__EnableChangedTitleCache=true # Original-Titel abfragen curl "http://localhost:5005/titlelookup/?changedTitle=Game.of.Thrones.S01E01.GERMAN.720p" # Erfolgreiche Antwort: # { # "changedTitle": "Game.of.Thrones.S01E01.GERMAN.720p", # "originalTitle": "Game.of.Thrones.Das.Lied.von.Eis.und.Feuer.S01E01.GERMAN.720p" # } # Fehler wenn nicht gefunden: # 404: "Original title not found for 'Game.of.Thrones.S01E01.GERMAN.720p'." # Fehler wenn Feature deaktiviert: # 501: "Set SETTINGS__EnableChangedTitleCache to true to use this endpoint." ``` -------------------------------- ### Book Search API Source: https://context7.com/pcjones/umlautadaptarr/llms.txt Use this endpoint for E-books and audiobooks with Readarr. It correctly maps author and title information and supports specific categories for books and audiobooks. ```bash curl "http://localhost:5005/{apiKey}/indexer.example.com/api?t=book&q=Author%20-%20Book%20Title&cat=7000&apikey=INDEXER_API_KEY" ``` ```bash curl "http://localhost:5005/{apiKey}/indexer.example.com/api?t=book&q=Stephen%20King%20-%20ES&cat=3030&apikey=INDEXER_API_KEY" ``` -------------------------------- ### Generic Search API Source: https://context7.com/pcjones/umlautadaptarr/llms.txt The Generic-Search endpoint (t=search) is used for general search queries. It automatically detects the media type based on the provided categories. ```APIDOC ## Generic Search API ### Description Used for general search queries (`t=search`). Automatically detects media type based on categories. ### Method GET ### Endpoint `http://localhost:5005/{apiKey}/indexer.example.com/api` ### Query Parameters - **t** (string) - Required - Specifies the type of search, should be `search`. - **q** (string) - Required - The search term. - **cat** (string) - Required - Category IDs. The system automatically maps these to media types (e.g., `7000` for Books, `5000` for TV, `2000` for Movies). - **apikey** (string) - Required - Your indexer API key. ### Request Example ```bash # Generische Suche mit automatischer Kategoriezuordnung curl "http://localhost:5005/{apiKey}/indexer.example.com/api?t=search&q=Suchbegriff&cat=5000,7000&apikey=INDEXER_API_KEY" ``` ### Category Mapping - `cat=7000, 3030`: Books/Audiobooks (Readarr) - `cat=3000, 3010, 3020`: Audio/Music (Lidarr) - `cat=5000`: TV Series (Sonarr) - `cat=2000`: Movies (Radarr) ``` -------------------------------- ### TV Search API with TVDB ID Source: https://context7.com/pcjones/umlautadaptarr/llms.txt Use this endpoint to search for TV series using their TVDB ID. UmlautAdaptarr automatically resolves German titles and renames releases for Sonarr compatibility. ```bash curl "http://localhost:5005/{apiKey}/indexer.example.com/api?t=tvsearch&tvdbid=121361&cat=5000&apikey=INDEXER_API_KEY" ``` -------------------------------- ### TV Search API Source: https://context7.com/pcjones/umlautadaptarr/llms.txt The TV-Search endpoint allows searching for TV series using either the TVDB ID or the title. UmlautAdaptarr automatically resolves German titles and aliases, renaming found releases for Sonarr compatibility. ```APIDOC ## TV Search API ### Description Allows searching for TV series using TVDB ID or title. UmlautAdaptarr resolves German titles and aliases, renaming releases for Sonarr compatibility. ### Method GET ### Endpoint `http://localhost:5005/{apiKey}/indexer.example.com/api` ### Query Parameters - **t** (string) - Required - Specifies the type of search, should be `tvsearch`. - **tvdbid** (integer) - Optional - The TVDB ID of the series. - **q** (string) - Optional - The title of the series to search for. - **cat** (string) - Required - Category ID, typically `5000` for TV. - **apikey** (string) - Required - Your indexer API key. ### Request Example ```bash # TV-Suche mit TVDB-ID curl "http://localhost:5005/{apiKey}/indexer.example.com/api?t=tvsearch&tvdbid=121361&cat=5000&apikey=INDEXER_API_KEY" # TV-Suche mit Titel curl "http://localhost:5005/{apiKey}/indexer.example.com/api?t=tvsearch&q=Game%20of%20Thrones&cat=5000&apikey=INDEXER_API_KEY" ``` ### Response #### Success Response (200) Returns an XML RSS feed containing search results. The `title` field of each item will be the renamed release title. #### Response Example ```xml Game.of.Thrones.S01E01.GERMAN.720p.BluRay.x264 TV > HD ... ``` ``` -------------------------------- ### Movie Search API with IMDB ID Source: https://context7.com/pcjones/umlautadaptarr/llms.txt Search for movies using their IMDB ID. UmlautAdaptarr processes requests and modifies results for Radarr compatibility. ```bash curl "http://localhost:5005/{apiKey}/indexer.example.com/api?t=movie&imdbid=tt1375666&cat=2000&apikey=INDEXER_API_KEY" ``` -------------------------------- ### Movie Search API with TMDB ID Source: https://context7.com/pcjones/umlautadaptarr/llms.txt Search for movies using their TMDB ID. This endpoint ensures compatibility with Radarr by processing and modifying search results. ```bash curl "http://localhost:5005/{apiKey}/indexer.example.com/api?t=movie&tmdbid=27205&cat=2000&apikey=INDEXER_API_KEY" ``` -------------------------------- ### Book Search API Source: https://context7.com/pcjones/umlautadaptarr/llms.txt The Book-Search endpoint supports Readarr for e-books and audiobooks. It correctly maps author and title information for these media types. ```APIDOC ## Book Search API ### Description Supports Readarr for e-books and audiobooks. Correctly maps author and title information. ### Method GET ### Endpoint `http://localhost:5005/{apiKey}/indexer.example.com/api` ### Query Parameters - **t** (string) - Required - Specifies the type of search, should be `book`. - **q** (string) - Required - The author and book title to search for, format: `Author - Book Title`. - **cat** (string) - Required - Category IDs, e.g., `7000` (E-books), `3030` (Audiobooks). - **apikey** (string) - Required - Your indexer API key. ### Request Example ```bash # Buch-Suche curl "http://localhost:5005/{apiKey}/indexer.example.com/api?t=book&q=Author%20-%20Book%20Title&cat=7000&apikey=INDEXER_API_KEY" # Hörbuch-Suche curl "http://localhost:5005/{apiKey}/indexer.example.com/api?t=book&q=Stephen%20King%20-%20ES&cat=3030&apikey=INDEXER_API_KEY" ``` ### Note Original titles like `Stephen.King.-.Es.German.2017.MP3` are processed to `Stephen King - ES-[German.2017.MP3]` for better compatibility. ``` -------------------------------- ### Movie Search API Source: https://context7.com/pcjones/umlautadaptarr/llms.txt The Movie-Search endpoint supports searching for movies using IMDB ID, TMDB ID, or a free-text query. UmlautAdaptarr processes requests and modifies results for Radarr compatibility. ```APIDOC ## Movie Search API ### Description Supports searching for movies using IMDB ID, TMDB ID, or free-text query. UmlautAdaptarr ensures results are compatible with Radarr. ### Method GET ### Endpoint `http://localhost:5005/{apiKey}/indexer.example.com/api` ### Query Parameters - **t** (string) - Required - Specifies the type of search, should be `movie`. - **imdbid** (string) - Optional - The IMDB ID of the movie. - **tmdbid** (integer) - Optional - The TMDB ID of the movie. - **q** (string) - Optional - The title of the movie to search for. - **cat** (string) - Required - Category ID, typically `2000` for Movies. - **apikey** (string) - Required - Your indexer API key. ### Request Example ```bash # Film-Suche mit IMDB-ID curl "http://localhost:5005/{apiKey}/indexer.example.com/api?t=movie&imdbid=tt1375666&cat=2000&apikey=INDEXER_API_KEY" # Film-Suche mit TMDB-ID curl "http://localhost:5005/{apiKey}/indexer.example.com/api?t=movie&tmdbid=27205&cat=2000&apikey=INDEXER_API_KEY" # Freitext-Filmsuche curl "http://localhost:5005/{apiKey}/indexer.example.com/api?t=movie&q=Inception&cat=2000&apikey=INDEXER_API_KEY" ``` ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.