--- id: torrentcontrol name: TorrentControl (API) description: "TorrentControl (API) is a Public Torrent Tracker for MOVIES / TV / ANIME" language: en-US type: public encoding: UTF-8 requestDelay: 2 links: - https://torrentcontrol.pw/ caps: categorymappings: - {id: movie, cat: Movies, desc: Movies, default: true} - {id: series, cat: TV, desc: Series, default: true} - {id: anime, cat: TV/Anime, desc: Anime, default: true} modes: search: [q] movie-search: [q] tv-search: [q, season, ep] settings: [] search: # docs: https://torrentcontrol.pw/en/api-docs paths: # since per_page is only 20 we needs to query all 3 cats separately to ensure we get hits for keywordless - path: "api/v1/torrents?type=movie&search={{ .Keywords }}" response: type: json categories: [movie] - path: "api/v1/torrents?type=series&search={{ .Keywords }}" response: type: json categories: [series] - path: "api/v1/torrents?type=anime&search={{ .Keywords }}" response: type: json categories: [anime] rows: selector: data fields: category: selector: type _id: selector: content_id details: text: "contents/{{ .Result._id }}" _language: selector: language case: fr: French es: Spanish it: Italian latino: Latino ru: Russian "*": "" title_default: selector: title title_file_name: selector: file_name optional: true title_magnet: selector: magnet_uri:contains(&dn=) optional: true filters: - name: htmldecode - name: querystring args: dn title: text: "{{ if or .Result.title_file_name .Result.title_magnet }}{{ or .Result.title_file_name .Result.title_magnet }}{{ else }}{{ .Result.title_default }}{{ end }}" filters: - name: append args: "{{ if .Result._language }} {{ .Result._language }}{{ else }}{{ end }}" magnet: selector: magnet_uri filters: - name: htmldecode poster: selector: poster_url imdbid: selector: imdb_id tmdbid: selector: tmdb_id seeders_zero: selector: seeders seeders: selector: seeders filters: - name: append args: "{{ if eq .Result.seeders_zero \"0\" }}1{{ else }}{{ end }}" leechers_zero: selector: leechers leechers: selector: leechers filters: - name: append args: "{{ if eq .Result.leechers_zero \"0\" }}1{{ else }}{{ end }}" date: # 2025-10-12T21:59:04.000000Z selector: created_at size_default: selector: type case: movie: 9GB series: 2GB size_in_mb: selector: size_in_mb optional: true size: text: "{{ if .Result.size_in_mb }}{{ .Result.size_in_mb }}MB{{ else }}{{ .Result.size_default }}{{ end }}" description: selector: provider filters: - name: prepend args: "provider: " downloadvolumefactor: text: 0 uploadvolumefactor: text: 1 # json api v1