diff --git a/fern/pages/faq/async/what-types-of-audio-urls-can-i-use-with-the-api.mdx b/fern/pages/faq/async/what-types-of-audio-urls-can-i-use-with-the-api.mdx index 8513565d..44df028f 100644 --- a/fern/pages/faq/async/what-types-of-audio-urls-can-i-use-with-the-api.mdx +++ b/fern/pages/faq/async/what-types-of-audio-urls-can-i-use-with-the-api.mdx @@ -17,4 +17,8 @@ Alternatively, you can host your files elsewhere. Common approaches are to: - Cloud storage services (GCP/Azure/AWS) - Any direct download URL that serves audio/video content + +**Time-limited URLs must be fresh at submission time.** If you use presigned URLs (AWS S3, GCP, Azure SAS tokens) or CDN URLs from platforms like TikTok or Instagram, generate the URL immediately before submitting your request to `/v2/transcript`. If the URL expires before AssemblyAI downloads the file, the transcription will fail with a download error. For more details, see the [Troubleshoot Common Errors](/docs/guides/common_errors_and_solutions) guide. + + API Reference: [Upload endpoint](/docs/api-reference/files/upload) diff --git a/fern/pages/guides/cookbooks/core-transcription/common_errors_and_solutions.mdx b/fern/pages/guides/cookbooks/core-transcription/common_errors_and_solutions.mdx index 82ee0a5d..3e6e4b72 100644 --- a/fern/pages/guides/cookbooks/core-transcription/common_errors_and_solutions.mdx +++ b/fern/pages/guides/cookbooks/core-transcription/common_errors_and_solutions.mdx @@ -171,6 +171,15 @@ Our API requires a publicly accessible URL that points to an audio file to retri - **Direct Upload**: Utilize the [AssemblyAI Upload endpoint](https://www.assemblyai.com/docs/api-reference/upload) to upload files directly from your device, eliminating the need for a public URL. - **AWS S3 Pre-signed URLs**: [This Cookbook](https://github.com/AssemblyAI/cookbook/blob/master/core-transcription/transcribe_from_s3.ipynb) shows you how to use pre-signed URLs for AWS S3 storage to provide secure, temporary access for transcription without making your files public. + +**Time-limited URLs (presigned URLs, CDN tokens, etc.) must be fresh when you submit them.** URLs from services like AWS S3 presigned URLs, Azure Blob Storage SAS tokens, GCP signed URLs, and social media CDNs (e.g., TikTok, Instagram) expire after a set duration. If the URL expires before AssemblyAI downloads the file, the origin server returns a `403` or `404` and you will see this download error. + +To avoid this: +1. Generate the time-limited URL immediately before submitting your transcription request — do not cache or store URLs for later use. +2. Ensure the URL expiration window is long enough for the file to be downloaded (at least a few minutes). +3. If you cannot control the URL lifetime, use the [Upload endpoint](/docs/api-reference/files/upload) to upload the file directly to AssemblyAI instead. + + #### Audio File Errors ##### Attempting to transcribe audio files that are too short