UNPKG

mirakurun

Version:

DVR Tuner Server for Japanese TV.

790 lines (745 loc) 17 kB
swagger: '2.0' info: title: Mirakurun version: '0.0.0' description: DVR Tuner Server for Japanese TV. contact: name: Chinachu Project url: https://chinachu.moe/ basePath: /api consumes: - application/json produces: - application/json paths: {} definitions: # common -------------------------------------------------------------------- Error: type: object properties: code: type: integer reason: type: string errors: type: array items: $ref: '#/definitions/ErrorOfOpenAPI' ErrorOfOpenAPI: type: object properties: errorCode: type: string message: type: string location: type: string ProgramId: type: integer maximum: 655356553565535 EventId: type: integer maximum: 65535 ServiceId: type: integer maximum: 65535 NetworkId: type: integer maximum: 65535 ServiceItemId: type: integer maximum: 6553565535 UnixtimeMS: type: integer # channel ------------------------------------------------------------------- Channel: type: object required: - type - channel properties: type: $ref: '#/definitions/ChannelType' channel: type: string name: type: string tsmfRelTs: type: integer services: type: array items: $ref: '#/definitions/Service' ChannelType: type: string enum: - GR - BS - CS - SKY # service ------------------------------------------------------------------- Service: type: object required: - id - serviceId - networkId - name - type properties: id: $ref: '#/definitions/ServiceItemId' serviceId: $ref: '#/definitions/ServiceId' networkId: $ref: '#/definitions/NetworkId' name: type: string type: type: integer logoId: type: integer hasLogoData: type: boolean remoteControlKeyId: type: integer epgReady: type: boolean epgUpdatedAt: $ref: '#/definitions/UnixtimeMS' channel: $ref: '#/definitions/Channel' # program ------------------------------------------------------------------- Program: type: object required: - id - eventId - serviceId - networkId - startAt - duration - isFree properties: id: $ref: '#/definitions/ProgramId' eventId: $ref: '#/definitions/EventId' serviceId: $ref: '#/definitions/ServiceId' networkId: $ref: '#/definitions/NetworkId' startAt: $ref: '#/definitions/UnixtimeMS' duration: type: integer isFree: type: boolean name: type: string description: type: string genres: type: array items: $ref: '#/definitions/ProgramGenre' #attributes: # type: array # items: # type: string video: type: object properties: type: $ref: '#/definitions/ProgramVideoType' resolution: $ref: '#/definitions/ProgramVideoResolution' streamContent: type: integer componentType: type: integer audios: type: array items: type: object properties: componentType: type: integer componentTag: type: integer isMain: type: boolean samplingRate: $ref: '#/definitions/ProgramAudioSamplingRate' langs: type: array items: type: string enum: - jpn - eng - deu - fra - ita - rus - zho - kor - spa - etc extended: type: object relatedItems: type: array items: $ref: '#/definitions/RelatedItem' series: type: object properties: id: type: integer repeat: type: integer minimum: 0 pattern: $ref: '#/definitions/ProgramPattern' expiresAt: $ref: '#/definitions/UnixtimeMS' episode: $ref: '#/definitions/ProgramEpisodeNumber' lastEpisode: $ref: '#/definitions/ProgramEpisodeNumber' name: type: string ProgramGenre: type: object properties: lv1: type: integer lv2: type: integer un1: type: integer un2: type: integer ProgramVideoType: type: string enum: - mpeg2 - h.264 - h.265 ProgramVideoResolution: type: string enum: - 240p - 480i - 480p - 720p - 1080i - 1080p - 2160p - 4320p ProgramAudioSamplingRate: type: integer enum: - 16000 # 001 - 22050 # 010 - 24000 # 011 - 32000 # 101 - 44100 # 110 - 48000 # 111 ProgramPattern: type: integer minimum: 0 maximum: 7 # ARIB STD-B10 Vol.2 # 0x0 不定期(0x1 – 0x7で定義されるもの以外) # 0x1 帯番組(毎日、平日のみ毎日、土・日のみなど)、週に複数回の編成 # 0x2 週に1回程度の編成 # 0x3 月に1回程度の編成 # 0x4 同日内に複数話数の編成 # 0x5 長時間番組の分割 # 0x6 定期または不定期の蓄積用の編成 # 0x7 未定義 ProgramEpisodeNumber: type: integer minimum: 1 maximum: 4095 RelatedItem: type: object properties: type: type: string enum: - shared - relay - movement networkId: type: integer serviceId: type: integer eventId: type: integer # tuner --------------------------------------------------------------------- TunerDevice: type: object required: - index - name - types - command - pid - users - isAvailable - isFree - isUsing - isFault properties: index: type: integer name: type: string types: type: array items: $ref: '#/definitions/ChannelType' command: type: string pid: type: integer users: type: array items: $ref: '#/definitions/TunerUser' isAvailable: type: boolean isRemote: type: boolean isFree: type: boolean isUsing: type: boolean isFault: type: boolean TunerUser: type: object required: - id - priority properties: id: type: string priority: type: integer minimum: -1 agent: type: string url: type: string disableDecoder: type: boolean streamSetting: type: object required: - channel properties: channel: $ref: '#/definitions/ConfigChannelsItem' networkId: type: integer serviceId: type: integer eventId: type: integer noProvide: type: boolean parseNIT: type: boolean parseSDT: type: boolean parseEIT: type: boolean streamInfo: type: object additionalProperties: type: object required: - packet - drop properties: packet: type: integer drop: type: integer TunerProcess: type: object required: - pid properties: pid: type: integer # job ----------------------------------------------------------------------- JobScheduleItem: type: object required: - key - schedule - job properties: key: type: string schedule: type: string job: type: object required: - key - name properties: key: type: string name: type: string JobItem: type: object required: - key - name - id - status - retryCount - isAborting - createdAt - updatedAt properties: key: type: string name: type: string id: type: string status: type: string enum: - queued - standby - running - finished retryCount: type: integer isRerunnable: type: boolean retryOnAbort: type: boolean retryOnFail: type: boolean retryMax: type: integer retryDelay: type: integer isAborting: type: boolean hasAborted: type: boolean hasSkipped: type: boolean hasFailed: type: boolean error: type: string createdAt: $ref: '#/definitions/UnixtimeMS' updatedAt: $ref: '#/definitions/UnixtimeMS' startedAt: $ref: '#/definitions/UnixtimeMS' finishedAt: $ref: '#/definitions/UnixtimeMS' duration: type: integer # event --------------------------------------------------------------------- Event: type: object required: - resource - type - data - time properties: resource: $ref: '#/definitions/EventResource' type: $ref: '#/definitions/EventType' data: type: object time: $ref: '#/definitions/UnixtimeMS' EventResource: type: string enum: - program - service - tuner EventType: type: string enum: - create - update - remove # config -------------------------------------------------------------------- ConfigServer: type: object properties: path: type: string port: type: integer minimum: 1 maximum: 65535 hostname: type: string disableIPv6: type: boolean logLevel: type: integer minimum: -1 maximum: 3 maxLogHistory: type: integer minimum: 0 jobMaxRunning: type: integer minimum: 1 maximum: 100 jobMaxStandby: type: integer minimum: 1 maximum: 100 maxBufferBytesBeforeReady: type: integer eventEndTimeout: type: integer minimum: 0 programGCJobSchedule: type: string epgGatheringJobSchedule: type: string epgRetrievalTime: type: integer logoDataInterval: type: integer disableEITParsing: type: boolean disableWebUI: type: boolean allowIPv4CidrRanges: type: array items: type: string allowIPv6CidrRanges: type: array items: type: string ConfigTuners: type: array items: $ref: '#/definitions/ConfigTunersItem' ConfigTunersItem: type: object required: - name - types properties: name: type: string types: type: array items: $ref: '#/definitions/ChannelType' command: type: string dvbDevicePath: type: string remoteMirakurunHost: type: string remoteMirakurunPort: type: integer remoteMirakurunDecoder: type: boolean decoder: type: string isDisabled: type: boolean ConfigChannels: type: array items: $ref: '#/definitions/ConfigChannelsItem' ConfigChannelsItem: type: object required: - name - type - channel properties: name: type: string type: $ref: '#/definitions/ChannelType' channel: type: string serviceId: $ref: '#/definitions/ServiceId' tsmfRelTs: type: integer commandVars: type: object isDisabled: type: boolean Version: type: object properties: current: type: string latest: type: string ChannelScanStatus: type: object description: "Current status of a channel scan operation" properties: status: type: string description: "Current scan status" enum: - not_started - scanning - completed - cancelled - error isScanning: type: boolean description: "Whether a scan is currently in progress" type: $ref: '#/definitions/ChannelType' description: "Channel type being scanned" dryRun: type: boolean description: "Whether this is a dry run (no changes will be saved)" progress: type: integer description: "Scan progress percentage (0-100)" currentChannel: type: string description: "Channel currently being scanned" scanLog: type: array description: "Log of scan events" items: type: string newCount: type: integer description: "Number of new channels found" takeoverCount: type: integer description: "Number of existing channels merged" result: type: array description: "Complete channel configuration" items: $ref: "#/definitions/ConfigChannelsItem" startTime: $ref: '#/definitions/UnixtimeMS' updateTime: $ref: '#/definitions/UnixtimeMS' Status: type: object properties: time: type: integer version: type: string process: type: object properties: arch: type: string platform: type: string versions: type: object env: type: object pid: type: integer memoryUsage: type: object properties: rss: type: integer heapTotal: type: integer heapUsed: type: integer epg: type: object properties: gatheringNetworks: type: array items: $ref: '#/definitions/NetworkId' storedEvents: type: integer rpcCount: type: integer streamCount: type: object properties: tunerDevice: type: integer tsFilter: type: integer decoder: type: integer errorCount: type: object properties: uncaughtException: type: integer unhandledRejection: type: integer bufferOverflow: type: integer tunerDeviceRespawn: type: integer decoderRespawn: type: integer timerAccuracy: type: object properties: last: type: number m1: type: object properties: avg: type: number min: type: number max: type: number m5: type: object properties: avg: type: number min: type: number max: type: number m15: type: object properties: avg: type: number min: type: number max: type: number