openapi: 3.0.3 info: title: Teachable Admin Courses Videos API description: 'REST API for managing Teachable school data including courses, users, enrollments, quiz responses, pricing plans, transactions, and webhooks. Authenticated via API key header and available on Growth plan and above. ' version: '1' contact: name: Teachable Support url: https://support.teachable.com email: support@teachable.com termsOfService: https://teachable.com/terms-of-use servers: - url: https://developers.teachable.com/v1 description: Teachable Admin API security: - ApiKeyAuth: [] tags: - name: Videos description: Video access endpoints for current user paths: /current_user/courses/{course_id}/lectures/{lecture_id}/videos/{video_id}: get: operationId: getCurrentUserVideo summary: Get a video for current user description: Return a specific video attachment within a lecture for the current authenticated user. tags: - Videos security: - OAuth2: - courses:read - AccessToken: [] parameters: - name: course_id in: path required: true description: Unique course ID that contains the lecture. schema: type: integer format: int32 minimum: 1 - name: lecture_id in: path required: true description: Unique lecture ID. schema: type: integer format: int32 minimum: 1 - name: video_id in: path required: true description: Unique attachment ID for the video. schema: type: integer format: int32 minimum: 1 responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/VideoResponse' '401': description: Unauthorized - invalid or expired access token content: application/json: schema: $ref: '#/components/schemas/OAuthErrorResponse' '403': description: Forbidden - not authorized to access this endpoint content: application/json: schema: $ref: '#/components/schemas/OAuthErrorResponse' '404': description: Video not found content: application/json: schema: $ref: '#/components/schemas/OAuthErrorResponse' components: schemas: VideoResponse: type: object properties: video: $ref: '#/components/schemas/VideoDetail' VideoDetail: type: object properties: id: type: integer format: int32 video_asset: type: array items: $ref: '#/components/schemas/VideoAsset' status: type: string enum: - READY - PROCESSING - PARTIALLY_READY - QUEUED - THUMBNAIL_READY - FAILED url_thumbnail: type: string description: Poster/thumbnail image URL. media_type: type: string description: Always 'VIDEO'. media_duration: type: integer description: Video duration in seconds. OAuthErrorResponse: type: object properties: error: type: string description: Error code (e.g., invalid_token, access_forbidden, resource_not_found, unmet_requirements). error_description: type: string description: Human-readable error description. VideoAsset: type: object properties: url: type: string description: M3U8 playlist file URL. content_type: type: string securitySchemes: ApiKeyAuth: type: apiKey in: header name: apiKey description: API key for Admin API authentication. Available on Growth plan and above.