616c6b1c62
Release Docker multi arch / docker (push) Has been cancelled
Test Install Script / Test Script Syntax (push) Has been cancelled
Test Install Script / Test on almalinux-10 (default) (push) Has been cancelled
Test Install Script / Test on almalinux-10 (root) (push) Has been cancelled
Test Install Script / Test on almalinux-8 (default) (push) Has been cancelled
Test Install Script / Test on almalinux-8 (root) (push) Has been cancelled
Test Install Script / Test on almalinux-9 (default) (push) Has been cancelled
Test Install Script / Test on almalinux-9 (root) (push) Has been cancelled
Test Install Script / Test on amazonlinux-2 (default) (push) Has been cancelled
Test Install Script / Test on amazonlinux-2 (root) (push) Has been cancelled
Test Install Script / Test on debian-11 (default) (push) Has been cancelled
Test Install Script / Test on debian-11 (root) (push) Has been cancelled
Test Install Script / Test on debian-12 (default) (push) Has been cancelled
Test Install Script / Test on debian-12 (root) (push) Has been cancelled
Test Install Script / Test on debian-13 (default) (push) Has been cancelled
Test Install Script / Test on debian-13 (root) (push) Has been cancelled
Test Install Script / Test on fedora-latest (default) (push) Has been cancelled
Test Install Script / Test on fedora-latest (root) (push) Has been cancelled
Test Install Script / Test on rocky-10 (default) (push) Has been cancelled
Test Install Script / Test on rocky-10 (root) (push) Has been cancelled
Test Install Script / Test on rocky-8 (default) (push) Has been cancelled
Test Install Script / Test on rocky-8 (root) (push) Has been cancelled
Test Install Script / Test on rocky-9 (default) (push) Has been cancelled
Test Install Script / Test on rocky-9 (root) (push) Has been cancelled
Test Install Script / Test on ubuntu-22.04 (default) (push) Has been cancelled
Test Install Script / Test on ubuntu-22.04 (root) (push) Has been cancelled
Test Install Script / Test on ubuntu-24.04 (default) (push) Has been cancelled
Test Install Script / Test on ubuntu-24.04 (root) (push) Has been cancelled
867 lines
20 KiB
YAML
867 lines
20 KiB
YAML
basePath: /
|
|
definitions:
|
|
api.cacheReqJS:
|
|
properties:
|
|
action:
|
|
type: string
|
|
hash:
|
|
type: string
|
|
type: object
|
|
api.setsReqJS:
|
|
properties:
|
|
action:
|
|
type: string
|
|
sets:
|
|
$ref: '#/definitions/settings.BTSets'
|
|
type: object
|
|
api.torrReqJS:
|
|
properties:
|
|
action:
|
|
type: string
|
|
category:
|
|
type: string
|
|
data:
|
|
type: string
|
|
filter:
|
|
type: string
|
|
hash:
|
|
type: string
|
|
link:
|
|
type: string
|
|
poster:
|
|
type: string
|
|
save_to_db:
|
|
type: boolean
|
|
title:
|
|
type: string
|
|
type: object
|
|
api.viewedReqJS:
|
|
properties:
|
|
action:
|
|
type: string
|
|
file_index:
|
|
type: integer
|
|
hash:
|
|
type: string
|
|
type: object
|
|
models.TorrentDetails:
|
|
properties:
|
|
audioQuality:
|
|
type: integer
|
|
categories:
|
|
type: string
|
|
createDate:
|
|
type: string
|
|
hash:
|
|
type: string
|
|
imdbid:
|
|
type: string
|
|
link:
|
|
type: string
|
|
magnet:
|
|
type: string
|
|
name:
|
|
type: string
|
|
names:
|
|
items:
|
|
type: string
|
|
type: array
|
|
peer:
|
|
type: integer
|
|
seed:
|
|
type: integer
|
|
size:
|
|
type: string
|
|
title:
|
|
type: string
|
|
tracker:
|
|
type: string
|
|
videoQuality:
|
|
type: integer
|
|
year:
|
|
type: integer
|
|
type: object
|
|
settings.BTSets:
|
|
properties:
|
|
cacheSize:
|
|
description: Cache
|
|
format: int64
|
|
type: integer
|
|
connectionsLimit:
|
|
type: integer
|
|
disableDHT:
|
|
type: boolean
|
|
disablePEX:
|
|
type: boolean
|
|
disableTCP:
|
|
type: boolean
|
|
disableUPNP:
|
|
type: boolean
|
|
disableUTP:
|
|
type: boolean
|
|
disableUpload:
|
|
type: boolean
|
|
downloadRateLimit:
|
|
description: in kb, 0 - inf
|
|
type: integer
|
|
enableDLNA:
|
|
description: DLNA
|
|
type: boolean
|
|
enableDebug:
|
|
description: debug logs
|
|
type: boolean
|
|
enableIPv6:
|
|
description: BT Config
|
|
type: boolean
|
|
enableProxy:
|
|
description: P2P Proxy
|
|
type: boolean
|
|
enableRutorSearch:
|
|
description: Rutor
|
|
type: boolean
|
|
enableTorznabSearch:
|
|
description: Torznab
|
|
type: boolean
|
|
forceEncrypt:
|
|
description: Torrent
|
|
type: boolean
|
|
friendlyName:
|
|
type: string
|
|
peersListenPort:
|
|
type: integer
|
|
preloadCache:
|
|
description: in percent
|
|
type: integer
|
|
proxyHosts:
|
|
items:
|
|
type: string
|
|
type: array
|
|
readerReadAHead:
|
|
description: in percent, 5%-100%, [...S__X__E...] [S-E] not clean
|
|
type: integer
|
|
removeCacheOnDrop:
|
|
type: boolean
|
|
responsiveMode:
|
|
description: Reader
|
|
type: boolean
|
|
retrackersMode:
|
|
description: 0 - don`t add, 1 - add retrackers (def), 2 - remove retrackers
|
|
3 - replace retrackers
|
|
type: integer
|
|
showFSActiveTorr:
|
|
description: FS
|
|
type: boolean
|
|
sslCert:
|
|
type: string
|
|
sslKey:
|
|
type: string
|
|
sslPort:
|
|
description: HTTPS
|
|
type: integer
|
|
storeSettingsInJson:
|
|
description: Storage preferences
|
|
type: boolean
|
|
storeViewedInJson:
|
|
type: boolean
|
|
tmdbsettings:
|
|
allOf:
|
|
- $ref: '#/definitions/settings.TMDBConfig'
|
|
description: TMDB
|
|
torrentDisconnectTimeout:
|
|
description: in seconds
|
|
type: integer
|
|
torrentsSavePath:
|
|
type: string
|
|
torznabUrls:
|
|
items:
|
|
$ref: '#/definitions/settings.TorznabConfig'
|
|
type: array
|
|
uploadRateLimit:
|
|
description: in kb, 0 - inf
|
|
type: integer
|
|
useDisk:
|
|
description: Disk
|
|
type: boolean
|
|
type: object
|
|
settings.TMDBConfig:
|
|
properties:
|
|
apikey:
|
|
description: TMDB API Key
|
|
type: string
|
|
apiurl:
|
|
description: 'Base API URL (default: https://api.themoviedb.org)'
|
|
type: string
|
|
imageURL:
|
|
description: 'Image URL (default: https://image.tmdb.org)'
|
|
type: string
|
|
imageURLRu:
|
|
description: 'Image URL for Russian users (default: https://imagetmdb.com)'
|
|
type: string
|
|
type: object
|
|
settings.TorznabConfig:
|
|
properties:
|
|
host:
|
|
type: string
|
|
key:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type: object
|
|
settings.Viewed:
|
|
properties:
|
|
file_index:
|
|
type: integer
|
|
hash:
|
|
type: string
|
|
type: object
|
|
state.CacheState:
|
|
properties:
|
|
capacity:
|
|
format: int64
|
|
type: integer
|
|
filled:
|
|
format: int64
|
|
type: integer
|
|
hash:
|
|
type: string
|
|
pieces:
|
|
additionalProperties:
|
|
$ref: '#/definitions/state.ItemState'
|
|
type: object
|
|
piecesCount:
|
|
type: integer
|
|
piecesLength:
|
|
format: int64
|
|
type: integer
|
|
readers:
|
|
items:
|
|
$ref: '#/definitions/state.ReaderState'
|
|
type: array
|
|
torrent:
|
|
$ref: '#/definitions/state.TorrentStatus'
|
|
type: object
|
|
state.ItemState:
|
|
properties:
|
|
completed:
|
|
type: boolean
|
|
id:
|
|
type: integer
|
|
length:
|
|
format: int64
|
|
type: integer
|
|
priority:
|
|
type: integer
|
|
size:
|
|
format: int64
|
|
type: integer
|
|
type: object
|
|
state.ReaderState:
|
|
properties:
|
|
end:
|
|
type: integer
|
|
reader:
|
|
type: integer
|
|
start:
|
|
type: integer
|
|
type: object
|
|
state.TorrentFileStat:
|
|
properties:
|
|
id:
|
|
type: integer
|
|
length:
|
|
type: integer
|
|
path:
|
|
type: string
|
|
type: object
|
|
state.TorrentStat:
|
|
enum:
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 3
|
|
- 4
|
|
- 5
|
|
type: integer
|
|
x-enum-varnames:
|
|
- TorrentAdded
|
|
- TorrentGettingInfo
|
|
- TorrentPreload
|
|
- TorrentWorking
|
|
- TorrentClosed
|
|
- TorrentInDB
|
|
state.TorrentStatus:
|
|
properties:
|
|
active_peers:
|
|
type: integer
|
|
bit_rate:
|
|
type: string
|
|
bytes_read:
|
|
type: integer
|
|
bytes_read_data:
|
|
type: integer
|
|
bytes_read_useful_data:
|
|
type: integer
|
|
bytes_written:
|
|
type: integer
|
|
bytes_written_data:
|
|
type: integer
|
|
category:
|
|
type: string
|
|
chunks_read:
|
|
type: integer
|
|
chunks_read_useful:
|
|
type: integer
|
|
chunks_read_wasted:
|
|
type: integer
|
|
chunks_written:
|
|
type: integer
|
|
connected_seeders:
|
|
type: integer
|
|
data:
|
|
type: string
|
|
download_speed:
|
|
type: number
|
|
duration_seconds:
|
|
type: number
|
|
file_stats:
|
|
items:
|
|
$ref: '#/definitions/state.TorrentFileStat'
|
|
type: array
|
|
half_open_peers:
|
|
type: integer
|
|
hash:
|
|
type: string
|
|
loaded_size:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
pending_peers:
|
|
type: integer
|
|
pieces_dirtied_bad:
|
|
type: integer
|
|
pieces_dirtied_good:
|
|
type: integer
|
|
poster:
|
|
type: string
|
|
preload_size:
|
|
type: integer
|
|
preloaded_bytes:
|
|
type: integer
|
|
stat:
|
|
$ref: '#/definitions/state.TorrentStat'
|
|
stat_string:
|
|
type: string
|
|
timestamp:
|
|
type: integer
|
|
title:
|
|
type: string
|
|
torrent_size:
|
|
type: integer
|
|
torrs_hash:
|
|
type: string
|
|
total_peers:
|
|
type: integer
|
|
upload_speed:
|
|
type: number
|
|
type: object
|
|
externalDocs:
|
|
description: OpenAPI
|
|
url: https://swagger.io/resources/open-api/
|
|
info:
|
|
contact: {}
|
|
description: Torrent streaming server.
|
|
license:
|
|
name: GPL 3.0
|
|
title: Swagger Torrserver API
|
|
version: '{version.Version}'
|
|
paths:
|
|
/cache:
|
|
post:
|
|
description: Return cache stats.
|
|
parameters:
|
|
- description: Cache stats request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/api.cacheReqJS'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Cache stats
|
|
schema:
|
|
$ref: '#/definitions/state.CacheState'
|
|
summary: Return cache stats
|
|
tags:
|
|
- API
|
|
/download/{size}:
|
|
get:
|
|
description: Download the test file of given size (for speed testing purpose).
|
|
parameters:
|
|
- description: Test file size (in MB)
|
|
in: path
|
|
name: size
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/octet-stream
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: file
|
|
summary: Generates test file of given size
|
|
tags:
|
|
- API
|
|
/echo:
|
|
get:
|
|
description: Tests whether server is alive or not
|
|
produces:
|
|
- text/plain
|
|
responses:
|
|
"200":
|
|
description: Server version
|
|
schema:
|
|
type: string
|
|
summary: Tests server status
|
|
tags:
|
|
- API
|
|
/ffp/{hash}/{id}:
|
|
get:
|
|
description: Gather informations using ffprobe.
|
|
parameters:
|
|
- description: Torrent hash
|
|
in: path
|
|
name: hash
|
|
required: true
|
|
type: string
|
|
- description: File index in torrent
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Data returned from ffprobe
|
|
summary: Gather informations using ffprobe
|
|
tags:
|
|
- API
|
|
/magnets:
|
|
get:
|
|
description: Get HTML of magnet links.
|
|
produces:
|
|
- text/html
|
|
responses:
|
|
"200":
|
|
description: HTML with Magnet links
|
|
summary: Get HTML of magnet links
|
|
tags:
|
|
- Pages
|
|
/play/{hash}/{id}:
|
|
get:
|
|
description: Play given torrent referenced by infohash and file id.
|
|
parameters:
|
|
- description: Torrent infohash
|
|
in: path
|
|
name: hash
|
|
required: true
|
|
type: string
|
|
- description: File index in torrent
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/octet-stream
|
|
responses:
|
|
"200":
|
|
description: Torrent data
|
|
summary: Play given torrent by infohash
|
|
tags:
|
|
- API
|
|
/playlist:
|
|
get:
|
|
description: Get HTTP link of torrent in M3U list.
|
|
parameters:
|
|
- description: Torrent hash
|
|
in: query
|
|
name: hash
|
|
required: true
|
|
type: string
|
|
- description: From last play file
|
|
in: query
|
|
name: fromlast
|
|
type: boolean
|
|
produces:
|
|
- audio/x-mpegurl
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: file
|
|
summary: Get HTTP link of torrent in M3U list
|
|
tags:
|
|
- API
|
|
/playlistall/all.m3u:
|
|
get:
|
|
description: Retrieve all torrents and generates a bundled M3U playlist.
|
|
produces:
|
|
- audio/x-mpegurl
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: file
|
|
summary: Get a M3U playlist with all torrents
|
|
tags:
|
|
- API
|
|
/search:
|
|
get:
|
|
description: Makes a rutor search.
|
|
parameters:
|
|
- description: Rutor query
|
|
in: query
|
|
name: query
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Rutor torrent search result(s)
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.TorrentDetails'
|
|
type: array
|
|
summary: Makes a rutor search
|
|
tags:
|
|
- API
|
|
/settings:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Allow to get or set server settings.
|
|
parameters:
|
|
- description: 'Settings request. Available params for action: get, set, def'
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/api.setsReqJS'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Settings JSON or nothing. Depends on what action has been asked.
|
|
schema:
|
|
$ref: '#/definitions/settings.BTSets'
|
|
summary: Get / Set server settings
|
|
tags:
|
|
- API
|
|
/shutdown:
|
|
get:
|
|
description: Gracefully shuts down server after 1 second.
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
summary: Shuts down server
|
|
tags:
|
|
- API
|
|
/stat:
|
|
get:
|
|
description: Show server and torrents statistics.
|
|
produces:
|
|
- text/plain
|
|
responses:
|
|
"200":
|
|
description: TorrServer statistics
|
|
summary: TorrServer Statistics
|
|
tags:
|
|
- Pages
|
|
/storage/settings:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieves the current storage preferences for settings and viewed
|
|
history
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Storage preferences
|
|
schema:
|
|
additionalProperties: true
|
|
type: object
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get storage configuration settings
|
|
tags:
|
|
- API
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
- application/x-www-form-urlencoded
|
|
description: Updates the storage preferences for settings and viewed history.
|
|
Requires application restart for changes to take effect.
|
|
parameters:
|
|
- description: Storage preferences to update
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
additionalProperties: true
|
|
type: object
|
|
- description: Settings storage type
|
|
enum:
|
|
- json
|
|
- bbolt
|
|
in: formData
|
|
name: settings
|
|
type: string
|
|
- description: Viewed history storage type
|
|
enum:
|
|
- json
|
|
- bbolt
|
|
in: formData
|
|
name: viewed
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Update successful
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"400":
|
|
description: Invalid input data
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"403":
|
|
description: Read-only mode
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update storage configuration settings
|
|
tags:
|
|
- API
|
|
/stream:
|
|
get:
|
|
description: Multi usage endpoint.
|
|
parameters:
|
|
- description: Magnet/hash/link to torrent
|
|
in: query
|
|
name: link
|
|
required: true
|
|
type: string
|
|
- description: File index in torrent
|
|
in: query
|
|
name: index
|
|
type: string
|
|
- description: Should preload torrent
|
|
in: query
|
|
name: preload
|
|
type: string
|
|
- description: Get statistics from torrent
|
|
in: query
|
|
name: stat
|
|
type: string
|
|
- description: Should save torrent
|
|
in: query
|
|
name: save
|
|
type: string
|
|
- description: Get torrent as M3U playlist
|
|
in: query
|
|
name: m3u
|
|
type: string
|
|
- description: Get M3U from last played file
|
|
in: query
|
|
name: fromlast
|
|
type: string
|
|
- description: Start stream torrent
|
|
in: query
|
|
name: play
|
|
type: string
|
|
- description: Set title of torrent
|
|
in: query
|
|
name: title
|
|
type: string
|
|
- description: Set poster link of torrent
|
|
in: query
|
|
name: poster
|
|
type: string
|
|
- description: 'Set category of torrent, used in web: movie, tv, music, other'
|
|
in: query
|
|
name: category
|
|
type: string
|
|
produces:
|
|
- application/octet-stream
|
|
responses:
|
|
"200":
|
|
description: Data returned according to query
|
|
summary: Multi usage endpoint
|
|
tags:
|
|
- API
|
|
/tmdb/settings:
|
|
get:
|
|
description: Get TMDB API configuration
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: TMDB settings
|
|
schema:
|
|
$ref: '#/definitions/settings.TMDBConfig'
|
|
summary: Get TMDB settings
|
|
tags:
|
|
- API
|
|
/torrent/upload:
|
|
post:
|
|
consumes:
|
|
- multipart/form-data
|
|
description: Supports multiple files. Returns array of statuses.
|
|
parameters:
|
|
- description: Torrent file(s) to insert
|
|
in: formData
|
|
name: file
|
|
required: true
|
|
type: file
|
|
- description: Save to DB
|
|
in: formData
|
|
name: save
|
|
type: string
|
|
- description: Torrent title (single file only)
|
|
in: formData
|
|
name: title
|
|
type: string
|
|
- description: Torrent category
|
|
in: formData
|
|
name: category
|
|
type: string
|
|
- description: Torrent poster (single file only)
|
|
in: formData
|
|
name: poster
|
|
type: string
|
|
- description: Torrent data
|
|
in: formData
|
|
name: data
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Torrent statuses
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/state.TorrentStatus'
|
|
type: array
|
|
summary: Add .torrent files
|
|
tags:
|
|
- API
|
|
/torrents:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Allow to list, add, remove, get, set, drop, wipe torrents on server.
|
|
The action depends of what has been asked.
|
|
parameters:
|
|
- description: 'Torrent request. Available params for action: add, get, set,
|
|
rem, list, drop, wipe. link required for add, hash required for get, set,
|
|
rem, drop.'
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/api.torrReqJS'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
summary: Handle torrents informations
|
|
tags:
|
|
- API
|
|
/torznab/search:
|
|
get:
|
|
description: Makes a torznab search.
|
|
parameters:
|
|
- description: Torznab query
|
|
in: query
|
|
name: query
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Torznab torrent search result(s)
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.TorrentDetails'
|
|
type: array
|
|
summary: Makes a torznab search
|
|
tags:
|
|
- API
|
|
/viewed:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Allow to set, list or remove viewed torrents from server.
|
|
parameters:
|
|
- description: 'Viewed torrent request. Available params for action: set, rem,
|
|
list'
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/api.viewedReqJS'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/settings.Viewed'
|
|
type: array
|
|
summary: Set / List / Remove viewed torrents
|
|
tags:
|
|
- API
|
|
securityDefinitions:
|
|
BasicAuth:
|
|
type: basic
|
|
swagger: "2.0"
|