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

# Get playlist videos

> Shows ordered array of playlist videos



## OpenAPI

````yaml /api-reference/services_documented/streaming_api.yaml get /streaming/playlists/{playlist_id}/videos
openapi: 3.1.0
info:
  title: Gcore OpenAPI – Streaming API
  description: >-
    This OpenAPI is an aggregated OpenAPI specification that unifies all Gcore
    products into a single file. It covers Cloud, CDN, DNS, WAAP, DDoS
    Protection, Object Storage, Streaming, and FastEdge services.
  version: '2026-05-14T07:00:22.640261+00:00'
servers:
  - url: https://api.gcore.com
security:
  - APIKey: []
tags:
  - name: AI
    x-displayName: AI
  - name: Broadcasts
    x-displayName: Broadcasts
  - name: Directories
    x-displayName: Directories
  - name: Overlays
    x-displayName: Overlays
  - name: Players
    x-displayName: Players
  - name: Playlists
    x-displayName: Playlists
  - name: QualitySets
    x-displayName: QualitySets
  - name: Restreams
    x-displayName: Restreams
  - name: Streaming Statistics
    x-displayName: Statistics
  - name: Streams
    x-displayName: Streams
  - name: Subtitles
    x-displayName: Subtitles
  - name: Videos
    x-displayName: Videos
paths:
  /streaming/playlists/{playlist_id}/videos:
    get:
      tags:
        - Playlists
      summary: Get playlist videos
      description: Shows ordered array of playlist videos
      operationId: get_playlists_id_videos
      parameters:
        - name: playlist_id
          in: path
          description: >-
            Playlist ID.   

            IDs of all created playlists can be received via Get All Playlists
            request
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/video'
      x-codeSamples:
        - lang: Python
          source: |-
            import os
            from gcore import Gcore

            client = Gcore(
                api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
            )
            playlist_videos = client.streaming.playlists.videos.list(
                0,
            )
            print(playlist_videos)
        - lang: Go
          source: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/G-Core/gcore-go\"\n\t\"github.com/G-Core/gcore-go/option\"\n)\n\nfunc main() {\n\tclient := gcore.NewClient(\n\t\toption.WithAPIKey(\"My API Key\"),\n\t)\n\tplaylistVideos, err := client.Streaming.Playlists.Videos.List(context.TODO(), 0)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", playlistVideos)\n}\n"
