Wizard Notes

Python, JavaScript を使った音楽信号分析の技術録、作曲活動に関する雑記

Flask:Webアプリでサーバ上のオーディオファイルを再生・ダウンロード

概要

ブラウザ上でサーバ上の音源を再生するWebアプリを、Flaskで実現するための実装例です。

ディレクトリ構成

flask_play_audio/
 ├ music/
 │ └ audio.mp3
 ├ templates/
 │ └ index.html
 └ app.py

ソースコード

app.py

# -*- coding: utf-8 -*-
from flask import Flask, render_template, send_from_directory

app = Flask(__name__)

@app.route("/")
def index():
    return render_template("index.html")

@app.route("/music/<path:filename>")
def play(filename):
    return send_from_directory("music", filename)

if __name__ == "__main__":
    app.run("0.0.0.0", 80, debug=True)

templates/index.html

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title>Download audio</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
  <audio src="music/audio.mp3" controls></audio>
</body>
</html>

参考

python - How to play audio from outside static folder in Flask? - Stack Overflow