174 lines
5.1 KiB
YAML
174 lines
5.1 KiB
YAML
---
|
|
id: ultrabits-api
|
|
name: Ultrabits (API)
|
|
description: "Ultrabits is a NORDIC Private Torrent Tracker for MOVIES / TV / GENERAL"
|
|
language: sv-SE
|
|
type: private
|
|
encoding: UTF-8
|
|
links:
|
|
- https://ultrabits.org/
|
|
|
|
caps:
|
|
# `id` is the site's internal category slug — the JSON search endpoint
|
|
# echoes it back in each torrent's `category` field, so Cardigann maps
|
|
# rows 1:1 against what the API returns. `desc` mirrors the labels
|
|
# users see on ultrabits.org so Sonarr / Radarr / Prowlarr render the
|
|
# same wording.
|
|
# sourced from https://ultrabits.org/all?page=1
|
|
categorymappings:
|
|
# Movies
|
|
- {id: Movie-x264, cat: Movies/HD, desc: "Movies/x264"}
|
|
- {id: Movie-x265, cat: Movies/HD, desc: "Movies/x265"}
|
|
- {id: Movie-UHD, cat: Movies/UHD, desc: "Movies/UHD"}
|
|
- {id: Movie-Remux, cat: Movies/UHD, desc: "Movies/Remux"}
|
|
- {id: Movie-BD, cat: Movies/BluRay, desc: "Movies/BluRay"}
|
|
- {id: Movie-DVD, cat: Movies/DVD, desc: "Movies/DVDR"}
|
|
- {id: Movie-WEB, cat: Movies/WEB-DL, desc: "Movies/WEB-DL"}
|
|
- {id: Movie-Subpack, cat: Movies/Foreign, desc: "Movies/Subpack"}
|
|
# TV
|
|
- {id: TV-x264, cat: TV/HD, desc: "TV/x264"}
|
|
- {id: TV-x265, cat: TV/HD, desc: "TV/x265"}
|
|
- {id: TV-UHD, cat: TV/UHD, desc: "TV/UHD"}
|
|
- {id: TV-WEB, cat: TV/WEB-DL, desc: "TV/WEB-DL"}
|
|
- {id: TV-DVD, cat: TV/SD, desc: "TV/DVDR"}
|
|
- {id: TV-Nordic, cat: TV/Foreign, desc: "TV/Nordic"}
|
|
- {id: TV-Remux, cat: TV, desc: "TV/Remux"}
|
|
- {id: TV-BD, cat: TV/HD, desc: "TV/BluRay"}
|
|
- {id: TV-Subpack, cat: TV/Foreign, desc: "TV/Subpack"}
|
|
# Music
|
|
- {id: FLAC, cat: Audio/Lossless, desc: "Audio/FLAC"}
|
|
- {id: MP3, cat: Audio/MP3, desc: "Audio/MP3"}
|
|
- {id: MusicVid, cat: Audio/Video, desc: "Audio/Video"}
|
|
- {id: MusicDisc, cat: Audio/Lossless, desc: "Audio/Disc"}
|
|
- {id: Podcast, cat: Audio/Other, desc: "Audio/Podcast"}
|
|
# Games
|
|
- {id: Game-PC, cat: PC/Games, desc: "PC/Games"}
|
|
- {id: Game-PS, cat: Console/PS4, desc: "Console/PlayStation"}
|
|
- {id: Game-Xbox, cat: Console/XBox One, desc: "Console/Xbox"}
|
|
- {id: Game-NSW, cat: Console/Other, desc: "Console/Switch"}
|
|
# Apps
|
|
- {id: 0DAY, cat: PC/0day, desc: "PC/0DAY"}
|
|
- {id: App-ISO, cat: PC/ISO, desc: "PC/ISO"}
|
|
- {id: App-Mobile, cat: PC/Mobile-Android, desc: "PC/Mobile"}
|
|
# Books
|
|
- {id: eBook, cat: Books/EBook, desc: "Books/eBook"}
|
|
- {id: AudioBook, cat: Audio/Audiobook, desc: "Books/Audiobook"}
|
|
- {id: Magazine, cat: Books/Mags, desc: "Books/Magazine"}
|
|
- {id: Comic, cat: Books/Comics, desc: "Books/Comics"}
|
|
|
|
modes:
|
|
search: [q]
|
|
tv-search: [q, season, ep, imdbid, tmdbid]
|
|
movie-search: [q, imdbid, tmdbid]
|
|
music-search: [q]
|
|
book-search: [q]
|
|
|
|
settings:
|
|
- name: apikey
|
|
type: text
|
|
label: APIKey
|
|
- name: info_key
|
|
type: info
|
|
label: About your API key
|
|
default: "Find or Generate a new API Key by accessing your <a href=\"https://ultrabits.org/profile/settings/api-keys\" target=\"_blank\">Ultrabits</a> account <i>API keys</i> page."
|
|
- name: freeleech
|
|
type: checkbox
|
|
label: Search freeleech only
|
|
default: false
|
|
- name: sort
|
|
type: select
|
|
label: Sort requested from site
|
|
default: added
|
|
options:
|
|
added: created
|
|
seeders: seeders
|
|
size: size
|
|
- name: type
|
|
type: select
|
|
label: Order requested from site
|
|
default: desc
|
|
options:
|
|
desc: desc
|
|
asc: asc
|
|
- name: info_activity
|
|
type: info
|
|
label: Account Inactivity
|
|
default: "Log in to the website at least every 3 months to avoid account deactivation."
|
|
|
|
login:
|
|
path: v1/jackett/search
|
|
method: get
|
|
inputs:
|
|
apikey: "{{ .Config.apikey }}"
|
|
limit: 1
|
|
error:
|
|
- selector: error
|
|
message:
|
|
selector: description
|
|
|
|
search:
|
|
paths:
|
|
- path: /v1/jackett/search
|
|
response:
|
|
type: json
|
|
inputs:
|
|
q: "{{ .Keywords }}"
|
|
apikey: "{{ .Config.apikey }}"
|
|
cat: "{{ join .Categories \",\" }}"
|
|
imdbid: "{{ .Query.IMDBIDShort }}"
|
|
tmdbid: "{{ .Query.TMDBID }}"
|
|
season: "{{ .Query.Season }}"
|
|
ep: "{{ .Query.Ep }}"
|
|
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
|
sort: "{{ .Config.sort }}"
|
|
order: "{{ .Config.type }}"
|
|
limit: 100
|
|
|
|
rows:
|
|
selector: data
|
|
count:
|
|
selector: total
|
|
|
|
fields:
|
|
title:
|
|
selector: name
|
|
details:
|
|
selector: detailsUrl
|
|
download:
|
|
selector: downloadUrl
|
|
category:
|
|
selector: category
|
|
size:
|
|
selector: size
|
|
seeders:
|
|
selector: seeders
|
|
leechers:
|
|
selector: leechers
|
|
grabs:
|
|
selector: grabs
|
|
date:
|
|
# "addedAt": "2026-04-29T15:45:27.544Z" is returned by Newtonsoft.Json.Linq as 04/29/2026 15:45:27
|
|
selector: addedAt
|
|
filters:
|
|
- name: append
|
|
args: " +00:00" # GMT
|
|
- name: dateparse
|
|
args: "MM/dd/yyyy HH:mm:ss zzz"
|
|
infohash:
|
|
selector: infoHash
|
|
optional: true
|
|
imdb:
|
|
selector: imdb
|
|
tmdbid:
|
|
selector: tmdbId
|
|
downloadvolumefactor:
|
|
selector: downloadvolumefactor
|
|
uploadvolumefactor:
|
|
selector: uploadvolumefactor
|
|
minimumratio:
|
|
text: 1.1
|
|
minimumseedtime:
|
|
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
|
text: 172800
|
|
# json api
|