--- id: nostradamus name: Nostradamus description: "Nostradamus is a ratioless FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL" language: fr-FR type: private encoding: UTF-8 links: - https://nostradamus.foo/ caps: categorymappings: # from https://nostradamus.foo/api?t=caps&apikey=YOUR-API-KEY - {id: 2000, cat: Movies, desc: "Films"} - {id: 2020, cat: Movies, desc: "Films/Film"} - {id: 2010, cat: Movies/Other, desc: "Films/Animation"} - {id: 2030, cat: TV/Documentary, desc: "Films/Documentaire"} - {id: 2040, cat: Audio/Video, desc: "Films/Spectacle"} - {id: 2060, cat: Audio/Video, desc: "Films/Concert"} - {id: 5000, cat: TV, desc: "Séries TV"} - {id: 5040, cat: TV, desc: "Séries TV/Série TV"} - {id: 5070, cat: TV/Anime, desc: "Séries TV/Animation Série"} - {id: 5080, cat: TV, desc: "Séries TV/Emission TV"} - {id: 5090, cat: Audio/Video, desc: "Vidéo"} - {id: 5060, cat: TV/Sport, desc: "Vidéo/Sport"} - {id: 5091, cat: Audio/Video, desc: "Vidéo/Vidéo-clips"} - {id: 5092, cat: Audio/Video, desc: "Vidéo/Autre"} - {id: 7000, cat: Books, desc: "eBook"} - {id: 7010, cat: Audio/Audiobook, desc: "eBook/Audio"} - {id: 7030, cat: Books/Comics, desc: "eBook/BDs"} - {id: 7040, cat: Books/Comics, desc: "eBook/Comics"} - {id: 7020, cat: Books/EBook, desc: "eBook/Livres"} - {id: 7050, cat: Books/Comics, desc: "eBook/Mangas"} - {id: 7060, cat: Books/Mags, desc: "eBook/Presse"} - {id: 8000, cat: Books/Mags, desc: "eBook/Littérature & Audio/Autre"} - {id: 3000, cat: Audio, desc: "Audio"} - {id: 3030, cat: Audio/Other, desc: "Audio/Karaoke"} - {id: 3010, cat: Audio, desc: "Audio/Musique"} - {id: 3040, cat: Audio/Other, desc: "Audio/Podcast Radio"} - {id: 3050, cat: Audio/Other, desc: "Audio/Samples"} - {id: 1000, cat: Console, desc: "Jeu vidéo"} - {id: 1099, cat: Console/Other, desc: "Jeu vidéo/Autre"} - {id: 1091, cat: PC/Games, desc: "Jeu vidéo/Linux"} - {id: 1092, cat: PC/Games, desc: "Jeu vidéo/MacOS"} - {id: 1040, cat: PC/Games, desc: "Jeu vidéo/Microsoft"} - {id: 1030, cat: Console/NDS, desc: "Jeu vidéo/Nintendo"} - {id: 1060, cat: Console/Other, desc: "Jeu vidéo/Smartphone"} - {id: 1080, cat: Console/PS4, desc: "Jeu vidéo/Sony"} - {id: 1061, cat: Console/Other, desc: "Jeu vidéo/Tablette"} - {id: 1090, cat: PC/Games, desc: "Jeu vidéo/Windows"} modes: search: [q] tv-search: [q, season, ep, tvdbid] movie-search: [q, imdbid] music-search: [q] book-search: [q] settings: - name: apikey type: text label: API Key - name: info_key type: info label: About your API Key default: "You can find your API Key by accessing the Nostradamus API access page and scrolling down to the API Credentials section." - name: multilang type: checkbox label: Replace MULTi by another language in release name default: false - name: multilanguage type: select label: Replace MULTi by this language default: FRENCH options: FRENCH: FRENCH MULTi.FRENCH: MULTi.FRENCH ENGLISH: ENGLISH MULTi.ENGLISH: MULTi.ENGLISH VOSTFR: VOSTFR MULTi.VOSTFR: MULTi.VOSTFR - name: vostfr type: checkbox label: Replace VOSTFR and SUBFRENCH with ENGLISH default: false login: # returns "401 Unauthorized, check your credentials" if passkey is invalid path: api method: get inputs: apikey: "{{ .Config.apikey }}" t: search limit: 1 search: paths: - path: api response: type: xml inputs: apikey: "{{ .Config.apikey }}" t: "{{ if .Query.IMDBID }}movie{{ else }}{{ end }}{{ if .Query.TVDBID }}tvsearch{{ else }}{{ end }}{{ if or .Query.TVDBID .Query.IMDBID }}{{ else }}search{{ end }}" q: "{{ .Keywords }}" cat: "{{ join .Categories \",\" }}" season: "{{ .Query.Season }}" ep: "{{ .Query.Ep }}" imdbid: "{{ .Query.IMDBID }}" tvdbid: "{{ .Query.TVDBID }}" limit: 100 keywordsfilters: # replace spaces between words with percent wildcard - name: re_replace args: ["\\W+", "%"] rows: selector: rss > channel > item fields: category: selector: "[name=category]" attribute: value title_phase1: selector: title title_vostfr: text: "{{ .Result.title_phase1 }}" filters: - name: re_replace args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"] title_phase2: text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}" title_multilang: text: "{{ .Result.title_phase2 }}" filters: - name: re_replace args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR|VF2|VFF|VFQ|VOQ|VFI|VOF)))\\b", "{{ .Config.multilanguage }}"] title: text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}" details: selector: link download: selector: enclosure attribute: url infohash: selector: "[name=infohash]" attribute: value date: # Thu, 15 Jan 2026 16:24:34 +0000 selector: pubDate filters: - name: dateparse args: "ddd, dd MMM yyyy HH:mm:ss zzz" size: selector: "[name=size]" attribute: value imdbid: selector: "[name=imdbid]" attribute: value tmdbid: selector: "[name=tmdbid]" attribute: value seeders: selector: "[name=seeders]" attribute: value leechers: selector: "[name=leechers]" attribute: value grabs: selector: "[name=grabs]" attribute: value downloadvolumefactor: text: 0 uploadvolumefactor: text: 1 minimumseedtime: # 3 days (as seconds = 3 x 24 x 60 x 60) text: 259200 # torznab xml