Created
November 15, 2024 02:32
-
-
Save eggplants/c838325e56b28a117deb90093dccff1e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{"openapi":"3.0.1","info":{"version":"2.10.0","title":"epgstation","license":{"name":"MIT","url":"https://github.com/l3tnun/EPGStation/blob/master/LICENSE"}},"servers":[{"url":"http://localhost:8888/api"}],"paths":{"/videos/upload":{"parameters":[],"post":{"summary":"アップロードしたビデオファイルを追加","tags":["videos"],"description":"アップロードしたビデオファイルを追加する","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/UploadVideoFileOption"}}}},"responses":{"200":{"description":"アップロードしたビデオファイルを追加しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/version":{"parameters":[],"get":{"summary":"バージョン情報取得","tags":["version"],"description":"バージョン情報を取得する","responses":{"200":{"description":"バージョン情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Version"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/thumbnails/cleanup":{"parameters":[],"post":{"summary":"サムネイルをクリーンアップ","tags":["thumbnails"],"description":"サムネイルをクリーンアップする","responses":{"200":{"description":"サムネイルをクリーンアップしました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/thumbnails":{"parameters":[],"post":{"summary":"サムネイル再生成","tags":["thumbnails"],"description":"サムネイルの追加で再生成を開始する","responses":{"200":{"description":"サムネイルの再生成を開始しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tags":{"parameters":[],"get":{"summary":"タグ情報取得","tags":["tags"],"description":"タグ情報を取得する","parameters":[{"$ref":"#/components/parameters/Offset"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/QueryName"},{"$ref":"#/components/parameters/QueryExcludeRecordedTagId"}],"responses":{"200":{"description":"タグ情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordedTags"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"タグ追加","tags":["tags"],"description":"タグを追加する","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRecordedTagOption"}}},"required":true},"responses":{"201":{"description":"タグの追加に成功した","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddedRecordedTag"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/streams":{"parameters":[],"get":{"summary":"ストリーム情報を取得","tags":["streams"],"description":"ストリーム情報を取得する","parameters":[{"$ref":"#/components/parameters/IsHalfWidth"}],"responses":{"200":{"description":"ストリーム情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StreamInfo"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"summary":"全てのストリームを停止","tags":["streams"],"description":"全てのストリームを停止する","responses":{"200":{"description":"全てのストリームを停止しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/storages":{"parameters":[],"get":{"summary":"ストレージ情報取得","tags":["storages"],"description":"ストレージ情報を取得する","responses":{"200":{"description":"ストレージ情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageInfo"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/schedules/search":{"parameters":[],"post":{"summary":"番組検索結果を取得","tags":["schedules"],"description":"番組検索結果を取得する","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleSearchOption"}}},"required":true},"responses":{"200":{"description":"番組検索結果を取得しました","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ScheduleProgramItem"}}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/schedules/broadcasting":{"parameters":[],"get":{"summary":"放映中の番組情報取得","tags":["schedules"],"description":"放映中の番組情報を取得する","parameters":[{"$ref":"#/components/parameters/AddtionTime"},{"$ref":"#/components/parameters/IsHalfWidth"}],"responses":{"200":{"description":"放映中の番組情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Schedules"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/schedules":{"parameters":[],"get":{"summary":"番組表情報取得","tags":["schedules"],"description":"番組表情報を取得する","parameters":[{"$ref":"#/components/parameters/StartAt"},{"$ref":"#/components/parameters/EndAt"},{"$ref":"#/components/parameters/IsHalfWidth"},{"$ref":"#/components/parameters/NeedsRawExtended"},{"$ref":"#/components/parameters/IsFreeProgram"},{"$ref":"#/components/parameters/requiredGR"},{"$ref":"#/components/parameters/requiredBS"},{"$ref":"#/components/parameters/requiredCS"},{"$ref":"#/components/parameters/requiredSKY"}],"responses":{"200":{"description":"番組表情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Schedules"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/rules/keyword":{"parameters":[],"get":{"summary":"ルールをキーワード検索","tags":["rules"],"description":"ルールをキーワード検索する","parameters":[{"$ref":"#/components/parameters/Offset"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/QueryKeyword"}],"responses":{"200":{"description":"ルールをキーワード検索結果を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleKeywordInfo"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"ルール追加","tags":["rules"],"description":"ルールを追加する","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRuleOption"}}},"required":true},"responses":{"201":{"description":"ルールの追加に成功した","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddedRule"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/rules":{"parameters":[],"get":{"summary":"ルール情報取得","tags":["rules"],"description":"ルール情報を取得する","parameters":[{"$ref":"#/components/parameters/Offset"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/GetReserveType"},{"$ref":"#/components/parameters/QueryKeyword"}],"responses":{"200":{"description":"ルール情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Rules"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"ルール追加","tags":["rules"],"description":"ルールを追加する","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRuleOption"}}},"required":true},"responses":{"201":{"description":"ルールの追加に成功した","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddedRule"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/reserves/update":{"parameters":[],"post":{"summary":"予約情報の更新開始","tags":["reserves"],"description":"予約情報の更新を開始する","responses":{"200":{"description":"予約情報の更新を開始しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/reserves/lists":{"parameters":[],"get":{"summary":"予約リスト情報取得","tags":["reserves"],"description":"予約リスト情報を取得する","parameters":[{"$ref":"#/components/parameters/StartAt"},{"$ref":"#/components/parameters/EndAt"}],"responses":{"200":{"description":"予約リスト情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReserveLists"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/reserves/cnts":{"parameters":[],"get":{"summary":"予約数取得","tags":["reserves"],"description":"予約数を取得する","responses":{"200":{"description":"予約数を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReserveCnts"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/reserves":{"parameters":[],"get":{"summary":"予約情報取得","tags":["reserves"],"description":"予約情報を取得する","parameters":[{"$ref":"#/components/parameters/Offset"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/GetReserveType"},{"$ref":"#/components/parameters/IsHalfWidth"},{"$ref":"#/components/parameters/QueryRuleId"}],"responses":{"200":{"description":"予約情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Reserves"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"予約追加","tags":["reserves"],"description":"予約を追加する","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManualReserveOption"}}},"required":true},"responses":{"201":{"description":"予約の追加に成功した","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddedReserve"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/recording/resettimer":{"parameters":[],"post":{"summary":"予約タイマー再設定","tags":["recording"],"description":"予約タイマーを再設定する","responses":{"200":{"description":"予約タイマーを再設定しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/recording":{"parameters":[],"get":{"summary":"録画中情報取得","tags":["recording"],"description":"録画中情報を取得する","parameters":[{"$ref":"#/components/parameters/Offset"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/IsHalfWidth"}],"responses":{"200":{"description":"録画中情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Records"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/recorded/options":{"parameters":[],"get":{"summary":"録画検索オプションを取得","tags":["recorded"],"description":"録画検索オプションを取得する","responses":{"200":{"description":"録画検索オプションを取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordedSearchOptions"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/recorded/cleanup":{"parameters":[],"post":{"summary":"録画をクリーンアップ","tags":["recorded"],"description":"録画をクリーンアップする","responses":{"200":{"description":"録画をクリーンアップしました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/recorded":{"parameters":[],"get":{"summary":"録画情報取得","tags":["recorded"],"description":"録画情報を取得する","parameters":[{"$ref":"#/components/parameters/IsHalfWidth"},{"$ref":"#/components/parameters/Offset"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/IsReverse"},{"$ref":"#/components/parameters/QueryRuleId"},{"$ref":"#/components/parameters/QueryChannelId"},{"$ref":"#/components/parameters/QueryProgramGenre"},{"$ref":"#/components/parameters/QueryKeyword"},{"$ref":"#/components/parameters/QueryHasOriginalFile"}],"responses":{"200":{"description":"録画情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Records"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"録画番組情報の新規作成","tags":["recorded"],"description":"録画番組情報を新規作成する","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateNewRecordedOption"}}},"required":true},"responses":{"201":{"description":"録画番組情報の新規作成に成功した","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatedNewRecorded"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/iptv/epg.xml":{"parameters":[],"get":{"summary":"IPTV epg を取得","tags":["iptv"],"description":"IPTV epg を取得する","parameters":[{"$ref":"#/components/parameters/IPTVIsHalfWidth"},{"$ref":"#/components/parameters/IPTVDays"}],"responses":{"200":{"description":"epg を取得しました","content":{"application/xml":{}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/iptv/channel.m3u8":{"parameters":[],"get":{"summary":"IPTV channel list を取得","tags":["iptv"],"description":"IPTV channel list を取得する","parameters":[{"$ref":"#/components/parameters/IPTVIsHalfWidth"},{"$ref":"#/components/parameters/StreamMode"}],"responses":{"200":{"description":"channel list を取得しました","content":{"application/x-mpegURL":{}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/encode":{"parameters":[],"get":{"summary":"エンコード情報取得","tags":["encode"],"description":"エンコード情報を取得する","parameters":[{"$ref":"#/components/parameters/IsHalfWidth"}],"responses":{"200":{"description":"エンコード情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EncodeInfo"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"エンコード追加","tags":["encode"],"description":"エンコードを追加する","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddManualEncodeProgramOption"}}},"required":true},"responses":{"201":{"description":"エンコードの追加に成功した","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddedEncode"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/config":{"parameters":[],"get":{"summary":"config 情報取得","tags":["config"],"description":"config 情報を取得する","responses":{"200":{"description":"config 情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Config"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/channels":{"parameters":[],"get":{"summary":"放送局情報取得","tags":["channels"],"description":"放送局情報を取得する","responses":{"200":{"description":"放送局情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelItems"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/videos/{videoFileId}/playlist":{"parameters":[],"get":{"summary":"ビデオプレイリスト","tags":["videos"],"description":"ビデオプレイリストを取得する","parameters":[{"$ref":"#/components/parameters/PathVideoFileId"}],"responses":{"200":{"description":"ビデオプレイリストを取得しました","content":{"application/x-mpegURL":{}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/videos/{videoFileId}/kodi":{"parameters":[],"post":{"summary":"ビデオリンクを kodi へ送信","tags":["videos"],"description":"ビデオリンクを kodi へ送信する","parameters":[{"$ref":"#/components/parameters/PathVideoFileId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendVideoLinkToKodiOption"}}},"required":true},"responses":{"200":{"description":"ビデオリンクを kodi へ送信するしました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/videos/{videoFileId}/duration":{"parameters":[],"get":{"summary":"動画の長さ","tags":["videos"],"description":"動画の長さを取得する","parameters":[{"$ref":"#/components/parameters/PathVideoFileId"}],"responses":{"200":{"description":"動画の長さを取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoFileDuration"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/videos/{videoFileId}":{"parameters":[],"get":{"summary":"ビデオファイル","tags":["videos"],"description":"ビデオファイルを取得する","parameters":[{"$ref":"#/components/parameters/PathVideoFileId"},{"$ref":"#/components/parameters/IsDownload"}],"responses":{"200":{"description":"ビデオファイルを取得しました","content":{"video/mp2t":{},"video/mp4":{},"video/x-matroska":{},"video/webm":{},"application/octet-stream":{}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"summary":"ビデオファイル","tags":["videos"],"description":"ビデオファイルを削除する","parameters":[{"$ref":"#/components/parameters/PathVideoFileId"}],"responses":{"200":{"description":"ビデオファイルを削除しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/thumbnails/videos/{videoFileId}":{"parameters":[],"post":{"summary":"サムネイル追加","tags":["thumbnails"],"description":"サムネイルの生成を開始させる","parameters":[{"$ref":"#/components/parameters/PathVideoFileId"}],"responses":{"200":{"description":"追加サムネイルの生成を開始しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/thumbnails/{thumbnailId}":{"parameters":[],"get":{"summary":"サムネイル","tags":["thumbnails"],"description":"サムネイルを取得する","parameters":[{"$ref":"#/components/parameters/PathThumbnailId"}],"responses":{"200":{"description":"サムネイルを取得しました","content":{"image/jpeg":{}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"summary":"サムネイル","tags":["thumbnails"],"description":"サムネイルを削除する","parameters":[{"$ref":"#/components/parameters/PathThumbnailId"}],"responses":{"200":{"description":"サムネイルを削除しました","content":{"image/jpeg":{}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tags/{tagId}/relate":{"parameters":[],"delete":{"summary":"録画番組とタグの関連付けを削除","tags":["tags"],"description":"録画番組とタグの関連付けを削除する","parameters":[{"$ref":"#/components/parameters/PathRecordedTagId"},{"$ref":"#/components/parameters/QueryRecordedId"}],"responses":{"200":{"description":"録画番組とタグの関連付けを削除しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"summary":"録画番組とタグを関連付ける","tags":["tags"],"description":"録画番組とタグを関連付けする","parameters":[{"$ref":"#/components/parameters/PathRecordedTagId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RelateRecordedTagOption"}}},"required":true},"responses":{"200":{"description":"録画番組とタグの関連付けに成功した"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tags/{tagId}":{"parameters":[],"delete":{"summary":"タグ削除","tags":["tags"],"description":"タグを削除する","parameters":[{"$ref":"#/components/parameters/PathRecordedTagId"}],"responses":{"200":{"description":"タグを削除しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"summary":"タグ名変更","tags":["tags"],"description":"タグ名を変更する","parameters":[{"$ref":"#/components/parameters/PathRecordedTagId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRecordedTagOption"}}},"required":true},"responses":{"200":{"description":"タグの更新に成功した"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/streams/recorded/{videoFileId}/webm":{"parameters":[],"get":{"summary":"録画 WebM ストリーム","tags":["streams"],"description":"録画 WebM ストリームを取得する","parameters":[{"$ref":"#/components/parameters/PathVideoFileId"},{"$ref":"#/components/parameters/StreamPlayPosition"},{"$re |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{"openapi":"3.1.0","info":{"title":"mirakc Web API","description":"","contact":{"name":"Contributors of mirakc"},"license":{"name":"MIT OR Apache-2.0"},"version":"3.2.13"},"servers":[{"url":"/api"}],"paths":{"/channels":{"parameters":[],"get":{"tags":["channels"],"summary":"Lists channels.","operationId":"getChannels","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MirakurunChannel"}}}}},"500":{"description":"Internal Server Error"}}}},"/channels/{type}/{channel}/services/{sid}/stream":{"parameters":[],"get":{"tags":["channels::services::stream","stream"],"summary":"Gets a media stream of a service.","operationId":"getServiceStreamByChannel","parameters":[{"name":"X-Mirakurun-Priority","in":"header","description":"Priority of the tuner user","required":false,"schema":{"type":["integer","null"],"format":"int32"}},{"name":"type","in":"path","description":"Channel type","required":true,"schema":{"$ref":"#/components/schemas/ChannelType"}},{"name":"channel","in":"path","description":"Channel number","required":true,"schema":{"type":"string"}},{"name":"sid","in":"path","description":"Service ID (not Mirakurun Service ID)","required":true,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"decode","in":"query","description":"`0` or `false` disables decoding.\n\nThe stream will be decoded by default if a decoder is specified in the\n`config.yml`.","required":false,"schema":{"type":"boolean"}},{"name":"pre-filters","in":"query","description":"A list of pre-filters to use.","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"post-filters","in":"query","description":"A list of post-filters to use.","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","headers":{"X-Mirakurun-Tuner-User-ID":{"schema":{"type":"string"},"description":"Tuner user ID"}}},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Tuner Resource Unavailable"}}},"head":{"tags":["channels::services::stream","stream"],"operationId":"head","parameters":[{"name":"X-Mirakurun-Priority","in":"header","description":"Priority of the tuner user","required":false,"schema":{"type":["integer","null"],"format":"int32"}},{"name":"type","in":"path","description":"Channel type","required":true,"schema":{"$ref":"#/components/schemas/ChannelType"}},{"name":"channel","in":"path","description":"Channel number","required":true,"schema":{"type":"string"}},{"name":"sid","in":"path","description":"Service ID (not Mirakurun Service ID)","required":true,"schema":{"type":"integer","format":"int32","minimum":0}},{"name":"decode","in":"query","description":"`0` or `false` disables decoding.\n\nThe stream will be decoded by default if a decoder is specified in the\n`config.yml`.","required":false,"schema":{"type":"boolean"}},{"name":"pre-filters","in":"query","description":"A list of pre-filters to use.","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"post-filters","in":"query","description":"A list of post-filters to use.","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","headers":{"X-Mirakurun-Tuner-User-ID":{"schema":{"type":"string"},"description":"Tuner user ID"}}},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Tuner Resource Unavailable"}}}},"/channels/{type}/{channel}/stream":{"parameters":[],"get":{"tags":["channels::stream","stream"],"summary":"Gets a media stream of a channel.","operationId":"getChannelStream","parameters":[{"name":"X-Mirakurun-Priority","in":"header","description":"Priority of the tuner user","required":false,"schema":{"type":["integer","null"],"format":"int32"}},{"name":"type","in":"path","description":"Channel type","required":true,"schema":{"$ref":"#/components/schemas/ChannelType"}},{"name":"channel","in":"path","description":"Channel number","required":true,"schema":{"type":"string"}},{"name":"decode","in":"query","description":"`0` or `false` disables decoding.\n\nThe stream will be decoded by default if a decoder is specified in the\n`config.yml`.","required":false,"schema":{"type":"boolean"}},{"name":"pre-filters","in":"query","description":"A list of pre-filters to use.","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"post-filters","in":"query","description":"A list of post-filters to use.","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","headers":{"X-Mirakurun-Tuner-User-ID":{"schema":{"type":"string"},"description":"Tuner user ID"}}},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Tuner Resource Unavailable"}}},"head":{"tags":["channels::stream","stream"],"operationId":"checkChannelStream","parameters":[{"name":"X-Mirakurun-Priority","in":"header","description":"Priority of the tuner user","required":false,"schema":{"type":["integer","null"],"format":"int32"}},{"name":"type","in":"path","description":"Channel type","required":true,"schema":{"$ref":"#/components/schemas/ChannelType"}},{"name":"channel","in":"path","description":"Channel number","required":true,"schema":{"type":"string"}},{"name":"decode","in":"query","description":"`0` or `false` disables decoding.\n\nThe stream will be decoded by default if a decoder is specified in the\n`config.yml`.","required":false,"schema":{"type":"boolean"}},{"name":"pre-filters","in":"query","description":"A list of pre-filters to use.","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"post-filters","in":"query","description":"A list of post-filters to use.","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","headers":{"X-Mirakurun-Tuner-User-ID":{"schema":{"type":"string"},"description":"Tuner user ID"}}},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Tuner Resource Unavailable"}}}},"/iptv/epg":{"parameters":[],"get":{"tags":["iptv"],"summary":"Gets an XMLTV document containing all TV program information.","operationId":"epg","responses":{"200":{"description":"OK","content":{"application/xml":{"schema":{"type":"string"}}}},"500":{"description":"Internal Server Error"}}}},"/iptv/playlist":{"parameters":[],"get":{"tags":["iptv"],"summary":"Get an M3U8 playlist containing all available services.","operationId":"playlist","responses":{"200":{"description":"OK","content":{"application/x-mpegURL":{"schema":{"type":"string"}}}},"500":{"description":"Internal Server Error"}}}},"/iptv/xmltv":{"parameters":[],"get":{"tags":["iptv"],"summary":"Gets an XMLTV document containing all TV program information.","description":"For compatibility with Mirakurun.","operationId":"xmltv","responses":{"200":{"description":"OK","content":{"application/xml":{"schema":{"type":"string"}}}},"500":{"description":"Internal Server Error"}}}},"/onair":{"parameters":[],"get":{"tags":["onair"],"summary":"List on-air programs.","operationId":"getOnairPrograms","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WebOnairProgram"}}}}},"500":{"description":"Internal Server Error"}}}},"/onair/{service_id}":{"parameters":[],"get":{"tags":["onair"],"summary":"Gets an on-air program of a specified service.","operationId":"getOnairProgram","parameters":[{"name":"service_id","in":"path","description":"Mirakurun service ID","required":true,"schema":{"type":"integer","format":"int64","minimum":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WebOnairProgram"}}}}},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"}}}},"/programs":{"parameters":[],"get":{"tags":["programs"],"summary":"Lists TV programs.","description":"The list contains TV programs that have ended.\n\nA newer Mirakurun returns information contained in EIT[schedule]\noverridded by EIT[p/f] from this endpoint. This may cause","operationId":"getPrograms","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MirakurunProgram"}}}}},"500":{"description":"Internal Server Error"}}}},"/programs/{id}":{"parameters":[],"get":{"tags":["programs"],"summary":"Gets a TV program.","description":"### A special hack for EPGStation\n\nIf the User-Agent header string starts with \"EPGStation/\", this endpoint\nreturns information contained in EIT[p/f] if it exists. Otherwise,\ninformation contained in EIT[schedule] is returned.\n\nEPGStation calls this endpoint in order to update the start time and the\nduration of the TV program while recording. The intention of this call is\nassumed that EPGStation wants to get the TV program information equivalent\nto EIT[p]. However, this endpoint should return information contained in\nEIT[schedule] basically in a web API consistency point of view. Information\ncontained in EIT[p/f] should be returned from other endpoints.\n\nSee also [/programs/{id}/stream](#/stream/getProgramStream).","operationId":"getProgram","parameters":[{"name":"id","in":"path","description":"Mirakurun program ID","required":true,"schema":{"type":"integer","format":"int64","minimum":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MirakurunProgram"}}}}},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"}}}},"/programs/{id}/stream":{"parameters":[],"get":{"tags":["programs::stream","stream"],"summary":"Gets a media stream of a program.","description":"### A special hack for EPGStation\n\nIf the User-Agent header string starts with \"EPGStation/\", this endpoint\ncreates a temporal on-air program tracker if there is no tracker defined in\nconfig.yml, which can be reused for tracking changes of the TV program\nmetadata.\n\nThe temporal on-air program tracker will be stopped within 1 minute after\nthe streaming stopped.\n\nThe metadata will be returned from [/programs/{id}](#/programs/getProgram).","operationId":"getProgramStream","parameters":[{"name":"X-Mirakurun-Priority","in":"header","description":"Priority of the tuner user","required":false,"schema":{"type":["integer","null"],"format":"int32"}},{"name":"id","in":"path","description":"Mirakurun program ID","required":true,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"decode","in":"query","description":"`0` or `false` disables decoding.\n\nThe stream will be decoded by default if a decoder is specified in the\n`config.yml`.","required":false,"schema":{"type":"boolean"}},{"name":"pre-filters","in":"query","description":"A list of pre-filters to use.","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"post-filters","in":"query","description":"A list of post-filters to use.","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","headers":{"X-Mirakurun-Tuner-User-ID":{"schema":{"type":"string"},"description":"Tuner user ID"}}},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Tuner Resource Unavailable"}}},"head":{"tags":["programs::stream","stream"],"operationId":"checkProgramStream","parameters":[{"name":"X-Mirakurun-Priority","in":"header","description":"Priority of the tuner user","required":false,"schema":{"type":["integer","null"],"format":"int32"}},{"name":"id","in":"path","description":"Mirakurun program ID","required":true,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"decode","in":"query","description":"`0` or `false` disables decoding.\n\nThe stream will be decoded by default if a decoder is specified in the\n`config.yml`.","required":false,"schema":{"type":"boolean"}},{"name":"pre-filters","in":"query","description":"A list of pre-filters to use.","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"post-filters","in":"query","description":"A list of post-filters to use.","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","headers":{"X-Mirakurun-Tuner-User-ID":{"schema":{"type":"string"},"description":"Tuner user ID"}}},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Tuner Resource Unavailable"}}}},"/services":{"parameters":[],"get":{"tags":["services"],"summary":"Lists services.","operationId":"getServices","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MirakurunService"}}}}},"500":{"description":"Internal Server Error"}}}},"/services/{id}":{"parameters":[],"get":{"tags":["services"],"summary":"Gets a service.","operationId":"getService","parameters":[{"name":"id","in":"path","description":"Mirakurun service ID","required":true,"schema":{"type":"integer","format":"int64","minimum":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MirakurunService"}}}},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"}}}},"/services/{id}/logo":{"parameters":[],"get":{"tags":["services"],"summary":"Gets a logo image of a service.","operationId":"getLogoImage","parameters":[{"name":"id","in":"path","description":"Mirakurun service ID","required":true,"schema":{"type":"integer","format":"int64","minimum":0}}],"responses":{"200":{"description":"OK","content":{"image/png":{}}},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Logo Data Unavailable"}}}},"/services/{id}/programs":{"parameters":[],"get":{"tags":["services"],"summary":"Lists TV programs of a service.","description":"The list contains TV programs that have ended.","operationId":"getProgramsOfService","parameters":[{"name":"id","in":"path","description":"Mirakurun service ID","required":true,"schema":{"type":"integer","format":"int64","minimum":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MirakurunProgram"}}}}},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"}}}},"/services/{id}/stream":{"parameters":[],"get":{"tags":["services::stream","stream"],"summary":"Gets a media stream of a service.","operationId":"getServiceStream","parameters":[{"name":"X-Mirakurun-Priority","in":"header","description":"Priority of the tuner user","required":false,"schema":{"type":["integer","null"],"format":"int32"}},{"name":"id","in":"path","description":"Mirakurun service ID","required":true,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"decode","in":"query","description":"`0` or `false` disables decoding.\n\nThe stream will be decoded by default if a decoder is specified in the\n`config.yml`.","required":false,"schema":{"type":"boolean"}},{"name":"pre-filters","in":"query","description":"A list of pre-filters to use.","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"post-filters","in":"query","description":"A list of post-filters to use.","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","headers":{"X-Mirakurun-Tuner-User-ID":{"schema":{"type":"string"},"description":"Tuner user ID"}}},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Tuner Resource Unavailable"}}},"head":{"tags":["services::stream","stream"],"operationId":"checkServiceStream","parameters":[{"name":"X-Mirakurun-Priority","in":"header","description":"Priority of the tuner user","required":false,"schema":{"type":["integer","null"],"format":"int32"}},{"name":"id","in":"path","description":"Mirakurun service ID","required":true,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"decode","in":"query","description":"`0` or `false` disables decoding.\n\nThe stream will be decoded by default if a decoder is specified in the\n`config.yml`.","required":false,"schema":{"type":"boolean"}},{"name":"pre-filters","in":"query","description":"A list of pre-filters to use.","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"post-filters","in":"query","description":"A list of post-filters to use.","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","headers":{"X-Mirakurun-Tuner-User-ID":{"schema":{"type":"string"},"description":"Tuner user ID"}}},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"503":{"description":"Tuner Resource Unavailable"}}}},"/status":{"parameters":[],"get":{"tags":["status"],"summary":"Gets current status information.","description":"mirakc doesn't implement this endpoint and always returns an empty object.","operationId":"getStatus","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Status"}}}}}}},"/tuners":{"parameters":[],"get":{"tags":["tuners"],"summary":"Lists tuners enabled in `config.yml`.","operationId":"getTuners","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MirakurunTuner"}}}}},"500":{"description":"Internal Server Error"}}}},"/tuners/{index}":{"parameters":[],"get":{"tags":["tuners"],"summary":"Gets a tuner model.","operationId":"getTuner","parameters":[{"name":"index","in":"path","description":"Tuner index","required":true,"schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MirakurunTuner"}}}},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"}}}},"/version":{"parameters":[],"get":{"tags":["version"],"summary":"Gets version information.","operationId":"checkVersion","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Version"}}}}}}}},"components":{"schemas":{"ChannelType":{"type":"string","enum":["GR","BS","CS","SKY"]},"MirakurunChannel":{"type":"object","title":"Channel","required":["type","channel","name","services"],"properties":{"channel":{"type":"string"},"name":{"type":"string"},"services":{"type":"array","items":{"type":"object","required":["id","serviceId","networkId","name"],"properties":{"id":{"type":"integer","format":"int64","minimum":0},"name":{"type":"string"},"networkId":{"type":"integer","format":"int32","minimum":0},"serviceId":{"type":"integer","format":"int32","minimum":0}}}},"type":{"$ref":"#/components/schemas/ChannelType"}}},"MirakurunProgram":{"type":"object","title":"Program","required":["id","eventId","serviceId","networkId","startAt","duration","isFree"],"properties":{"audio":{"oneOf":[{"type":"null"},{"type":"object","required":["componentType","isMain","samplingRate","langs"],"properties":{"componentType":{"type":"integer","format":"int32","minimum":0},"isMain":{"type":"boolean"},"langs":{"type":"array","items":{"type":"string"}},"samplingRate":{"type":"integer","format":"int32"}}}]},"audios":{"type":"array","items":{"type":"object","required":["componentType","isMain","samplingRate","langs"],"properties":{"componentType":{"type":"integer","format":"int32","minimum":0},"isMain":{"type":"boolean"},"langs":{"type":"array","items":{"type":"string"}},"samplingRate":{"type":"integer","format":"int32"}}}},"description":{"type":["string","null"]},"duration":{"type":"integer","format":"int64"},"eventId":{"type":"integer","format":"int32","minimum":0},"extended":{"type":"object"},"genres":{"type" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment