# Downloads ## List downloads `stream.downloads.get(stridentifier, DownloadGetParams**kwargs) -> DownloadGetResponse` **get** `/accounts/{account_id}/stream/{identifier}/downloads` Lists the downloads created for a video. ### Parameters - `account_id: str` Identifier. - `identifier: str` A Cloudflare-generated unique identifier for a media item. ### Returns - `class DownloadGetResponse: …` An object with download type keys. Each key is optional and only present if that download type has been created. - `audio: Optional[Audio]` The audio-only download. Only present if this download type has been created. - `percent_complete: Optional[float]` Indicates the progress as a percentage between 0 and 100. - `status: Optional[Literal["ready", "inprogress", "error"]]` The status of a generated download. - `"ready"` - `"inprogress"` - `"error"` - `url: Optional[str]` The URL to access the generated download. - `default: Optional[Default]` The default video download. Only present if this download type has been created. - `percent_complete: Optional[float]` Indicates the progress as a percentage between 0 and 100. - `status: Optional[Literal["ready", "inprogress", "error"]]` The status of a generated download. - `"ready"` - `"inprogress"` - `"error"` - `url: Optional[str]` The URL to access the generated download. ### 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 ) download = client.stream.downloads.get( identifier="ea95132c15732412d22c1476fa83f27a", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(download.audio) ``` #### 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": { "audio": { "percentComplete": 0, "status": "ready", "url": "https://customer-m033z5x00ks6nunl.cloudflarestream.com/ea95132c15732412d22c1476fa83f27a/downloads/default.mp4" }, "default": { "percentComplete": 0, "status": "ready", "url": "https://customer-m033z5x00ks6nunl.cloudflarestream.com/ea95132c15732412d22c1476fa83f27a/downloads/default.mp4" } } } ``` ## Create downloads `stream.downloads.create(stridentifier, DownloadCreateParams**kwargs) -> DownloadCreateResponse` **post** `/accounts/{account_id}/stream/{identifier}/downloads` Creates a download for a video when a video is ready to view. Use `/downloads/{download_type}` instead for type-specific downloads. Available types are `default` and `audio`. ### Parameters - `account_id: str` Identifier. - `identifier: str` A Cloudflare-generated unique identifier for a media item. - `body: object` ### Returns - `class DownloadCreateResponse: …` - `percent_complete: Optional[float]` Indicates the progress as a percentage between 0 and 100. - `status: Optional[Literal["ready", "inprogress", "error"]]` The status of a generated download. - `"ready"` - `"inprogress"` - `"error"` - `url: Optional[str]` The URL to access the generated download. ### 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 ) download = client.stream.downloads.create( identifier="ea95132c15732412d22c1476fa83f27a", account_id="023e105f4ecef8ad9ca31a8372d0c353", body={}, ) print(download.percent_complete) ``` #### 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": { "percentComplete": 0, "status": "ready", "url": "https://customer-m033z5x00ks6nunl.cloudflarestream.com/ea95132c15732412d22c1476fa83f27a/downloads/default.mp4" } } ``` ## Delete downloads `stream.downloads.delete(stridentifier, DownloadDeleteParams**kwargs) -> DownloadDeleteResponse` **delete** `/accounts/{account_id}/stream/{identifier}/downloads` Delete the downloads for a video. Use `/downloads/{download_type}` instead for type-specific downloads. Available types are `default` and `audio`. ### Parameters - `account_id: str` Identifier. - `identifier: str` A Cloudflare-generated unique identifier for a media item. ### 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 ) download = client.stream.downloads.delete( identifier="ea95132c15732412d22c1476fa83f27a", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(download) ``` #### 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" } ``` ## Domain Types ### Download Get Response - `class DownloadGetResponse: …` An object with download type keys. Each key is optional and only present if that download type has been created. - `audio: Optional[Audio]` The audio-only download. Only present if this download type has been created. - `percent_complete: Optional[float]` Indicates the progress as a percentage between 0 and 100. - `status: Optional[Literal["ready", "inprogress", "error"]]` The status of a generated download. - `"ready"` - `"inprogress"` - `"error"` - `url: Optional[str]` The URL to access the generated download. - `default: Optional[Default]` The default video download. Only present if this download type has been created. - `percent_complete: Optional[float]` Indicates the progress as a percentage between 0 and 100. - `status: Optional[Literal["ready", "inprogress", "error"]]` The status of a generated download. - `"ready"` - `"inprogress"` - `"error"` - `url: Optional[str]` The URL to access the generated download. ### Download Create Response - `class DownloadCreateResponse: …` - `percent_complete: Optional[float]` Indicates the progress as a percentage between 0 and 100. - `status: Optional[Literal["ready", "inprogress", "error"]]` The status of a generated download. - `"ready"` - `"inprogress"` - `"error"` - `url: Optional[str]` The URL to access the generated download. ### Download Delete Response - `str`