Camtasia Media API

Manage media items on project tracks

OpenAPI Specification

camtasia-media-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Camtasia Asset Library Assets Media API
  description: API for accessing and managing media assets, templates, and libraries within TechSmith Camtasia. Provides programmatic access to browse, search, download, and manage video assets, audio tracks, images, templates, themes, and other media resources used in Camtasia projects.
  version: '1.0'
  contact:
    name: TechSmith Support
    url: https://support.techsmith.com
    email: support@techsmith.com
  termsOfService: https://www.techsmith.com/terms.html
servers:
- url: https://api.techsmith.com/camtasia/v1
  description: TechSmith Camtasia API Production
security:
- bearerAuth: []
tags:
- name: Media
  description: Manage media items on project tracks
paths:
  /projects/{projectId}/tracks/{trackId}/media:
    get:
      operationId: listTrackMedia
      summary: Camtasia List media on a track
      description: Retrieve all media items placed on a specific timeline track.
      tags:
      - Media
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/trackId'
      responses:
        '200':
          description: List of media items on the track
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrackMediaListResponse'
        '401':
          description: Unauthorized
        '404':
          description: Track not found
    post:
      operationId: addMediaToTrack
      summary: Camtasia Add media to a track
      description: Place a media item on the timeline track at a specific position.
      tags:
      - Media
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/trackId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddTrackMediaRequest'
      responses:
        '201':
          description: Media added to track
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrackMedia'
        '400':
          description: Invalid request
        '401':
          description: Unauthorized
        '404':
          description: Track not found
  /projects/{projectId}/tracks/{trackId}/media/{mediaId}:
    get:
      operationId: getTrackMedia
      summary: Camtasia Get a media item on a track
      description: Retrieve details of a specific media item on a timeline track.
      tags:
      - Media
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/trackId'
      - $ref: '#/components/parameters/mediaId'
      responses:
        '200':
          description: Track media details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrackMedia'
        '401':
          description: Unauthorized
        '404':
          description: Media item not found
    put:
      operationId: updateTrackMedia
      summary: Camtasia Update a media item on a track
      description: Update position, duration, or effects of a media item on the timeline.
      tags:
      - Media
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/trackId'
      - $ref: '#/components/parameters/mediaId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTrackMediaRequest'
      responses:
        '200':
          description: Track media updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrackMedia'
        '400':
          description: Invalid request
        '401':
          description: Unauthorized
        '404':
          description: Media item not found
    delete:
      operationId: removeTrackMedia
      summary: Camtasia Remove media from a track
      description: Remove a media item from the timeline track.
      tags:
      - Media
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/trackId'
      - $ref: '#/components/parameters/mediaId'
      responses:
        '204':
          description: Media removed from track
        '401':
          description: Unauthorized
        '404':
          description: Media item not found
components:
  schemas:
    UpdateTrackMediaRequest:
      type: object
      properties:
        startTime:
          type: number
          description: Updated start position in seconds
        duration:
          type: number
          description: Updated duration in seconds
        inPoint:
          type: number
          description: Updated in-point
        outPoint:
          type: number
          description: Updated out-point
        effects:
          type: array
          items:
            $ref: '#/components/schemas/Effect'
          description: Updated effects
        position:
          type: object
          properties:
            x:
              type: number
            y:
              type: number
        scale:
          type: number
          description: Updated scale factor
        rotation:
          type: number
          description: Updated rotation angle
    TrackMediaListResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/TrackMedia'
    TrackMedia:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the media placement
        assetId:
          type: string
          description: ID of the source asset
        recordingId:
          type: string
          description: ID of the source recording (if applicable)
        type:
          type: string
          enum:
          - video
          - audio
          - image
          - annotation
          - callout
          - cursor
          - transition
          description: Media type
        startTime:
          type: number
          description: Start position on the timeline in seconds
        duration:
          type: number
          description: Duration on the timeline in seconds
        inPoint:
          type: number
          description: In-point within the source media in seconds
        outPoint:
          type: number
          description: Out-point within the source media in seconds
        effects:
          type: array
          items:
            $ref: '#/components/schemas/Effect'
          description: Effects applied to this media item
        position:
          type: object
          properties:
            x:
              type: number
              description: Horizontal position on canvas
            y:
              type: number
              description: Vertical position on canvas
          description: Position on the canvas (for visual media)
        scale:
          type: number
          description: Scale factor (1.0 = original size)
        rotation:
          type: number
          description: Rotation angle in degrees
    Effect:
      type: object
      properties:
        type:
          type: string
          enum:
          - zoom
          - pan
          - fade_in
          - fade_out
          - highlight
          - blur
          - spotlight
          - color_adjustment
          - speed
          - green_screen
          description: Effect type
        startTime:
          type: number
          description: Effect start time relative to media item
        duration:
          type: number
          description: Effect duration in seconds
        parameters:
          type: object
          additionalProperties: true
          description: Effect-specific parameters
    AddTrackMediaRequest:
      type: object
      properties:
        assetId:
          type: string
          description: ID of the asset to add
        recordingId:
          type: string
          description: ID of the recording to add
        startTime:
          type: number
          description: Start position on the timeline in seconds
          default: 0
        duration:
          type: number
          description: Duration on the timeline (defaults to source duration)
        inPoint:
          type: number
          description: In-point within the source media
        outPoint:
          type: number
          description: Out-point within the source media
  parameters:
    trackId:
      name: trackId
      in: path
      required: true
      description: Unique identifier for the timeline track
      schema:
        type: string
    mediaId:
      name: mediaId
      in: path
      required: true
      description: Unique identifier for the media item on a track
      schema:
        type: string
    projectId:
      name: projectId
      in: path
      required: true
      description: Unique identifier for the project
      schema:
        type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: OAuth 2.0 bearer token from TechSmith account authentication
externalDocs:
  description: Camtasia Support Documentation
  url: https://support.techsmith.com/hc/en-us/categories/camtasia-api