Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: TVU Networks — Uncategorized Search API
description: Uncategorized operations of the TVU Networks public HTTP API, assembled verbatim from the per-endpoint OpenAPI 3.0.1 exports TVU publishes on its own Apifox documentation site (https://docs.tvunetworks.cn/). Each operation body is the provider's own export; only grouping, servers[] and operationId backfill were added by API Evangelist.
version: 1.0.0
contact:
name: TVU Networks
url: https://www.tvunetworks.com/tvu-developer/
servers:
- url: https://api.tvunetworks.com
description: Prod Env default server
tags:
- name: Search
paths:
/search/v2/media/createSlugRecord:
post:
summary: Create a new slug and trigger recording
deprecated: false
description: 'Creates a new slug bound to the specified source object and immediately applies
the recording configuration determined by recordingType. The authenticated user''s
ID is resolved automatically from the request context.
Only one recording backend is applied, strictly determined by recordingType:
recordingType=0 uses mmaRecordingParameters, recordingType=1 uses rrsRecordingParameters.
All switch fields (recording, livePreview, transcriber, etc.) use a unified convention:
0=Close, 1=Enable.
Request example (MMA, POST v2/media/createSlugRecord):
{
"sourceObjectId": "obj-abc123",
"slug": "evening-news",
"title": "Evening News",
"report": "Daily report",
"startTime": 1713000000000,
"endTime": 1713003600000,
"recordingType": 0,
"mmaRecordingParameters":{
"livePreview": 1,
"gridDistribution": 0,
"recording": 1,
"speechTranscription": 1,
"faceDetection": 0,
"transcriberInfo": "{\"LanguageCode\":\"en-US\"}",
"sourceResolution": 0
}
}
Request example (RRS, POST v2/media/createSlugRecord):
{
"sourceObjectId": "obj-abc123",
"title": "Evening News",
"startTime": 1713000000000,
"recordingType": 1,
"rrsRecordingParameters":{
"templateId": "default",
"recording": 1,
"transcriber": 1,
"vision": 0,
"transcriberParameter": "{\"aiproxy\":{\"strLanguage\":\"en-US\"}}",
"rrsCustomParameter": "{\"storage_info.bucket_name\":\"mma-video-new\"}"
}
}
Response example (success):
{
"errorCode": "0x0",
"errorInfo": "success",
"result": null
}
Response example (parameter error):
{
"errorCode": "80B00101",
"errorInfo": "Parameter error",
"result": null
}'
tags:
- Search
parameters:
- name: SID
in: header
description: ''
example: 92575d36dcb631ac94745e6b157de17a5a13d65b31e44869f06854ab928dd80235d4daae8696b4a92a7be5f802c45a219648701fc9ca59f44e9c0f022d5d38a7
schema:
type: string
default: 92575d36dcb631ac94745e6b157de17a5a13d65b31e44869f06854ab928dd80235d4daae8696b4a92a7be5f802c45a219648701fc9ca59f44e9c0f022d5d38a7
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateSlugRecordParam'
description: "Request body. sourceObjectId and recordingType are required.\n When recordingType=0, mmaRecordingParameters is required.\n When recordingType=1, rrsRecordingParameters is required."
responses:
'200':
description: ''
content:
application/json:
schema:
type: object
properties:
errorCode:
type: string
errorInfo:
type: string
result:
type: object
properties:
id:
type: string
deleteFlag:
type: integer
createTime:
type: integer
updateTime:
type: integer
peerId:
type: string
gridLinkMetadata:
type: string
globalGridMetadata:
type: 'null'
sourceName:
type: 'null'
sourceType:
type: 'null'
endTime:
type: integer
externalId:
type: 'null'
repeatId:
type: string
executeRepeatId:
type: 'null'
slug:
type: string
title:
type: string
report:
type: string
color:
type: integer
operationRepeatParam:
type: 'null'
objectId:
type: string
slugObjectId:
type: string
insertTime:
type: integer
startTimeCode:
type: 'null'
endTimeCode:
type: 'null'
slugAdvanced:
type: 'null'
slugRecord:
type: object
properties:
id:
type: string
deleteFlag:
type: integer
createTime:
type: integer
updateTime:
type: integer
slugId:
type: string
rrsTaskId:
type: 'null'
userId:
type: string
sourceObjectId:
type: string
status:
type: integer
sourceId:
type: string
inputTaskId:
type: 'null'
templateId:
type: string
mmaId:
type: 'null'
recording:
type: integer
transcriber:
type: integer
vision:
type: integer
transcriberParameter:
type: string
rrsCustomParameter:
type: string
groupId:
type: string
required:
- id
- deleteFlag
- createTime
- updateTime
- slugId
- rrsTaskId
- userId
- sourceObjectId
- status
- sourceId
- inputTaskId
- templateId
- mmaId
- recording
- transcriber
- vision
- transcriberParameter
- rrsCustomParameter
- groupId
x-apifox-orders:
- id
- deleteFlag
- createTime
- updateTime
- slugId
- rrsTaskId
- userId
- sourceObjectId
- status
- sourceId
- inputTaskId
- templateId
- mmaId
- recording
- transcriber
- vision
- transcriberParameter
- rrsCustomParameter
- groupId
x-apifox-ignore-properties: []
thumbnailPath:
type: 'null'
userId:
type: string
groupId:
type: string
ingestFile:
type: integer
type:
type: integer
repeatAssociatedId:
type: string
obj:
type: 'null'
tags:
type: 'null'
noController:
type: boolean
required:
- id
- deleteFlag
- createTime
- updateTime
- peerId
- gridLinkMetadata
- globalGridMetadata
- sourceName
- sourceType
- endTime
- externalId
- repeatId
- executeRepeatId
- slug
- title
- report
- color
- operationRepeatParam
- objectId
- slugObjectId
- insertTime
- startTimeCode
- endTimeCode
- slugAdvanced
- slugRecord
- thumbnailPath
- userId
- groupId
- ingestFile
- type
- repeatAssociatedId
- obj
- tags
- noController
x-apifox-orders:
- id
- deleteFlag
- createTime
- updateTime
- peerId
- gridLinkMetadata
- globalGridMetadata
- sourceName
- sourceType
- endTime
- externalId
- repeatId
- executeRepeatId
- slug
- title
- report
- color
- operationRepeatParam
- objectId
- slugObjectId
- insertTime
- startTimeCode
- endTimeCode
- slugAdvanced
- slugRecord
- thumbnailPath
- userId
- groupId
- ingestFile
- type
- repeatAssociatedId
- obj
- tags
- noController
x-apifox-ignore-properties: []
required:
- errorCode
- errorInfo
- result
description: ProcessResult with errorCode "0x0" on success, or an error code on failure.
x-apifox-orders:
- errorCode
- errorInfo
- result
x-apifox-ignore-properties: []
example:
errorCode: '0x0'
errorInfo: success
result:
id: 950ec1ca518d4cca8b6681a458d28726
deleteFlag: 0
createTime: 1776209035182
updateTime: 1776209035182
peerId: 55524c204558544c0000019d6eead497
gridLinkMetadata: 1304_Test_Johannes
globalGridMetadata: null
sourceName: null
sourceType: null
endTime: 1776216235182
externalId: null
repeatId: ''
executeRepeatId: null
slug: 1304_Test_Johannes-1304_Test_Johannes
title: 1304_Test_Johannes
report: ''
color: 0
operationRepeatParam: null
objectId: '1491665535908319232'
slugObjectId: '1493874586218008576'
insertTime: 1776209054947
startTimeCode: null
endTimeCode: null
slugAdvanced: null
slugRecord:
id: d5083d48338349eaa2ff4b8f5ec0954f
deleteFlag: 0
createTime: 1776209056221
updateTime: 1776209056221
slugId: 950ec1ca518d4cca8b6681a458d28726
rrsTaskId: null
userId: 3c5cad3220ab49469e9094c391aeaac1
sourceObjectId: '1491665535908319232'
status: 0
sourceId: 55524c204558544c0000019d6eead497
inputTaskId: null
templateId: default
mmaId: null
recording: 0
transcriber: 1
vision: 1
transcriberParameter: '{"aiproxy": {"strLanguage": "en-US"}}'
rrsCustomParameter: '{"storage_info.bucket_name": "mma-video-new"}'
groupId: 64437f15eaf74741ad749b0d7d2457ec
thumbnailPath: null
userId: 3c5cad3220ab49469e9094c391aeaac1
groupId: 64437f15eaf74741ad749b0d7d2457ec
ingestFile: 0
type: 0
repeatAssociatedId: 950ec1ca518d4cca8b6681a458d28726
obj: null
tags: null
noController: false
headers: {}
x-apifox-name: ''
security:
- bearer: []
x-apifox:
schemeGroups:
- id: dorUvluuWafg8M-wE7PjU
schemeIds:
- bearer
required: true
use:
id: dorUvluuWafg8M-wE7PjU
scopes:
dorUvluuWafg8M-wE7PjU:
bearer: []
x-apifox-folder: ''
x-apifox-status: released
x-run-in-apifox: https://app.apifox.com/web/project/4126232/apis/api-450372672-run
operationId: Create_a_new_slug_and_trigger_recording_450372672
x-source-doc: https://docs.tvunetworks.cn/api-450372672.md
/search/v2/media/updateSlugRecord:
post:
summary: Update an existing slug and its recording configuration
deprecated: false
description: 'Updates the metadata and recording parameters of an existing slug identified by slugId.
Only the fields that are explicitly provided will be updated; omitted fields retain their
current values. The authenticated user''s ID is resolved automatically from the request context.
Only one recording backend is applied, strictly determined by recordingType:
recordingType=1 uses mmaRecordingParameters, recordingType=2 uses rrsRecordingParameters.
All switch fields (recording, livePreview, transcriber, etc.) use a unified convention:
0=Close, 1=Enable.
Request example (RRS, POST v2/media/updateSlugRecord):
{
"slugId": "slug-xyz789",
"title": "Evening News Updated",
"endTime": 1713007200000,
"recordingType": 1,
"rrsRecordingParameters":{
"templateId": "default",
"recording": 1,
"transcriber": 1,
"vision": 0,
"transcriberParameter": "{\"aiproxy\":{\"strLanguage\":\"en-US\"}}",
"rrsCustomParameter": "{\"storage_info.bucket_name\":\"mma-video-new\"}"
}
}
Request example (MMA, POST v2/media/updateSlugRecord):
{
"slugId": "slug-xyz789",
"recordingType": 0,
"mmaRecordingParameters":{
"recording": 1,
"livePreview": 1,
"sourceResolution": 0
}
}
Response example (success):
{
"errorCode": "0x0",
"errorInfo": "success",
"result": null
}
Response example (parameter error):
{
"errorCode": "80B00101",
"errorInfo": "Parameter error",
"result": null
}'
tags:
- Search
parameters:
- name: SID
in: header
description: ''
example: 92575d36dcb631ac94745e6b157de17a5a13d65b31e44869f06854ab928dd80235d4daae8696b4a92a7be5f802c45a219648701fc9ca59f44e9c0f022d5d38a7
schema:
type: string
default: 92575d36dcb631ac94745e6b157de17a5a13d65b31e44869f06854ab928dd80235d4daae8696b4a92a7be5f802c45a219648701fc9ca59f44e9c0f022d5d38a7
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateSlugRecordParam'
description: "Request body. slugId and recordingType are required.\n When recordingType=0, mmaRecordingParameters is required.\n When recordingType=1, rrsRecordingParameters is required."
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessResultObject'
description: ProcessResult with errorCode "0x0" on success, or an error code on failure.
headers: {}
x-apifox-name: ''
security:
- bearer: []
x-apifox:
schemeGroups:
- id: pIfH_P7SGkQDZQwQtwQhH
schemeIds:
- bearer
required: true
use:
id: pIfH_P7SGkQDZQwQtwQhH
scopes:
pIfH_P7SGkQDZQwQtwQhH:
bearer: []
x-apifox-folder: ''
x-apifox-status: released
x-run-in-apifox: https://app.apifox.com/web/project/4126232/apis/api-450372673-run
operationId: Update_an_existing_slug_and_its_recording_configuration_450372673
x-source-doc: https://docs.tvunetworks.cn/api-450372673.md
components:
schemas:
ProcessResultObject:
type: object
properties:
errorCode:
type: string
description: 'Error code. "0x0" indicates success; any other value indicates an error.
Common codes: "0x0"=success, "80B00101"=parameter error, "0x80100002"=null record,
"0x80100003"=exception, "0x80100008"=request timeout.'
errorInfo:
type: string
description: 'Human-readable error message corresponding to errorCode.
"success" when errorCode is "0x0".'
result:
type: object
properties: {}
x--orders: []
x--ignore-properties: []
x-apifox-orders:
- errorCode
- errorInfo
- result
x--orders:
- errorCode
- errorInfo
- result
x--ignore-properties: []
x-apifox-folder: ''
CreateSlugRecordParam:
type: object
properties:
sourceObjectId:
type: string
description: source object id
slug:
type: string
description: slug
title:
type: string
description: The display title of the slug/event.
report:
type: string
description: The report or description text for the slug.
startTime:
type: integer
description: 'Slug start time as a Unix timestamp in milliseconds.
When this time is reached, recording will be triggered automatically.
Defaults to the current time if not provided.'
format: int64
endTime:
type: integer
description: 'Slug end time as a Unix timestamp in milliseconds.
When this time is reached, recording will be stopped automatically.
Defaults to 9999999999999 (no expiry) if not provided.'
format: int64
recordingType:
type: integer
description: 'Recording backend type. Optional.
null or 0 - Simple slug creation, no recording is triggered.
1 - MMA (Media Mind Application). Requires mmaRecordingParameters.
2 - RRS (Remote Recording Service). Requires rrsRecordingParameters.'
mmaRecordingParameters:
$ref: '#/components/schemas/MmaRecordingParam'
description: MMA recording configuration parameters. Required when recordingType = 1.
rrsRecordingParameters:
$ref: '#/components/schemas/RrsRecordingParam'
description: RRS recording configuration parameters. Required when recordingType = 2.
required:
- sourceObjectId
- slug
x-apifox-orders:
- sourceObjectId
- slug
- title
- report
- startTime
- endTime
- recordingType
- mmaRecordingParameters
- rrsRecordingParameters
x-apifox-ignore-properties: []
x-apifox-folder: ''
RrsRecordingParam:
type: object
properties:
templateId:
type: string
description: 'Template ID used to start the corresponding RRS module, sourced from mma-admin.
Use "default" if no specific template is required.'
recording:
type: integer
description: 'Recording switch. Defaults to enabled if not set in the template.
0 - Close
1 - Enable (default)'
transcriber:
type: integer
description: 'Transcriber (speech-to-text) switch.
When not set, the template''s default value is used.
0 - Close
1 - Enable'
vision:
type: integer
description: 'Vision (AI video analysis) switch.
When not set, the template''s default value is used.
0 - Close
1 - Enable'
transcriberParameter:
type: string
description: 'Custom transcriber configuration in JSON string format.
Example:{"aiproxy":{"strLanguage":"en-US"}}'
rrsCustomParameter:
type: string
description: 'Custom RRS configuration in JSON string format.
Example:{"storage_info.bucket_name":"mma-video-new"}'
x-apifox-orders:
- templateId
- recording
- transcriber
- vision
- transcriberParameter
- rrsCustomParameter
x--orders:
- templateId
- recording
- transcriber
- vision
- transcriberParameter
- rrsCustomParameter
x--ignore-properties: []
x-apifox-folder: ''
MmaRecordingParam:
type: object
properties:
livePreview:
type: integer
description: 'Live preview switch.
0 - Close (default)
1 - Enable'
gridDistribution:
type: integer
description: 'Grid distribution switch.
0 - Close (default)
1 - Enable'
recording:
type: integer
description: 'Recording switch.
0 - Close (default)
1 - Enable'
speechTranscription:
type: integer
description: 'Speech transcription switch.
0 - Close (default)
1 - Enable'
faceDetection:
type: integer
description: 'Face detection switch.
0 - Close (default)
1 - Enable'
transcriberInfo:
type: string
description: 'Transcriber configuration in JSON string format.
Example:{"LanguageCode":"en-US"}'
sourceResolution:
type: integer
description: 'Source resolution setting.
0 - 1080p60 (default)
1 - Lower resolution
2 - 4Kp30'
x-apifox-orders:
- livePreview
- gridDistribution
- recording
- speechTranscription
- faceDetection
- transcriberInfo
- sourceResolution
x--orders:
- livePreview
- gridDistribution
- recording
- speechTranscription
- faceDetection
- transcriberInfo
- sourceResolution
x--ignore-properties: []
x-apifox-folder: ''
UpdateSlugRecordParam:
type: object
properties:
slugId:
type: string
description: slug id
slug:
type: string
description: The slug identifier string (event identifier). Optional; updates only when provided.
title:
type: string
description: The display title of the slug/event. Optional; updates only when provided.
report:
type: string
description: The report or description text for the slug. Optional; updates only when provided.
startTime:
type: integer
description: 'Slug start time as a Unix timestamp in milliseconds. Optional; updates only when provided.
When this time is reached, recording will be triggered automatically.'
format: int64
endTime:
type: integer
description: 'Slug end time as a Unix timestamp in milliseconds. Optional; updates only when provided.
When this time is reached, recording will be stopped automatically.'
format: int64
recordingType:
type: integer
description: "Recording backend type. Optional.\nnull or 0 - No recording update.\n1 - MMA (Media Mind Application). Requires mmaRecordingParameters.\n Cannot be used if the slug was originally created with RRS.\n2 - RRS (Remote Recording Service). Requires rrsRecordingParameters.\n Cannot be used if the slug was originally created with MMA.\nIf the slug was created without recording, either type can be added here."
mmaRecordingParameters:
$ref: '#/components/schemas/MmaRecordingParam'
description: MMA recording configuration parameters. Required when recordingType = 1.
rrsRecordingParameters:
$ref: '#/components/schemas/RrsRecordingParam'
description: RRS recording configuration parameters. Required when recordingType = 2.
required:
- slugId
x-apifox-orders:
- slugId
- slug
- title
- report
- startTime
- endTime
- recordingType
- mmaRecordingParameters
- rrsRecordingParameters
x--orders:
- slugId
- slug
- title
- report
- startTime
- endTime
- recordingType
- mmaRecordingParameters
- rrsRecordingParameters
x--ignore-properties: []
x-apifox-folder: ''
securitySchemes:
bearer:
type: bearer
scheme: bearer
apikey-header-Authorization:
type: apikey
in: header
name: Authorization
apikey-header-SID:
type: apikey
in: header
name: SID
tvu:
type: bearer
scheme: bearer