Audio files cannot be passed as URLs

Author: 34jCreated Dec 22, 2025Updated Apr 25, 2026
Labelsb-bug

Describe the bug Audio files cannot be passed as URLs. This problem arises when attempting to use audio files which are automatically generated (e.g. Text-To-Speech).

To Reproduce Steps to reproduce the behavior or a code snippet containing the scene that causes the problem:

typescript
import { sound } from '@motion-canvas/core'

export default makeScene2D(function* (view) {
  sound("https://revideo-example-assets.s3.amazonaws.com/chill-beat.mp3").play()
});

Expected behavior Audio files can be passed as a URL

Console errors

bash
ffmpeg version 6.1-static https://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 8 (Debian 8.3.0-6)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg
  libavutil      58. 29.100 / 58. 29.100
  libavcodec     60. 31.102 / 60. 31.102
  libavformat    60. 16.100 / 60. 16.100
  libavdevice    60.  3.100 / 60.  3.100
  libavfilter     9. 12.100 /  9. 12.100
  libswscale      7.  5.100 /  7.  5.100
  libswresample   4. 12.100 /  4. 12.100
  libpostproc    57.  3.100 / 57.  3.100
Input #0, rawvideo, from 'pipe:0':
  Duration: N/A, start: 0.000000, bitrate: 3981312 kb/s
  Stream #0:0: Video: rawvideo (RGBA / 0x41424752), rgba, 1920x1080, 3981312 kb/s, 60 tbr, 60 tbn
[in#1 @ 0x25671480] Error opening input: Protocol not found
[in#1 @ 0x25671480] Did you mean file:ttps://revideo-example-assets.s3.amazonaws.com/chill-beat.mp3?
Error opening input file ttps://revideo-example-assets.s3.amazonaws.com/chill-beat.mp3.
Error opening input files: Protocol not found

motion-canvas-psdtool/node_modules/.pnpm/[email protected]/node_modules/fluent-ffmpeg/lib/processor.js:180
          handleExit(new Error('ffmpeg exited with code ' + code));
                     ^

Error: ffmpeg exited with code 8: Error opening input file ttps://revideo-example-assets.s3.amazonaws.com/chill-beat.mp3.
Error opening input files: Protocol not found

    at ChildProcess.<anonymous> (motion-canvas-psdtool/node_modules/.pnpm/[email protected]/node_modules/fluent-ffmpeg/lib/processor.js:180:22)
    at ChildProcess.emit (node:events:519:28)
    at ChildProcess._handle.onexit (node:internal/child_process:293:12)

Node.js v22.21.1
 ELIFECYCLE  Command failed with exit code 1.

Package versions: Click on the version in the bottom right corner to copy the versions

  • core: 3.18.0-alpha.0
  • two: 3.18.0-alpha.0
  • ui: 3.18.0-alpha.0
  • vitePlugin: 3.18.0-alpha.0

Additional context Add any other context about the problem here. @Astavie #1081 #1082

motion-canvas-narrator provides a plugin to download files: https://github.com/prathje/motion-canvas-narrator/blob/cdd5e320ecdfb4c7a98598872b9b71f2c4e0092e/src/vite-plugin/plugin.ts

Source: motion-canvas/motion-canvas