CapVideo / README.md
hafsakhan09090's picture
Upload 12 files
a80d5b1 verified
|
Raw
History Blame Contribute Delete
3.64 kB
---
title: CapVideo
emoji: "馃帗"
colorFrom: indigo
colorTo: green
sdk: docker
pinned: false
fullWidth: true
suggested_hardware: "cpu-upgrade"
tags:
- education
- video-learning
- whisper
- captions
- flask
---
# CapVideo
**Turn a lesson video into a learning kit.** CapVideo creates a captioned video, a timestamped transcript, chapter highlights, and source-linked recall cards from an educational video. The aim is to help learners revisit a difficult idea in seconds rather than rewatching an entire lecture.
![CapVideo workflow](https://img.shields.io/badge/workflow-video_%E2%86%92_captions_%E2%86%92_recall_cards-7b61ff)
## Why it matters
Video is a great teaching medium, but it is difficult to search, easy to passively consume, and not equally accessible to every learner. CapVideo turns a single uploaded lecture or explainer into reusable study material:
- **Captioned video** with configurable size, colour, and language detection.
- **Timestamped transcript** for skimming and accessibility.
- **Lecture map** that groups the source into digestible, source-linked chapters.
- **Recall cards** that ask learners to retrieve an idea before showing its evidence-backed answer.
The app uses Whisper locally for speech-to-text and keeps the learning-kit output grounded in the source transcript and timestamps.
## Fast demo
1. Open the running app.
2. Upload a short MP4 of a lecture, tutorial, or explainer you own or are authorized to process.
3. Select a caption style and press **Build my learning kit**.
4. When processing completes, open a chapter, reveal a recall card, and download the captioned video, `.srt`, or transcript.
For a reliable judge demo, use a short uploaded MP4. The optional public-YouTube-link route is a convenience feature; a video host may restrict automated retrieval at any time.
## Run locally
### Docker (recommended)
```bash
docker build -t capvideo .
docker run --rm -p 7860:7860 -e SECRET_KEY="replace-with-a-long-random-value" capvideo
```
Open `http://localhost:7860`.
### Python
Python 3.10+ and FFmpeg are required.
```bash
python -m venv .venv
# Windows: .venv\Scripts\activate
# macOS/Linux: source .venv/bin/activate
pip install -r requirements.txt
pip install git+https://github.com/openai/whisper.git
python app.py
```
## Deployment notes
- Set `SECRET_KEY` in your deployment secrets. Never commit it.
- CapVideo processes files in ephemeral `uploads/` and `processed/` folders; do not rely on them for long-term storage.
- If you are authorized to use a cookie file for a deployment, set `YTDLP_COOKIEFILE` to its server-side path. Do **not** paste browser cookies into the UI or commit them to a repository.
- A public project link is sufficient for testing. If the code repository is private, share it with `testing@devpost.com` and `build-week-event@openai.com` before submitting.
## Hackathon extension record
CapVideo is a meaningful extension of the pre-existing **Scrideo** transcription prototype. The distinction is intentional and documented in [HACKATHON.md](HACKATHON.md).
During the hackathon submission period, Codex with GPT-5.6 was used to audit the old extraction flow, redesign the product around reliable upload-first learning, implement the source-linked learning kit, and create this testable frontend and documentation. Before submitting, add the `/feedback` session ID for the main build session in `HACKATHON.md` and commit the completed work with its current date.
## Technology
Python 路 Flask 路 Whisper 路 FFmpeg 路 yt-dlp 路 Vanilla HTML/CSS/JavaScript 路 Codex with GPT-5.6
## License
MIT. See [LICENSE](LICENSE).