# local user
return FileResponse(open(file_path, 'rb'))
# remote user, transcode and serve first minute
- cmd = subprocess.run([
+ cmdline = [
'ffmpeg',
'-loglevel', 'quiet',
'-t', '60', # 60 seconds
'-f', 'opus',
'-b:a', '64000',
'-', # send to stdout
- ], capture_output=True)
+ ]
+ if track.duration and track.duration.total_seconds() > 60:
+ cmdline[1:1] = ['-ss', '60']
+ cmd = subprocess.run(cmdline, capture_output=True)
return HttpResponse(cmd.stdout, content_type='audio/opus')