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 67

GET /api/import import test #
POST /api/metadataproto/MetadataUploader.RegisterWebhook register webhook #
POST /api/resource/v2/cut-json cut-json #
POST /api/resource/v2/export export #
POST /api/resource/v2/exportaudio exportaudio #
POST /api/resource/v2/longexport longexport #
GET /api/resource/v2/thumbnail thumbnail #
POST /api/search/v1/i/activity Send session heartbeat to track user activity #
POST /api/search/v1/i/autosearch Run an auto-search query #
GET /api/search/v1/i/click List persons detected in a media file by face recognition #
POST /api/search/v1/i/combtag Search media content by tags and free text #
POST /api/search/v1/i/fetchallobjecttag Fetch all tags across objects #
POST /api/search/v1/i/fetchobjecttag Fetch tags for an object #
POST /api/search/v1/i/getobjectdetail Retrieve detailed object info #
POST /api/search/v1/i/getrecordinginfoV2 Retrieve recording info array by task ID #
GET /api/search/v1/i/getwordssupportlang List caption supported languages #
POST /api/search/v1/i/globalnametag Search persons globally by name or ID tags #
POST /api/search/v1/i/marksrt Generate a marked SRT subtitle file #
POST /api/search/v1/i/object Search objects with tag filters #
POST /api/search/v1/i/objecttagsuggestion Get tag autocomplete suggestions for an object #
POST /api/search/v1/i/sctemarkerinfo Query SCTE-35 marker events by time range #
POST /api/search/v1/i/searchfileformatbypath Search file format info by path #
POST /api/search/v1/i/searchmediabyids Search media objects by ID list #
POST /api/search/v1/i/searchobjectidbymedia Find object IDs by media paths #
POST /api/search/v1/i/searchsummarization Search stored summarizations by time range #
POST /api/search/v1/i/summarization Get AI summarization for a media segment #
POST /api/search/v1/i/updateclick Record a user click on a search result #
GET /api/search/v1/i/version Get deployed service version #
GET /api/search/v1/i/words Retrieve caption transcript within a media time range #
POST /api/search/v2/agentsearch AI agent search #
POST /api/search/v2/ai/search ai search #
GET /api/search/v2/appearance/list Get appearance list #
GET /api/search/v2/appearance/relations Get appearance relations #
POST /api/search/v2/appearance/relationsv2 Get appearance relations v2 #
POST /api/search/v2/appearance/search Appearance search #
GET /api/search/v2/appearance/suggestion Get appearance name suggestions #
POST /api/search/v2/appearance/suggestionv2 Get appearance name suggestions v2 #
GET /api/search/v2/autocomplete Auto complete #
GET /api/search/v2/caption Get caption by source object #
POST /api/search/v2/caption/search Search captions by keyword #
GET /api/search/v2/content/click Get content click v2 #
GET /api/search/v2/event Search events by source object and time #
GET /api/search/v2/event/latest Get latest event for source objects #
GET /api/search/v2/event/recordings Get recordings for an event object #
POST /api/search/v2/getInterval Get recording intervals by path #
GET /api/search/v2/mediafile Get media files #
GET /api/search/v2/mediafilebyids Get media files by IDs #
GET /api/search/v2/namesuggestion Get name suggestions #
GET /api/search/v2/object Search user source objects #
GET /api/search/v2/person Search persons by source object #
GET /api/search/v2/person/info Search person face appearances #
GET /api/search/v2/person/track Search person track by source object #
GET /api/search/v2/recorderstatus Get TVU 264 status #
GET /api/search/v2/scenechagneinfo Get scene change info v2 #
POST /api/search/v2/search Cross-type media content search (v2) #
GET /api/search/v2/settings Get settings #
GET /api/search/v2/suggestion Get search suggestions #
GET /api/search/v2/supportlang Get supported languages #
GET /api/search/v2/usermediafile Get recorded files #
GET /api/search/v2/words Search words #
POST /search/v2/media/addClipToPP add the mark file to PP #
GET /search/v2/media/currentSlugInfo current slug #
POST /search/v2/media/deleteSlug delete slug #
POST /search/v2/media/mark create clip object #
POST /search/v2/media/slug-info query slug #
GET /search/v2/media/slugInfoById retrieve slug #
POST /search/v2/media/updateslug slug with ingest setting #

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 email required.

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.0.1
info:
  title: TVU Networks — Search API
  description: Search API 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
