{
"id": "dev.herisson.test.torrent.listing",
"defs": {
"book": {
"type": "object",
"required": [
"title"
],
"properties": {
"isbn": {
"type": "string",
"maxLength": 32
},
"kind": {
"type": "string",
"knownValues": [
"ebook",
"comic",
"manga",
"magazine"
]
},
"title": {
"type": "string",
"maxLength": 300
},
"author": {
"type": "array",
"items": {
"type": "string",
"maxLength": 300
}
},
"format": {
"type": "array",
"items": {
"type": "string",
"maxLength": 32
}
},
"language": {
"type": "string",
"maxLength": 35
},
"publisher": {
"type": "string",
"maxLength": 300
},
"publishDate": {
"type": "string",
"format": "datetime"
}
}
},
"file": {
"type": "object",
"required": [
"path",
"sizeBytes"
],
"properties": {
"hash": {
"type": "string",
"maxLength": 128
},
"path": {
"type": "string",
"maxLength": 4096
},
"role": {
"type": "string",
"knownValues": [
"main",
"subtitle",
"sample",
"cover",
"metadata",
"other"
]
},
"mediaType": {
"type": "string",
"maxLength": 128
},
"sizeBytes": {
"type": "integer",
"minimum": 0
}
}
},
"game": {
"type": "object",
"required": [
"title"
],
"properties": {
"kind": {
"type": "string",
"knownValues": [
"console_game",
"pc_game",
"rom"
]
},
"title": {
"type": "string",
"maxLength": 300
},
"region": {
"type": "string",
"maxLength": 32
},
"platform": {
"type": "string",
"maxLength": 64
},
"publisher": {
"type": "string",
"maxLength": 300
},
"releaseYear": {
"type": "integer",
"minimum": 1970
}
}
},
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"name",
"infoHash",
"magnetUri",
"createdAt"
],
"properties": {
"name": {
"type": "string",
"maxLength": 1000,
"description": "Name representing the content of the torrent.",
"maxGraphemes": 160
},
"adult": {
"type": "boolean",
"default": false
},
"files": {
"type": "array",
"items": {
"ref": "#file",
"type": "ref"
},
"maxLength": 10000
},
"content": {
"refs": [
"#movie",
"#episode",
"#season",
"#musicAlbum",
"#audiobook",
"#podcast",
"#book",
"#imageCollection",
"#software",
"#game",
"#dataset",
"#collection",
"#archive",
"#other"
],
"type": "union"
},
"edition": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"maxLength": 32
},
"license": {
"type": "string",
"maxLength": 256
},
"infoHash": {
"type": "string",
"maxLength": 64,
"description": "BitTorrent info hash, as lowercase hexadecimal.",
"maxGraphemes": 64
},
"createdAt": {
"type": "string",
"format": "datetime"
},
"magnetUri": {
"type": "string",
"maxLength": 4096,
"description": "Magnet URI for a BitTorrent client."
},
"sizeBytes": {
"type": "integer",
"minimum": 0
},
"sourceUrl": {
"type": "string",
"format": "uri",
"maxLength": 4096
},
"updatedAt": {
"type": "string",
"format": "datetime"
},
"contentType": {
"type": "string",
"maxLength": 256,
"description": "Legacy flat category. Prefer content.$type.",
"knownValues": [
"software",
"dataset",
"archive",
"video",
"audio",
"book",
"image",
"game",
"collection",
"other"
]
},
"description": {
"type": "string",
"maxLength": 12000,
"description": "Optional description, or an ipfs:// URI for a longer description.",
"maxGraphemes": 2000
},
"externalIds": {
"ref": "#externalIds",
"type": "ref"
},
"releaseGroup": {
"type": "string",
"maxLength": 256
},
"infoHashVersion": {
"type": "string",
"knownValues": [
"v1",
"v2",
"hybrid"
]
}
}
},
"description": "A BitTorrent torrent listing with optional typed content metadata."
},
"movie": {
"type": "object",
"required": [
"title"
],
"properties": {
"title": {
"type": "string",
"maxLength": 300
},
"source": {
"type": "string",
"maxLength": 64
},
"audioTracks": {
"type": "array",
"items": {
"ref": "#audioTrack",
"type": "ref"
}
},
"releaseYear": {
"type": "integer",
"minimum": 1888
},
"videoTracks": {
"type": "array",
"items": {
"ref": "#videoTrack",
"type": "ref"
}
},
"originalTitle": {
"type": "string",
"maxLength": 300
},
"runtimeSeconds": {
"type": "integer",
"minimum": 0
},
"subtitleTracks": {
"type": "array",
"items": {
"ref": "#subtitleTrack",
"type": "ref"
}
}
}
},
"other": {
"type": "object",
"required": [
"label"
],
"properties": {
"label": {
"type": "string",
"maxLength": 128
},
"title": {
"type": "string",
"maxLength": 300
},
"mediaTypes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 128
}
},
"description": {
"type": "string",
"maxLength": 6000,
"maxGraphemes": 1000
}
}
},
"season": {
"type": "object",
"required": [
"seriesTitle",
"season"
],
"properties": {
"season": {
"type": "integer",
"minimum": 1
},
"source": {
"type": "string",
"maxLength": 64
},
"releaseYear": {
"type": "integer",
"minimum": 1888
},
"seriesTitle": {
"type": "string",
"maxLength": 300
},
"episodeCount": {
"type": "integer",
"minimum": 1
}
}
},
"archive": {
"type": "object",
"required": [
"title"
],
"properties": {
"kind": {
"type": "string",
"knownValues": [
"release",
"backup",
"mirror",
"bundle",
"collection"
]
},
"title": {
"type": "string",
"maxLength": 300
},
"format": {
"type": "array",
"items": {
"type": "string",
"maxLength": 32
}
},
"itemType": {
"type": "string",
"maxLength": 64
},
"encrypted": {
"type": "boolean",
"default": false
},
"itemCount": {
"type": "integer",
"minimum": 1
}
}
},
"dataset": {
"type": "object",
"required": [
"title"
],
"properties": {
"kind": {
"type": "string",
"knownValues": [
"registry",
"metrics",
"library",
"shapes",
"model"
]
},
"title": {
"type": "string",
"maxLength": 300
},
"format": {
"type": "array",
"items": {
"type": "string",
"maxLength": 32
}
},
"origin": {
"type": "string",
"knownValues": [
"institutional",
"proprietary",
"scraped",
"crowdsourced"
]
},
"version": {
"type": "string",
"maxLength": 128
},
"producer": {
"type": "string",
"maxLength": 300
},
"structure": {
"type": "string",
"knownValues": [
"tabular",
"hierarchical",
"graph",
"collection"
]
}
}
},
"episode": {
"type": "object",
"required": [
"seriesTitle"
],
"properties": {
"season": {
"type": "integer",
"minimum": 1
},
"source": {
"type": "string",
"maxLength": 64
},
"episode": {
"type": "integer",
"minimum": 1
},
"audioTracks": {
"type": "array",
"items": {
"ref": "#audioTrack",
"type": "ref"
}
},
"releaseYear": {
"type": "integer",
"minimum": 1888
},
"seriesTitle": {
"type": "string",
"maxLength": 300
},
"videoTracks": {
"type": "array",
"items": {
"ref": "#videoTrack",
"type": "ref"
}
},
"episodeRange": {
"type": "string",
"maxLength": 32
},
"episodeTitle": {
"type": "string",
"maxLength": 300
},
"subtitleTracks": {
"type": "array",
"items": {
"ref": "#subtitleTrack",
"type": "ref"
}
}
}
},
"podcast": {
"type": "object",
"required": [
"title"
],
"properties": {
"title": {
"type": "string",
"maxLength": 300
},
"episode": {
"type": "integer",
"minimum": 1
},
"language": {
"type": "string",
"maxLength": 35
},
"publisher": {
"type": "string",
"maxLength": 300
},
"releaseDate": {
"type": "string",
"format": "datetime"
},
"seriesTitle": {
"type": "string",
"maxLength": 300
},
"durationSeconds": {
"type": "integer",
"minimum": 0
}
}
},
"software": {
"type": "object",
"required": [
"name"
],
"properties": {
"kind": {
"type": "string",
"knownValues": [
"application",
"os",
"mobile_app",
"library"
]
},
"name": {
"type": "string",
"maxLength": 300
},
"version": {
"type": "string",
"maxLength": 128
},
"language": {
"type": "array",
"items": {
"type": "string",
"maxLength": 35
}
},
"platform": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
}
},
"publisher": {
"type": "string",
"maxLength": 300
},
"releaseDate": {
"type": "string",
"format": "datetime"
},
"architecture": {
"type": "array",
"items": {
"type": "string",
"maxLength": 32
}
}
}
},
"audiobook": {
"type": "object",
"required": [
"title"
],
"properties": {
"title": {
"type": "string",
"maxLength": 300
},
"author": {
"type": "array",
"items": {
"type": "string",
"maxLength": 300
}
},
"format": {
"type": "array",
"items": {
"type": "string",
"maxLength": 32
}
},
"language": {
"type": "string",
"maxLength": 35
},
"narrator": {
"type": "array",
"items": {
"type": "string",
"maxLength": 300
}
},
"durationSeconds": {
"type": "integer",
"minimum": 0
}
}
},
"audioTrack": {
"type": "object",
"required": [
"codec",
"language"
],
"properties": {
"codec": {
"type": "string",
"maxLength": 64
},
"channels": {
"type": "string",
"maxLength": 16
},
"language": {
"type": "string",
"maxLength": 35
},
"commentary": {
"type": "boolean",
"default": false
}
}
},
"collection": {
"type": "object",
"required": [
"title"
],
"properties": {
"kind": {
"type": "string",
"knownValues": [
"season",
"album",
"book_series",
"software_bundle",
"dataset_snapshot",
"mixed"
]
},
"title": {
"type": "string",
"maxLength": 300
},
"artist": {
"type": "array",
"items": {
"type": "string",
"maxLength": 300
}
},
"season": {
"type": "integer",
"minimum": 1
},
"itemType": {
"type": "string",
"knownValues": [
"video",
"audio",
"book",
"image",
"software",
"game",
"dataset",
"mixed"
]
},
"itemCount": {
"type": "integer",
"minimum": 1
},
"seriesTitle": {
"type": "string",
"maxLength": 300
}
}
},
"musicAlbum": {
"type": "object",
"required": [
"title"
],
"properties": {
"title": {
"type": "string",
"maxLength": 300
},
"artist": {
"type": "array",
"items": {
"type": "string",
"maxLength": 300
}
},
"format": {
"type": "array",
"items": {
"type": "string",
"maxLength": 32
}
},
"bitrate": {
"type": "string",
"maxLength": 32
},
"bitDepth": {
"type": "integer",
"minimum": 1
},
"channels": {
"type": "string",
"maxLength": 16
},
"sampleRate": {
"type": "integer",
"minimum": 1
},
"trackCount": {
"type": "integer",
"minimum": 1
},
"releaseYear": {
"type": "integer",
"minimum": 1000
}
}
},
"videoTrack": {
"type": "object",
"required": [
"codec",
"width",
"height"
],
"properties": {
"hdr": {
"type": "string",
"knownValues": [
"hdr10",
"dv",
"hlg",
"none"
]
},
"codec": {
"type": "string",
"maxLength": 64
},
"width": {
"type": "integer",
"minimum": 1
},
"height": {
"type": "integer",
"minimum": 1
},
"frameRate": {
"type": "string",
"maxLength": 32
}
}
},
"externalIds": {
"type": "object",
"properties": {
"gog": {
"type": "string",
"maxLength": 64
},
"mal": {
"type": "string",
"maxLength": 64
},
"igdb": {
"type": "string",
"maxLength": 64
},
"imdb": {
"type": "string",
"maxLength": 64
},
"isbn": {
"type": "string",
"maxLength": 32
},
"tmdb": {
"type": "string",
"maxLength": 64
},
"tvdb": {
"type": "string",
"maxLength": 64
},
"anidb": {
"type": "string",
"maxLength": 64
},
"discogs": {
"type": "string",
"maxLength": 64
},
"spotify": {
"type": "string",
"maxLength": 128
},
"steamid": {
"type": "string",
"maxLength": 64
},
"musicbrainz": {
"type": "string",
"maxLength": 64
}
}
},
"subtitleTrack": {
"type": "object",
"required": [
"format",
"language"
],
"properties": {
"forced": {
"type": "boolean",
"default": false
},
"format": {
"type": "string",
"maxLength": 32
},
"language": {
"type": "string",
"maxLength": 35
},
"hearingImpaired": {
"type": "boolean",
"default": false
}
}
},
"imageCollection": {
"type": "object",
"required": [
"title"
],
"properties": {
"kind": {
"type": "string",
"knownValues": [
"photo",
"art",
"set"
]
},
"count": {
"type": "integer",
"minimum": 1
},
"title": {
"type": "string",
"maxLength": 300
},
"width": {
"type": "integer",
"minimum": 1
},
"format": {
"type": "array",
"items": {
"type": "string",
"maxLength": 32
}
},
"height": {
"type": "integer",
"minimum": 1
},
"creator": {
"type": "array",
"items": {
"type": "string",
"maxLength": 300
}
}
}
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1,
"revision": 2
}