# Audio Tracks ## List additional audio tracks on a video `stream.audio_tracks.get(stridentifier, AudioTrackGetParams**kwargs) -> SyncSinglePage[Audio]` **get** `/accounts/{account_id}/stream/{identifier}/audio` Lists additional audio tracks on a video. Note this API will not return information for audio attached to the video upload. ### Parameters - `account_id: str` The account identifier tag. - `identifier: str` A Cloudflare-generated unique identifier for a media item. ### Returns - `class Audio: …` - `default: Optional[bool]` Denotes whether the audio track will be played by default in a player. - `label: Optional[str]` A string to uniquely identify the track amongst other audio track labels for the specified video. - `status: Optional[Literal["queued", "ready", "error"]]` Specifies the processing status of the video. - `"queued"` - `"ready"` - `"error"` - `uid: Optional[str]` A Cloudflare-generated unique identifier for a media item. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) page = client.stream.audio_tracks.get( identifier="ea95132c15732412d22c1476fa83f27a", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) page = page.result[0] print(page.uid) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "default": true, "label": "director commentary", "status": "queued", "uid": "ea95132c15732412d22c1476fa83f27a" } ] } ``` ## Edit additional audio tracks on a video `stream.audio_tracks.edit(straudio_identifier, AudioTrackEditParams**kwargs) -> Audio` **patch** `/accounts/{account_id}/stream/{identifier}/audio/{audio_identifier}` Edits additional audio tracks on a video. Editing the default status of an audio track to `true` will mark all other audio tracks on the video default status to `false`. ### Parameters - `account_id: str` The account identifier tag. - `identifier: str` A Cloudflare-generated unique identifier for a media item. - `audio_identifier: str` The unique identifier for an additional audio track. - `default: Optional[bool]` Denotes whether the audio track will be played by default in a player. - `label: Optional[str]` A string to uniquely identify the track amongst other audio track labels for the specified video. ### Returns - `class Audio: …` - `default: Optional[bool]` Denotes whether the audio track will be played by default in a player. - `label: Optional[str]` A string to uniquely identify the track amongst other audio track labels for the specified video. - `status: Optional[Literal["queued", "ready", "error"]]` Specifies the processing status of the video. - `"queued"` - `"ready"` - `"error"` - `uid: Optional[str]` A Cloudflare-generated unique identifier for a media item. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) audio = client.stream.audio_tracks.edit( audio_identifier="ea95132c15732412d22c1476fa83f27a", account_id="023e105f4ecef8ad9ca31a8372d0c353", identifier="ea95132c15732412d22c1476fa83f27a", ) print(audio.uid) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "default": true, "label": "director commentary", "status": "queued", "uid": "ea95132c15732412d22c1476fa83f27a" } } ``` ## Delete additional audio tracks on a video `stream.audio_tracks.delete(straudio_identifier, AudioTrackDeleteParams**kwargs) -> AudioTrackDeleteResponse` **delete** `/accounts/{account_id}/stream/{identifier}/audio/{audio_identifier}` Deletes additional audio tracks on a video. Deleting a default audio track is not allowed. You must assign another audio track as default prior to deletion. ### Parameters - `account_id: str` The account identifier tag. - `identifier: str` A Cloudflare-generated unique identifier for a media item. - `audio_identifier: str` The unique identifier for an additional audio track. ### Returns - `str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) audio_track = client.stream.audio_tracks.delete( audio_identifier="ea95132c15732412d22c1476fa83f27a", account_id="023e105f4ecef8ad9ca31a8372d0c353", identifier="ea95132c15732412d22c1476fa83f27a", ) print(audio_track) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": "ok" } ``` ## Add audio tracks to a video `stream.audio_tracks.copy(stridentifier, AudioTrackCopyParams**kwargs) -> Audio` **post** `/accounts/{account_id}/stream/{identifier}/audio/copy` Adds an additional audio track to a video using the provided audio track URL. ### Parameters - `account_id: str` The account identifier tag. - `identifier: str` A Cloudflare-generated unique identifier for a media item. - `label: str` A string to uniquely identify the track amongst other audio track labels for the specified video. - `url: Optional[str]` An audio track URL. The server must be publicly routable and support `HTTP HEAD` requests and `HTTP GET` range requests. The server should respond to `HTTP HEAD` requests with a `content-range` header that includes the size of the file. ### Returns - `class Audio: …` - `default: Optional[bool]` Denotes whether the audio track will be played by default in a player. - `label: Optional[str]` A string to uniquely identify the track amongst other audio track labels for the specified video. - `status: Optional[Literal["queued", "ready", "error"]]` Specifies the processing status of the video. - `"queued"` - `"ready"` - `"error"` - `uid: Optional[str]` A Cloudflare-generated unique identifier for a media item. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) audio = client.stream.audio_tracks.copy( identifier="ea95132c15732412d22c1476fa83f27a", account_id="023e105f4ecef8ad9ca31a8372d0c353", label="director commentary", ) print(audio.uid) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "default": true, "label": "director commentary", "status": "queued", "uid": "ea95132c15732412d22c1476fa83f27a" } } ``` ## Domain Types ### Audio - `class Audio: …` - `default: Optional[bool]` Denotes whether the audio track will be played by default in a player. - `label: Optional[str]` A string to uniquely identify the track amongst other audio track labels for the specified video. - `status: Optional[Literal["queued", "ready", "error"]]` Specifies the processing status of the video. - `"queued"` - `"ready"` - `"error"` - `uid: Optional[str]` A Cloudflare-generated unique identifier for a media item. ### Audio Track Delete Response - `str`