> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mottostreaming.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get video

> GetVideo

 Returns information about the video.



## OpenAPI

````yaml get /streaming/videos/v1/{video_id}
openapi: 3.0.3
info:
  title: Studio API - Motto
  version: 0.0.0
servers:
  - url: https://api.mottostreaming.com
    description: Production server
security:
  - BearerAuth: []
tags:
  - name: AccountService
    description: Account management service
  - name: ActionConfigurationService
    description: Action configuration service definition
  - name: ActionSecretService
    description: Action type service definition
  - name: ActionService
    description: Action service definition
  - name: ActionTypeService
    description: Action type service definition
  - name: ActivityService
    description: Activity service definition
  - name: AdService
    description: Ad management service.
  - name: AnnotationService
    description: Annotation service definition
  - name: AnnotationSetService
    description: Annotation service definition
  - name: AnnotationTypeService
    description: Annotation service definition
  - name: AssetService
    description: Asset management service.
  - name: AuthService
    description: Auth service definition
  - name: BannerService
    description: Banner service definition
  - name: BannerV2Service_v2
    description: Banner service definition
  - name: CleengService
    description: CleengService service definition
  - name: ClipService
    description: ClipService is the service that handles Clip operations.
  - name: ConfigurationService
    description: >-
      Configuration management service. These configurations allow modifying the
      behavior of streams, uploads, simulcasts, etc.
  - name: ContentTypeService
    description: ContentType service definition
  - name: CreativeWorkService
    description: CreativeWork service definition
  - name: EntitlementService
    description: Entitlement service definition
  - name: EntityService
    description: Entity service definition
  - name: EventService
    description: Event service definition
  - name: FileService
    description: OTT files management.
  - name: IngestService
    description: Ingest management service.
  - name: IngestService_v2
    description: Ingest management service.
  - name: LiveStreamService
    description: LiveStream management service.
  - name: LiveStreamService_v2
    description: LiveStream management service.
  - name: OfferService
    description: Offer service definition
  - name: OrganizationService
    description: Organization management service.
  - name: PageService
    description: Page service definition
  - name: PlatformService
    description: Platform service definition
  - name: PlaylistService
    description: Playlist management service.
  - name: ProjectService
    description: Project management service.
  - name: SimulcastService
    description: Simulcast management service.
  - name: SlugService
    description: Slug service definition
  - name: SpiideoService
    description: SpiideoService service definition
  - name: StandingService
    description: Standing service definition
  - name: StitcherService
    description: StitcherService is the service that handles stitching operations.
  - name: StripeService
    description: StripeService service definition
  - name: SubscriptionService
    description: Subscription service definition
  - name: SubtitleService
    description: SubtitleService is the service that handles Subtitle operations.
  - name: TransactionService
    description: Transaction service definition
  - name: UploadService
    description: Upload management service.
  - name: UsageService
    description: The UsageService provides methods to retrieve usage data for SKUs.
  - name: UserService
    description: User management service
  - name: VODService
    description: VODService is the service that handles VOD operations.
  - name: VODService_v2
    description: VODService is the service that handles VOD operations.
  - name: VideoProtectionService
    description: VideoProtection management service.
  - name: VideoProtectionService_v2
    description: VideoProtection management service.
  - name: VideoService
    description: Video management service.
paths:
  /streaming/videos/v1/{video_id}:
    get:
      tags:
        - VideoService
      description: |-
        GetVideo

         Returns information about the video.
      operationId: VideoService_GetVideo
      parameters:
        - name: video_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/motto.streaming.video.v1.GetVideoResponse'
        default:
          description: Default error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/google.rpc.Status'
