Spaces:
Sleeping
Sleeping
| title: SoraWithAzure | |
| emoji: ๐ | |
| colorFrom: red | |
| colorTo: red | |
| sdk: docker | |
| app_port: 8501 | |
| tags: | |
| - streamlit | |
| pinned: false | |
| short_description: Streamlit template space | |
| # SoraWithAzure: Streamlit Video Generation App | |
| This app lets you generate videos using the Azure Sora API via a simple Streamlit interface. Users can enter a text prompt, select video settings, and generate videos that are stored and viewable by anyone using the app. | |
| ## Key Components | |
| - **SoraClient**: Handles all communication with the Azure Sora API (job creation, polling, download). | |
| - **VideoJob**: Represents a video generation job, encapsulating prompt, parameters, and result. | |
| - **VideoStorage**: Handles saving and listing generated videos in a persistent directory. | |
| - **Streamlit App**: Provides the user interface for input, video generation, and video display. | |
| ## How it Works | |
| 1. User enters their Azure API key, endpoint, and a text prompt. | |
| 2. User selects video resolution, length, and number of variants. | |
| 3. The app creates a video generation job via the Sora API. | |
| 4. The app polls for job completion. | |
| 5. When ready, the app downloads the generated video(s) and stores them. | |
| 6. All generated videos are listed and playable in the app. | |
| ## Sequence Diagram (ASCII) | |
| ``` | |
| User StreamlitApp SoraClient AzureSoraAPI VideoStorage | |
| | | | | | | |
| |---input-------->| | | | | |
| | |---start_job--->| | | | |
| | | |---POST-------->| | | |
| | | |<--job_id-------| | | |
| | |<--job_id-------| | | | |
| | |---wait-------->| | | | |
| | | |---poll-------->| | | |
| | | |<--status-------| | | |
| | |<--result-------| | | | |
| | |---download---->| | | | |
| | | |---GET video--->| | | |
| | | |<--video--------| | | |
| | | |---save-------->| | | |
| | | |<--file_path----| | | |
| |<---display------| | | | | |
| ``` | |
| ## Code Structure | |
| - `src/sora_video_downloader.py`: Core logic for Sora API interaction and video job management. | |
| - `src/streamlit_app.py`: Streamlit UI and app logic. | |
| ## Notes | |
| - Only text-to-video is supported (no image+prompt). | |
| - All generated videos are visible to all users. | |
| --- | |
| For more, see the code comments and docstrings in each file. | |