Skip to content
← Back to projects
Interface verified locally

Video transcriber

An application that receives video or audio, extracts the track, transcribes locally and produces a downloadable summary.

Dark video transcriber interface with a video and audio upload area
The initial view reduces the flow to one action: upload a file and follow the job status.

The challenge

Transcribing audiovisual material often requires desktop tools, external services or manual workflows. The goal was to bring upload, processing, summary and download into one web flow.

My contribution

I built the web experience and processing architecture: Next.js frontend, Python API, FFmpeg extraction, local Faster Whisper transcription and distributed jobs with Celery and Redis.

Key decisions

  • Run transcription locally to reduce third-party dependency and retain control over files.
  • Process every upload as a queued job so the UI can report progress and several users do not block the API.
  • Use Gemini for summaries when available and retain an extractive summary as a fallback.
  • Offer TXT and PDF downloads so the output remains useful outside the application.

The product in use

Screenshots captured while running the project or reviewing its published version.

Light video transcriber interface with supported formats
The light theme keeps the same hierarchy and explains supported formats without adding steps.

Outcomes

  • The flow accepts common video and audio formats from a single upload area.
  • Separating the interface, API and workers makes processing scalable without duplicating the web application.
  • The solution keeps a functional summary path even when no generative key is configured.

Tech stack

Next.js 16FastAPIFaster WhisperCeleryRedisFFmpeg