components:
  schemas:
    video:
      allOf:
        - $ref: '#/components/schemas/createVideo'
    createVideo:
      required:
        - name
      type: object
      properties:
        name:
          type: string
          description: Video name
        description:
          type: string
          description: Video details; not visible to the end-users
          default: null
        origin_url:
          type: string
          description: >-
            URL to an original file which you want to copy from external
            storage.

            If specified, system will download the file and will use it as video
            source for transcoding.
          default: null
        origin_http_headers:
          type: string
          description: >-
            Authorization HTTP request header. Will be used as credentials to
            authenticate a request to download a file (specified in "origin_url"
            parameter) on an external server.


            Syntax: ```Authorization: <auth-scheme>
            <authorization-parameters>```


            Examples:

            - "origin_http_headers": "Authorization: Basic ..."

            - "origin_http_headers": "Authorization: Bearer ..."

            - "origin_http_headers": "Authorization: APIKey ..."

            Example of usage when downloading a file from Google Drive:


            ```

            POST https://api.gcore.com/streaming/videos


            "video": {
              "name": "IBC 2024 intro.mp4",
              "origin_url": "https://www.googleapis.com/drive/v3/files/...?alt=media",
              "origin_http_headers": "Authorization: Bearer ABC"
            }            

            ```
          default: null
        priority:
          type: integer
          default: 0
          description: >-
            Priority allows you to adjust the urgency of processing some videos
            before others in your account, if your algorithm requires it. For
            example, when there are very urgent video and some regular ones that
            can wait in the queue.



            Value range, integer [-10..10]. -10 is the lowest down-priority, 10
            is the highest up-priority. Default priority is 0.
        quality_set_id:
          type: integer
          description: >-
            Custom quality set ID for transcoding, if transcoding is required
            according to your conditions. Look at GET /`quality_sets` method
          default: null
        clip_start_seconds:
          type: integer
          default: null
          description: >-
            If you want to transcode only a trimmed segment of a video instead
            of entire length if the video, then you can provide timecodes of
            starting point and duration of a segment to process. Start encoding
            from is a number in seconds.
        clip_duration_seconds:
          type: integer
          default: null
          description: >-
            The length of the trimmed segment to transcode, instead of the
            entire length of the video. Is only used in conjunction with
            specifying the start of a segment. Transcoding duration is a number
            in seconds.
        source_bitrate_limit:
          type: boolean
          default: true
          description: >-
            The option allows you to set the video transcoding rule so that the
            output bitrate in ABR ladder is not exceeding the bitrate of the
            original video.

              
            This option is for advanced users only.
              


            By default ```source_bitrate_limit: true``` this option allows you
            to have the output bitrate not more than in the original video, thus
            to transcode video faster and to deliver it to end-viewers faster as
            well. At the same time, the quality will be similar to the original.


            If for some reason you need more byte-space in the output quality
            when encoding, you can set this option to ```source_bitrate_limit:
            false```. Then, when transcoding, the quality ceiling will be raised
            from the bitrate of the original video to the maximum possible limit
            specified in our the Product Documentation.

            For example, this may be needed when:

            - to improve the visual quality parameters using PSNR, SSIM, VMAF
            metrics,

            - to improve the picture quality on dynamic scenes,

            - etc.


            The option is applied only at the video creation stage and cannot be
            changed later. If you want to re-transcode the video using new
            value, then you need to create and upload a new video only.
        directory_id:
          type: integer
          description: ID of the directory where the video should be uploaded. (beta)
        poster:
          type: string
          default: null
          description: >-
            Poster is your own static image which can be displayed before the
            video starts.


            After uploading the video, the system will automatically create
            several screenshots (they will be stored in "screenshots" attribute)
            from which you can select an default screenshot.

            This "poster" field is for uploading your own image. Also use
            attribute "screenshot_id" to select poster as a default screnshot.


            Attribute accepts single image as base64-encoded string [(RFC 2397 –
            The "data" URL scheme)](https://www.rfc-editor.org/rfc/rfc2397). In
            format: ```data:[<mediatype>];base64,<data>```


            MIME-types are image/jpeg, image/webp, and image/png and file sizes
            up to 1Mb.


            Examples:

            - ```data:image/jpeg;base64,/9j/4AA...qf/2Q==```

            - ```data:image/png;base64,iVBORw0KGg...ggg==```

            - ```data:image/webp;base64,UklGRt.../DgAAAAA```
        remote_poster_url:
          type: string
          default: null
          description: >-
            Poster URL to download from external resource, instead of uploading
            via "poster" attribute. 


            It has the same restrictions as "poster" attribute.
        remove_poster:
          type: boolean
          default: false
          description: Set it to true to remove poster
        screenshot_id:
          type: integer
          default: 0
          description: >-
            Default screenshot index. 


            Specify an ID from the "screenshots" array, so that the URL of the
            required screenshot appears in the "screenshot" attribute as the
            default screenshot. By default 5 static screenshots will be taken
            from different places in the video after transcoding. If the video
            is short, there may be fewer screenshots. 


            Counting from 0. A value of -1 sets the default screenshot to the
            URL of your own image from the "poster" attribute.


            Look at "screenshot" attribute in GET /videos/{`video_id`} for
            details.
        client_user_id:
          type: integer
          description: Custom field where you can specify user ID in your system
        auto_transcribe_audio_language:
          type: string
          description: >-
            Automatic creation of subtitles by transcribing the audio track.


            Values:

            - disable – Do not transcribe.

            - auto – Automatically detects the activation of the option based on
            the settings in your account. If generation is activated, then
            automatic language detection while transcribing.

            - \ – Transcribe from specific language. Can be used to specify the
            exact language spoken in the audio track, or when auto language
            detection fails. Language is set by 3-letter language code according
            to ISO-639-2 (bibliographic code). List of languages is available in
            ```audio_language``` attribute of API POST /streaming/ai/transcribe
            .


            Example:


            ```

            auto_transcribe_audio_language: "auto"

            auto_transcribe_audio_language: "ger"

            ```


            More details:

            - List of AI tasks – API [GET
            /streaming/ai/tasks](/docs/api-reference/streaming/ai/get-list-of-ai-tasks)

            - Add subtitles to an exist video – API [POST
            /streaming/videos/{`video_id`}/subtitles](/docs/api-reference/streaming/subtitles/add-subtitle).
          enum:
            - disable
            - auto
            - <language_code>
          default: auto
        auto_translate_subtitles_language:
          type: string
          description: >-
            Automatic translation of auto-transcribed subtitles to the specified
            language(s). Can be used both together with
            ```auto_transcribe_audio_language``` option only. 


            Use it when you want to make automatic subtitles in languages other
            than the original language in audio.


            Values:

            - disable – Do not translate.

            - default – There are 3 default languages: eng,fre,ger

            - \ – Explicit language to translate to, or list of languages
            separated by a comma. Look at list of available languages in
            description of AI ASR task creation. 


            If several languages are specified for translation, a separate
            subtitle will be generated for each language.


            Example:


            ```

            auto_translate_subtitles_language: default

            auto_translate_subtitles_language: eng,fre,ger

            ```

              


            Please note that subtitle translation is done separately and after
            transcription. Thus separate AI-tasks are created for translation.
          enum:
            - disable
            - default
            - <language_codes,>
          default: disable
        projection:
          type: string
          description: |-
            Deprecated.

            Regulates the video format:

            - **regular**
              — plays the video as usual
            - **vr360**
              — plays the video in 360 degree mode
            - **vr180** — plays the video in 180 degree
              mode
            - **vr360tb** — plays the video in 3D
              360 degree mode Top-Bottom.

              
             Default is regular
        share_url:
          type: string
          description: |-
            Deprecated.

            Custom URL or iframe displayed in the link field when a user clicks
            on a sharing button in player. If empty, the link field and social
            network sharing is disabled
        custom_iframe_url:
          type: string
          description: |-
            Deprecated. 

            Custom URL of IFrame for video player to be used in share panel in
            player. Auto generated IFrame URL provided by default
      example:
        name: IBC 2025 - International Broadcasting Convention
        description: >-
          We look forward to welcoming you at IBC2025, which will take place
          12-15 September 2025.
        origin_url: https://www.googleapis.com/drive/v3/files/...?alt=media
        origin_http_headers: 'Authorization: Bearer ...'
        priority: 0
        clip_start_seconds: 137
        clip_duration_seconds: 60
        directory_id: 800
        projection: regular
        client_user_id: 10
        stream_id: 1
        poster: data:image/jpeg;base64,/9j/4AA...qf/2Q==
        screenshot_id: -1
        auto_transcribe_audio_language: auto
  securitySchemes:
    APIKey:
      description: >-
        API key for authentication. Make sure to include the word `apikey`,
        followed by a single space and then your token.

        Example: `apikey 1234$abcdef`
      type: apiKey
      in: header
      name: Authorization

````