TVU Networks Search API

TVU Search / MediaMind media search and metadata — cross-type media content search, slug and recording management, speech transcription and face-recognition metadata, export and thumbnail jobs, and webhook registration for metadata delivery. Contract assembled from the 67 per-endpoint OpenAPI 3.0.1 exports TVU publishes on its own API documentation site.

Operations 2

POST /search/v2/media/createSlugRecord Create a new slug and trigger recording #
POST /search/v2/media/updateSlugRecord Update an existing slug and its recording configuration #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/search-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

tvu-networks-search-api-openapi.yml Raw ↑
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