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