components:
  schemas:
    motto.streaming.video.v1.GetVideoResponse:
      type: object
      properties:
        video:
          $ref: '#/components/schemas/motto.streaming.video.v1.Video'
    google.rpc.Status:
      type: object
      properties:
        code:
          type: integer
          description: >-
            The status code, which should be an enum value of
            [google.rpc.Code][google.rpc.Code].
          format: int32
        message:
          type: string
          description: >-
            A developer-facing error message, which should be in English. Any
            user-facing error message should be localized and sent in the
            [google.rpc.Status.details][google.rpc.Status.details] field, or
            localized by the client.
        details:
          type: array
          items:
            $ref: '#/components/schemas/google.protobuf.Any'
          description: >-
            A list of messages that carry the error details.  There is a common
            set of message types for APIs to use.
      description: >-
        The `Status` type defines a logical error model that is suitable for
        different programming environments, including REST APIs and RPC APIs. It
        is used by [gRPC](https://github.com/grpc). Each `Status` message
        contains three pieces of data: error code, error message, and error
        details. You can find out more about this error model and how to work
        with it in the [API Design
        Guide](https://cloud.google.com/apis/design/errors).
    motto.streaming.video.v1.Video:
      type: object
      properties:
        id:
          readOnly: true
          type: string
        name:
          type: string
          description: >-
            The name of the video. This is a canonical name that is independent
            of locales, and is primarily meant for internal
             purposes (e.g. a name for tracking in analytics). For end-user facing purposes, use `localized_title`.
        localized_title:
          type: object
          additionalProperties:
            type: string
          description: >-
            A map of localized titles for this video, for end users to see. The
            key is the language code (ISO 639 - set 1), e.g. "en", "de", "fr",
            etc.
             If you want to localize the text for different regions of the same language, you can add the country code (ISO 3166-1 alpha-2), e.g. "en-US", "en-GB", etc.

             If this is not provided, fallback to `name`.
        project_id:
          readOnly: true
          type: string
        playlists:
          type: array
          items:
            $ref: '#/components/schemas/motto.streaming.playlist.v1.Playlist'
    google.protobuf.Any:
      type: object
      properties:
        '@type':
          type: string
          description: The type of the serialized message.
      additionalProperties: true
      description: >-
        Contains an arbitrary serialized message along with a @type that
        describes the type of the serialized message.
    motto.streaming.playlist.v1.Playlist:
      type: object
      properties:
        id:
          readOnly: true
          type: string
          description: |-
            The ID of the playlist.
             For example: "p2YzNCA-0PTigkfN8xN3L"
        name:
          type: string
          description: |-
            The name of the playlist.
             For example: "Raw" or "playlist 1"
        format:
          readOnly: true
          enum:
            - PLAYLIST_FORMAT_UNSPECIFIED
            - PLAYLIST_FORMAT_HLS
          type: string
          format: enum
        private_url:
          readOnly: true
          type: string
        public_url:
          readOnly: true
          type: string
        dvr_settings:
          $ref: '#/components/schemas/motto.streaming.playlist.v1.DVRSettings'
        visibility:
          enum:
            - VISIBILITY_UNSPECIFIED
            - VISIBILITY_PUBLISHED
            - VISIBILITY_UNLISTED
            - VISIBILITY_HIDDEN
          type: string
          description: |-
            The visibility of the playlist. This affects the entire playlist.
             Individual segments can still be made invisible using VisibilityMarkers.
          format: enum
        org_id:
          readOnly: true
          type: string
        project_id:
          readOnly: true
          type: string
        video_id:
          readOnly: true
          type: string
        visibility_markers:
          type: array
          items:
            $ref: '#/components/schemas/motto.streaming.playlist.v1.VisibilityMarker'
          description: >-
            Optional. A list of visibility markers that define which parts of
            the playlist are visible to end users.
             If no markers are defined, all segments are considered visible (as long as the overall playlist visibility allows it).
             Example:
             Assume your playlist has a total duration of 600 seconds, and you define the following markers:
               1. Start Publish, offset 120
               2. End Publish, offset 480
             This would mean that segments from 0 to 120 seconds are not visible, segments from 120 to 480 seconds are visible,
             and segments from 480 to 600 seconds are not visible.

             Note: The offset is relative to the start of the playlist, not the absolute time.
             Note 2: Offsets that do not align with segment boundaries will be floored to the last segment end time. In the above example,
             if segments are 6 seconds long, and you set a Start Publish marker at offset 123, it will be treated as offset 120.
    motto.streaming.playlist.v1.DVRSettings:
      type: object
      properties:
        window_size_seconds:
          type: integer
          format: int32
    motto.streaming.playlist.v1.VisibilityMarker:
      type: object
      properties:
        type:
          enum:
            - VISIBILITY_MARKER_TYPE_UNSPECIFIED
            - VISIBILITY_MARKER_TYPE_START_PUBLISH
            - VISIBILITY_MARKER_TYPE_END_PUBLISH
          type: string
          format: enum
        offset:
          type: string
          description: |-
            The number of seconds into the playlist at which this marker occurs.
             Important: this is relative to the private playlist, meaning the offset is counted from the first available segment,
             not the first visible segment as seen by the end user.
        priority:
          type: string
          description: >-
            Optional. The priority of this marker. Markers with higher priority
            invalidate ALL markers with a lower priority.
             For example, assume you have a stream of 300 seconds, and you apply these markers:
               1. Start Publish, offset 120, priority 1
               2. Start Publish, offset 180, priority 2
               3. End Publish, offset 240, priority 1
             This would mean all segments before offset 180 are not visible, but all segments from 180 to 300 are visible.
             The End Publish marker at offset 240 is ignored because its priority (1) is lower than the Start Publish marker at
             offset 180 (2).

             Use priorities to implement an initial live experience where everything is visible from the first moment of publishing,
             and then a VOD experience where more is trimmed by higher priority markers. This could improve the user experience,
             for example as it would prevent having to seek to the kickoff point manually in VOD.
      description: >-
        A point in time that indicates whether the following segments should be
        visible or not.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````