【Streamlit】動画ファイルを再生する:st.video

Streamlit
この記事は約6分で読めます。

こんにちは、JS2IIUです。
今回の記事では動画ファイルをStreamlit上で再生する方法について見ていきます。また、ネット動画を埋め込む方法についても説明します。今回もよろしくお願いします。

はじめに

Streamlit は、Python のコードだけでシンプルかつ強力な Web アプリを素早く作れる便利なフレームワークです。
中でも st.video を使うことで、アプリ上に動画プレーヤーを簡単に組み込むことができます。

この記事では、以下の内容をステップバイステップでわかりやすく解説します:

  • ローカル動画ファイルを再生する方法
  • ユーザーがアップロードした動画を表示する方法
  • YouTube動画を埋め込んで再生する方法

開発環境の準備

Python と Streamlit のインストール

Python がインストールされていれば、以下のコマンドで Streamlit をインストールできます。

Bash
pip install streamlit

動作確認済みバージョン(参考)

  • Python 3.9~3.11
  • Streamlit 1.32.0(2025年4月時点)

st.video の基本的な使い方

まずは、ローカルにある動画ファイル(例:sample_video.mp4)を表示してみましょう。

例:動画ファイルを再生する基本コード

Python
import streamlit as st

st.title("ローカル動画の再生")

# 動画ファイルを再生
st.video("sample_video.mp4")

このように、st.video にファイルパスを渡すだけで、ブラウザ上に動画プレーヤーが表示されます。

ユーザーがアップロードした動画を再生する

Streamlit では st.file_uploader を使って、ユーザーが動画ファイルをアップロードする仕組みを簡単に作ることができます。

ステップ1:アップローダーを表示

Python
uploaded_file = st.file_uploader("動画ファイルをアップロードしてください", type=["mp4"])

ここでは .mp4 ファイルのみ受け付けています。

ステップ2:アップロードされたファイルを再生

Python
if uploaded_file is not None:
    st.video(uploaded_file)

ステップ3:完成コード(アップロード+再生)

Python
import streamlit as st

st.title("アップロードした動画を再生する")

# ファイルアップローダー
uploaded_file = st.file_uploader("動画ファイルをアップロードしてください", type=["mp4"])

# アップロードされた動画の表示
if uploaded_file is not None:
    st.success("アップロード成功!以下に動画を表示します。")
    st.video(uploaded_file)
else:
    st.info("まずは .mp4 形式の動画ファイルをアップロードしてください。")

このファイルを app.py として保存し、以下のコマンドで起動します:

Bash
streamlit run app.py

YouTube動画を埋め込んで再生する

st.video では、YouTube の動画も簡単に埋め込むことができます。
URL を文字列として渡すだけで、自動的に動画プレーヤーが表示されます。

ステップ1:YouTubeのURLを用意

例として、以下のような URL を使います:

Plaintext
https://www.youtube.com/watch?v=ABCDEFG1234

ステップ2:コード例

Python
import streamlit as st

st.title("YouTube動画の埋め込み")

# YouTubeのURL
youtube_url = "https://www.youtube.com/watch?v=abcdefg1234"

# 動画を埋め込む
st.video(youtube_url)

応用:ユーザー入力でYouTube動画を再生

ユーザーがURLを入力し、それをそのまま st.video に渡すこともできます。

Python
import streamlit as st

st.title("YouTube動画を再生する")

# ユーザーにURLを入力してもらう
url = st.text_input("YouTubeのURLを入力してください")

if url:
    st.video(url)

このように、YouTubeとの連携も非常に簡単に実現できます。

よくあるエラーと対処法

🔸 ファイルが読み込めない

  • .mp4.mov など、ブラウザで再生可能なフォーマットであることを確認してください。
  • ファイルサイズが大きすぎると Streamlit Cloud でアップロードできない場合があります(最大 200MB 程度)。

🔸 動画が再生されない/音声が出ない

  • 一部のブラウザでは特定の動画形式(コーデック)に対応していない場合があります。
  • 音声が再生されない場合、ファイルのコーデックを見直すことをおすすめします(例:AAC音声推奨)。

まとめ

今回の記事では、Streamlit を使って以下のことを学びました:

st.video で動画ファイルを再生できる
st.file_uploader で動画のアップロード機能を実装できる
✅ YouTube動画をURLだけで簡単に埋め込んで表示できる

これらを組み合わせることで、教育用アプリ・レビューアプリ・メディアビューアなど様々な用途に応用できます。

参考リンク

最後に書籍のPRです。
24年9月に出版された「ハイパーモダンPython-信頼性の高いワークフローを構築するモダンテクニック」、Claudio Jolowicz著、嶋田、鈴木訳。開発環境の構築、プロジェクトの管理、テストに関して実践的な内容でとても参考になる一冊です。Poetryについても詳しく説明されています。ぜひ手に取ってみてください。

最後まで読んでいただきありがとうございます。

コメント

タイトルとURLをコピーしました