- url: https://search.tvunetworks.com
  description: Apifox server "TVUSearch"
paths:
  /api/import:
    get:
      summary: import test
      deprecated: false
      description: ''
      tags:
      - Search API/search
      parameters:
      - name: SID
        in: header
        description: ''
        example: 92575d36dcb631ac94745e6b157de17a5a13d65b31e44869f06854ab928dd80235d4daae8696b4a92a7be5f802c45a219648701fc9ca59f44e9c0f022d5d38a7
        schema:
          type: string
          default: 92575d36dcb631ac94745e6b157de17a5a13d65b31e44869f06854ab928dd80235d4daae8696b4a92a7be5f802c45a219648701fc9ca59f44e9c0f022d5d38a7
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties: {}
                x-apifox-orders: []
          headers: {}
          x-apifox-name: OK
      security: []
      x-apifox-folder: Search API/search
      x-apifox-status: released
      x-run-in-apifox: https://app.apifox.com/web/project/4126232/apis/api-346167500-run
      operationId: import_test_346167500
      x-source-doc: https://docs.tvunetworks.cn/api-346167500.md
  /api/metadataproto/MetadataUploader.RegisterWebhook:
    post:
      summary: register webhook
      deprecated: false
      description: "register webhook\n\nwebhook  request body\n\n```\n{\n    \"status\": \"start / stop\"\
        ,\n    \"sourceObjectId\": \"1339231919795212288\",\n    \"mediaObjectId\": \"1374752064554536960\"\
        ,\n    \"previewMediaPath\": {\n        \"path\": \"http://pp-va-001.s3.us-east-1.amazonaws.com/PP/RECORDINGS/1/play.m3u8\"\
        ,\n        \"duration\": 69948450,\n        \"fileSize\": 33148124844,\n        \"startTimestamp\"\
        : 1747808030709,\n        \"endTimestamp\": 1747877979159\n    },\n    \"highResMediaPath\": {\n\
        \        \"path\": \"http://pp-va-001.s3.us-east-1.amazonaws.com/PP/RECORDINGS/1/play.m3u8\",\n\
        \        \"duration\": 69948450,\n        \"fileSize\": 33148124844,\n        \"startTimestamp\"\
        : 1747808030709,\n        \"endTimestamp\": 1747877979159\n    },\n    \"thumbnailPath\": \"http://pp-va-001.s3.us-east-1.amazonaws.com/PP/RECORDINGS/1/rec.jpg\"\
        ,\n    \"mediaFileType\": 1\n}\n\n```"
      tags:
      - Search API/public
      parameters:
      - name: SID
        in: header
        description: ''
        example: 92575d36dcb631ac94745e6b157de17a5a13d65b31e44869f06854ab928dd80235d4daae8696b4a92a7be5f802c45a219648701fc9ca59f44e9c0f022d5d38a7
        schema:
          type: string
          default: 92575d36dcb631ac94745e6b157de17a5a13d65b31e44869f06854ab928dd80235d4daae8696b4a92a7be5f802c45a219648701fc9ca59f44e9c0f022d5d38a7
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                webhookURL:
                  type: string
                  description: url
                operation:
                  type: string
                  description: register / unregister
                sourceObject:
                  type: array
                  items:
                    type: string
                  description: The list of sourceObjects to be considered (if an empty list is passed,
                    then all sourceObjects are considered).
              x-apifox-refs: {}
              x-apifox-orders:
              - webhookURL
              - operation
              - sourceObject
              required:
              - webhookURL
              - operation
              - sourceObject
            example:
              webhookURL: https://vivid-hamburger.com/
              operation: register
              sourceObject:
              - '1377420057780555776'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                    description: '0x0'
                  errorInfo:
                    type: string
                    description: no errror
                x-apifox-refs: {}
                x-apifox-orders:
                - errorCode
                - errorInfo
                required:
                - errorInfo
                - errorCode
              example:
                errorCode: '0x0'
                errorInfo: no errror
          headers: {}
          x-apifox-name: OK
      security: []
      x-apifox-folder: Search API/public
      x-apifox-status: released
      x-run-in-apifox: https://app.apifox.com/web/project/4126232/apis/api-414798733-run
      operationId: register_webhook_414798733
      x-source-doc: https://docs.tvunetworks.cn/api-414798733.md
  /api/resource/v2/cut-json:
    post:
      summary: cut-json
      deprecated: false
      description: 'Cut JSON: Only modify the offset field values in the root JSON, including chunk_begin_timestamp,
        chunk_end_timestamp, begin_offset, and end_offset; the HLS source remains unchanged.'
      tags:
      - Search API/extract
      parameters:
      - name: tagvalue
        in: header
        description: ''
        required: false
        example: '{{tagvalue}}'
        schema:
          type: string
          default: '{{tagvalue}}'
      - name: SID
        in: header
        description: ''
        required: false
        example: '{{SID}}'
        schema:
          type: string
          default: '{{SID}}'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                jsonUrl:
                  type: string
                  description: json url
                markIn:
                  type: integer
                  description: The offset of the cut start point relative to the origin.
                markOut:
                  type: integer
                  description: The offset of the cut endpoint relative to the starting point
                fileName:
                  type: string
                  description: file name
                uploadPath:
                  type: string
                  description: The upload location for the trimmed JSON file; if not specified, it defaults
                    to the same directory as the original JSON.
                pathId:
                  type: string
                  description: 'Translation: The driveId required for synchronizing the driver.'
                bucket:
                  type: string
                  description: s3 bucket
                region:
                  type: string
                  description: s3 region
                serviceCaller:
                  type: string
                  description: 'Caller identifier, for example: searchd'
              required:
              - jsonUrl
              - region
              - bucket
              - markOut
              - markIn
              - fileName
              x-apifox-orders:
              - jsonUrl
              - markIn
              - markOut
              - fileName
              - uploadPath
              - pathId
              - bucket
              - region
              - serviceCaller
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonUrl:
                    type: string
                    description: The json url after trimming
                  errorCode:
                    type: integer
                    description: error code
                  errorMessage:
                    type: string
                    description: error message
                required:
                - jsonUrl
                - errorMessage
                - errorCode
                x-apifox-orders:
                - jsonUrl
                - errorCode
                - errorMessage
          headers: {}
          x-apifox-name: OK
      security:
      - bearer: []
        x-apifox:
          schemeGroups:
          - id: pCKNfYFw3FWFznJsmvIqj
            schemeIds:
            - bearer
          required: true
          use:
            id: pCKNfYFw3FWFznJsmvIqj
          scopes:
            pCKNfYFw3FWFznJsmvIqj:
              bearer: []
      x-apifox-folder: Search API/extract
      x-apifox-status: released
      x-run-in-apifox: https://app.apifox.com/web/project/4126232/apis/api-236527411-run
      operationId: cut_json_236527411
      x-source-doc: https://docs.tvunetworks.cn/api-236527411.md
  /api/resource/v2/export:
    post:
      summary: export
      deprecated: false
      description: ''
      tags:
      - Search API/extract
      - public
      parameters:
      - name: tagvalue
        in: header
        description: ''
        required: false
        example: '{{tagvalue}}'
        schema:
          type: string
          default: '{{tagvalue}}'
      - name: SID
        in: header
        description: ''
        required: false
        example: '{{SID}}'
        schema:
          type: string
          default: '{{SID}}'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                highResolutionMediaFilePath:
                  type: string
                  description: the corresponding hls http link
                  examples:
                  - https://mma-s3-qa.s3.ap-east-1.amazonaws.com/ts/3CB5559B28436AFA/F417ED28275DAE820000000000000001/240521-08-50-39-224/1/play.m3u8
                startTime:
                  type: integer
                  description: start time of the clipping interval
                  format: int64
                  examples:
                  - 1716281448865
                duration:
                  type: integer
                  description: duration of the clipping interval
                  format: int64
                  examples:
                  - 716000
                userAccount:
                  type: string
                  description: user account(email or userid)
                  examples:
                  - calebpan@tvunetworks.com
                withMetadataJson:
                  type: boolean
                  description: whether or not to generate metadata json
                  default: false
                sourceObjectId:
                  type: string
                  description: sourceObjectId used to generate metadata json
                fileName:
                  type: string
                  description: cut video file naming
                  examples:
                  - public_export_test
                fileType:
                  type: string
                  description: video file type, e.g. ts/mov/mp4/json
                  default: ts
                  examples:
                  - mov
                audioVolume:
                  type: string
                  description: 'set audio volume, eg: 2.0, 0.5'
                isFrameLevel:
                  type: boolean
                  description: whether or not the export is frame-accurate
                  default: false
                isCover:
                  type: boolean
                  description: Whether to overwrite existing files with the same name in history
                isDryrun:
                  type: boolean
                  description: 'all logic runs except for extracting files '
                  default: true
                isMRSS:
                  type: boolean
                  description: 'set to true to return video and thumbnail information. '
                audioAdjustment:
                  type: string
                audioPadding:
                  type: object
                  properties:
                    headLen:
                      type: number
                      description: max 5000 (ms)
                    tailLen:
                      type: number
                      description: max 5000 (ms)
                    unit:
                      type: string
                      description: ms/frame
                  description: The Audio Padding feature allows users to configure a muted audio duration
                    before and/or after a clip. Users can specify the padding in seconds or video frames,
                    and the system automatically converts between the two based on the clip's frame rate.
                  x-apifox-orders:
                  - headLen
                  - tailLen
                  - unit
                  x-apifox-ignore-properties: []
                videoPadding:
                  type: object
                  properties:
                    mode:
                      type: integer
                      description: 0(默认) -> hard black  1-> fade black
                    headLen:
                      type: integer
                    tailLen:
                      type: integer
                    unit:
                      type: string
                      description: ms/frame
                  x-apifox-orders:
                  - mode
                  - headLen
                  - tailLen
                  - unit
                  x-apifox-ignore-properties: []
                destination:
                  $ref: '#/components/schemas/PublicDestination'
                  description: upload location information
              required:
              - highResolutionMediaFilePath
              - startTime
              - duration
              - userAccount
              x-apifox-orders:
              - highResolutionMediaFilePath
              - startTime
              - duration
              - userAccount
              - withMetadataJson
              - sourceObjectId
              - fileName
              - fileType
              - audioVolume
              - isFrameLevel
              - isCover
              - isDryrun
              - isMRSS
              - audioAdjustment
              - audioPadding
              - videoPadding
              - destination
              x-apifox-ignore-properties: []
            example:
              highResolutionMediaFilePath: https://tvu-tbs-project.s3.ap-northeast-1.amazonaws.com/ts/FFFFFFF0000E5612/143FEF1EF65B38970000000000000002/240527-05-11-16-159/181/play.m3u8
              startTime: 1732035540427
              duration: 180000
              userAccount: calebpan@tvunetworks.com
              fileName: soffee-20241120
              fileType: ts
              isFrameLevel: false
              isDryrun: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: integer
                    description: error code
                  errorMsg:
                    type: string
                    description: error message
                  isDryrun:
                    type: boolean
                    description: 'All logic runs except for extracting files '
                  timeWait:
                    type: integer
                    description: (ms) This non-blocking API returns this value that helps decide when
                      to retry the operation.  if it’s 0 ,  videoPath is the real file path.
                  videoPath:
                    type: string
                    description: Full path and pre-signed for 1 hours (if the video file not be public-read)
                  baseVideoPath:
                    type: string
                    description: No signature export video link
                  metadataJsonPath:
                    type: string
                    description: Full path or pre-signed for 1 hours (if ihe metadata json file not be
                      public-read)
                  baseMetadataJsonPath:
                    type: string
                    description: No signature export metadata json link
                  thumbnailInfo:
                    type: object
                    properties:
                      url:
                        type: string
                      width:
                        type: string
                      height:
                        type: string
                    x-apifox-orders:
                    - url
                    - width
                    - height
                    x-apifox-ignore-properties: []
                  videoInfo:
                    type: object
                    properties:
                      url:
                        type: string
                      type:
                        type: string
                      bitrate:
                        type: string
                      width:
                        type: string
                      height:
                        type: string
                      framerate:
                        type: string
                      duration:
                        type: string
                    x-apifox-orders:
                    - url
                    - type
                    - bitrate
                    - width
                    - height
                    - framerate
                    - duration
                    x-apifox-ignore-properties: []
                  videoDuration:
                    type: integer
                    description: video file length
                    format: int64
                  fileSize:
                    type: integer
                    description: video file size
                    format: int64
                required:
                - errorCode
                - errorMsg
                - isDryrun
                - timeWait
                - videoPath
                - baseVideoPath
                - metadataJsonPath
                - baseMetadataJsonPath
                - videoDuration
                - fileSize
                x-apifox-orders:
                - errorCode
                - errorMsg
                - isDryrun
                - timeWait
                - videoPath
                - baseVideoPath
                - metadataJsonPath
                - baseMetadataJsonPath
                - thumbnailInfo
                - videoInfo
                - videoDuration
                - fileSize
                x-apifox-ignore-properties: []
          headers: {}
          x-apifox-name: OK
      security:
      - bearer: []
        x-apifox:
          schemeGroups:
          - id: KXaVv6qS2vTxEg6zy9eVx
            schemeIds:
            - bearer
          required: true
          use:
            id: KXaVv6qS2vTxEg6zy9eVx
          scopes:
            KXaVv6qS2vTxEg6zy9eVx:
              bearer: []
      x-apifox-folder: Search API/extract
      x-apifox-status: released
      x-run-in-apifox: https://app.apifox.com/web/project/4126232/apis/api-236527410-run
      operationId: export_236527410
      x-source-doc: https://docs.tvunetworks.cn/api-236527410.md
  /api/resource/v2/exportaudio:
    post:
      summary: exportaudio
      deprecated: false
      description: export audio
      tags:
      - Search API/extract
      - public
      parameters:
      - name: tagvalue
        in: header
        description: ''
        required: false
        example: '{{tagvalue}}'
        schema:
          type: string
          default: '{{tagvalue}}'
      - name: SID
        in: header
        description: ''
        required: false
        example: '{{SID}}'
        schema:
          type: string
          default: '{{SID}}'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                startTime:
                  type: integer
                  description: audio start time(timestamp, ms)
                duration:
                  type: integer
                  description: audio duration(ms)
                sourceObjectId:
                  type: string
                  description: sourceObjectId
                fileName:
                  type: string
                  description: 'file name with suffix (eg: a.flac)'
                sampleRate:
                  type: integer
                  description: sample rate
                fileStartTimecode:
                  type: integer
                  description: audio file start time code
                fileEndTimecode:
                  type: integer
                  description: audio file end time code
                reTranscribe:
                  $ref: '#/components/schemas/ReTranscribe'
                  description: parameter information required for re-transcribe
              required:
              - startTime
              - duration
              - sourceObjectId
              - fileName
              x-apifox-orders:
              - startTime
              - duration
              - sourceObjectId
              - fileName
              - sampleRate
              - fileStartTimecode
              - fileEndTimecode
              - reTranscribe
              x-apifox-ignore-properties: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: integer
                    description: error code
                  errorMessage:
                    type: string
                    description: error message
                  status:
                    type: integer
                    description: status code
                  timeWait:
                    type: integer
                    description: next request waiting time
                  audioPath:
                    type: string
                    description: audio http link
                required:
                - errorCode
                - errorMessage
                - status
                - timeWait
                - audioPath
                x-apifox-orders:
                - errorCode
                - errorMessage
                - status
                - timeWait
                - audioPath
                x-apifox-ignore-properties: []
          headers: {}
          x-apifox-name: OK
      security:
      - bearer: []
        x-apifox:
          schemeGroups:
          - id: tYQoaYSNmaHnpb0GTwy14
            schemeIds:
            - bearer
          required: true
          use:
            id: tYQoaYSNmaHnpb0GTwy14
          scopes:
            tYQoaYSNmaHnpb0GTwy14:
              bearer: []
      x-apifox-folder: Search API/extract
      x-apifox-status: released
      x-run-in-apifox: https://app.apifox.com/web/project/4126232/apis/api-236527414-run
      operationId: exportaudio_236527414
      x-source-doc: https://docs.tvunetworks.cn/api-236527414.md
  /api/resource/v2/longexport:
    post:
      summary: longexport
      deprecated: false
      description: ''
      tags:
      - Search API/extract
      - public
      parameters:
      - name: tagvalue
        in: header
        description: ''
        required: false
        example: '{{tagvalue}}'
        schema:
          type: string
          default: '{{tagvalue}}'
      - name: SID
        in: header
        description: ''
        required: false
        example: '{{SID}}'
        schema:
          type: string
          default: '{{SID}}'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                userAccount:
                  type: string
                  description: user account(email or userid)
                  examples:
                  - calebpan@tvunetworks.com
                filePath:
                  type: string
                  description: the corresponding hls http link
                  examples:
                  - https://mma-s3-qa.s3.ap-east-1.amazonaws.com/ts/3CB5559B28436AFA/F417ED28275DAE820000000000000001/240521-08-50-39-224/1/play.m3u8
                startTime:
                  type: integer
                  description: in millisecond. start time of the filePath
                  format: int64
                  examples:
                  - 1716281448865
                duration:
                  type: integer
                  description: in millisecond. duration of the filePath
                  format: int64
                  examples:
                  - 716000
                maxChunkDuration:
                  type: integer
                  description: in millisecond.  The maxinum value is 14400000 (4 hours)
                fileName:
                  type: string
                  description: cut video file namie prefix
                  examples:
                  - public_export_test
                fileType:
                  type: string
                  description: video file type, TS by default
                  examples:
                  - mov
                destination:
                  $ref: '#/components/schemas/PublicDestination'
                  description: upload location information
              required:
              - userAccount
              - filePath
              - startTime
              - duration
              - maxChunkDuration
              - fileName
              x-apifox-orders:
              - userAccount
              - filePath
              - startTime
              - duration
              - maxChunkDuration
              - fileName
              - fileType
              - destination
              x-apifox-ignore-properties: []
            example:
              userAccount: calebpan@tvunetworks.com
              filePath: https://mma-video-new.S3.us-east-1.amazonaws.com/ts/FFFFFFF0000EE351/74863CBB4E14B04E/240821-02-36-42-576/1/play.m3u8
              startTime: 1721764355777
              duration: 2708371
              maxChunkDuration: 7200000
              fileName: 072424-Netanyahu-Congress-AP2_3F74874773235994
              fileType: ts
              destination:
                cloudVendor: s3
                bucket: mimir-video
                region: us-east-1
                folder: TVU_Search
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: integer
                    description: error code
                  errorMsg:
                    type: string
                    description: error message
                  timeWait:
                    type: integer
                    description: (ms) This non-blocking API returns this value that helps decide when
                      to retry the operation.  if it’s 0 ,  videoPath is the real file path.
                  videoList:
                    type: array
                    items:
                      $ref: '#/components/schemas/VideoInfo'
                    description: clip list
                    nullable: true
                required:
                - errorCode
                - errorMsg
                - timeWait
                - videoList
                x-apifox-orders:
                - errorCode
                - errorMsg
                - timeWait
                - videoList
                x-apifox-ignore-properties: []
          headers: {}
          x-apifox-name: OK
      security:
      - bearer: []
        x-apifox:
          schemeGroups:
          - id: iK0YzFupKl5MDzstiA6CZ
            schemeIds:
            - bearer
          required: true
          use:
            id: iK0YzFupKl5MDzstiA6CZ
          scopes:
            iK0YzFupKl5MDzstiA6CZ:
              bearer: []
      x-apifox-folder: Search API/extract
      x-apifox-status: released
      x-run-in-apifox: https://app.apifox.com/web/project/4126232/apis/api-236527412-run
      operationId: longexport_236527412
      x-source-doc: https://docs.tvunetworks.cn/api-236527412.md
  /api/resource/v2/thumbnail:
    get:
      summary: thumbnail
      deprecated: false
      description: get thumbnail api
      tags:
      - Search API/extract
      - public
      parameters:
      - name: LivePath
        in: query
        description: hls http link
        required: false
        example: https://pp-va-001.s3.amazonaws.com/MH/RECORDINGS/1253344220354326528/e733264437ce4575954abc7841fd0e85/1/play.m3u8
        schema:
          type: string
      - name: VodUrl
        in: query
        description: vod url (mutually exclusive with the above LivePath)
        required: false
        schema:
          type: string
      - name: Offset
        in: query
        description: ms
        required: true
        schema:
          type: integer
      - name: tagvalue
        in: header
        description: ''
        required: false
        example: '{{tagvalue}}'
        schema:
          type: string
          default: '{{tagvalue}}'
      - name: SID
        in: header
        description: ''
        required: false
        example: '{{SID}}'
        schema:
          type: string
          default: '{{SID}}'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  ErrorCode:
                    type: number
                    description: error code
                    default: 1000
                  ErrorMessage:
                    type: string
                    description: error message
                    default: success
                  ImagePath:
                    type: string
                    description: Path for thumbnail upload to imgbed
                required:
                - ErrorCode
                - ErrorMessage
                - ImagePath
                x-apifox-orders:
                - ErrorCode
                - ErrorMessage
                - ImagePath
          headers: {}
          x-apifox-name: OK
      security:
      - bearer: []
        x-apifox:
          schemeGroups:
          - id: -5abKnyHTjWvhoZ9_ql7G
            schemeIds:
            - bearer
          required: true
          use:
            id: -5abKnyHTjWvhoZ9_ql7G
          scopes:
            -5abKnyHTjWvhoZ9_ql7G:
              bearer: []
      x-apifox-folder: Search API/extract
      x-apifox-status: released
      x-run-in-apifox: https://app.apifox.com/web/project/4126232/apis/api-236527413-run
      operationId: thumbnail_236527413
      x-source-doc: https://docs.tvunetworks.cn/api-236527413.md
  /api/search/v1/i/activity:
    post:
      summary: Send session heartbeat to track user activity
      deprecated: false
      description: Sends a heartbeat to update the user's last-active timestamp, keeping the session alive
        and enabling real-time active-user tracking. Call this periodically (recommended every 30–60 seconds)
        while the user is viewing the application. The optional 'page' parameter records which page the
        user is currently on for per-page analytics.
      tags:
      - Search API/search/session
      - session
      parameters:
      - name: SID
        in: header
        description: ''
        example: 92575d36dcb631ac94745e6b157de17a5a13d65b31e44869f06854ab928dd80235d4daae8696b4a92a7be5f802c45a219648701fc9ca59f44e9c0f022d5d38a7
        schema:
          type: string
          default: 92575d36dcb631ac94745e6b157de17a5a13d65b31e44869f06854ab928dd80235d4daae8696b4a92a7be5f802c45a219648701fc9ca59f44e9c0f022d5d38a7
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/controllers.UpdateActivityReq'
            example:
              userid: jornalismo@recordtvrio.com.br
              sessionid: 752AB32D93A241278

# --- truncated at 32 KB (330 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tvu-networks/refs/heads/main/openapi/tvu-networks-search-api-openapi.yml