Live Web Application: https://instagramtranscript.web.app
GitHub Repository: https://github.com/Mrswami/instagramTranscript.git
An end-to-end Python Media Pipeline, REST API, Streamlit Web Application, and CLI tool that extracts high-quality 192kbps MP3 audio from any Instagram Reel or Post link and distills it into copyable text transcripts, SRT subtitles, WebVTT captions, and structured JSON data using OpenAI's Whisper AI engine.
Access the live, high-performance web client instantly:
π https://instagramtranscript.web.app
The web client features a dark-mode glassmorphism design built for desktop and mobile devices. It connects directly to local or cloud-hosted Python REST backend instances to extract media and process speech-to-text transcriptions in real time.
- π Instagram Video Audio Extraction: Seamlessly extracts audio streams from short or long (3+ minutes) Instagram Reel or Post URLs.
- π§ High-Quality MP3 Encoding: Converts video tracks into standardized 192kbps 44.1kHz MP3 files using FFmpeg.
- π§ AI Speech-to-Text Engine: Leverages local OpenAI Whisper AI models (
tiny,base,small,medium) for speech recognition. - π 1-Click Copy Transcript: Interactive interface to copy raw transcript text or timestamped lines with one click.
- π Multi-Format Caption Exporter: Save transcript outputs as
.txt,.srt(SubRip),.vtt(WebVTT), and.jsondata. - π Dual Web Interfaces:
- Firebase Web Dashboard: Glassmorphism web UI hosted at
https://instagramtranscript.web.app. - Streamlit Web App: Local/cloud interactive dashboard (
streamlit run app.py).
- Firebase Web Dashboard: Glassmorphism web UI hosted at
- β‘ Flask REST API: Production-ready HTTP API server (
server.py) with cross-origin support (CORS). - π» Terminal CLI: Execution script (
cli.py) for quick command-line processing. - π‘οΈ Multi-Provider Fallback Pipeline: Resilience through fallback engines (
yt-dlp-> HTTP extraction APIs -> Netscapecookies.txt).
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β User Submits Instagram Link β
β (Web UI / Streamlit Dashboard / Flask API / Terminal) β
βββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β InstagramTranscriber Engine β
β 1. Validate URL & Extract Shortcode β
β 2. Multi-Provider Audio Stream Downloader β
β ββ Provider 1: yt-dlp (with cookies support) β
β ββ Provider 2: Direct HTTP Extractor API β
βββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FFmpeg Audio Transcoder β
β Converts media binary -> 192kbps MP3 audio β
βββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β OpenAI Whisper AI Engine β
β Speech-to-Text Inference (tiny/base/small/medium) β
βββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Generated Outputs β
β β’ Raw Text Transcript β’ Timestamp Breakdown β
β β’ SubRip (.srt) β’ WebVTT (.vtt) β’ JSON Data β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Python 3.9 - 3.11
- FFmpeg (automatically configured via
imageio_ffmpegor system PATH)
git clone https://github.com/Mrswami/instagramTranscript.git
cd instagramTranscript
pip install -r requirements.txtLaunch the interactive Streamlit dashboard:
streamlit run app.pyOpen http://localhost:8501 in your browser.
Launch the backend server:
python server.pyThe REST API runs on http://localhost:5000.
Transcribe directly from your command line:
python cli.py "https://www.instagram.com/reel/Cxxxxxx/" --model base --outdir outputCLI Parameters:
url: Instagram Reel or Post link.--model: Whisper model size (tiny,base,small,medium). Default:base.--outdir: Directory to store generated MP3 and transcript files. Default:output.
- Endpoint:
GET /healthorGET / - Response:
{ "service": "Instagramtranscript API Engine", "status": "ok", "version": "1.0.0" }
- Endpoint:
POST /api/transcribe - Headers:
Content-Type: application/json - Request Body:
{ "url": "https://www.instagram.com/reel/Cxxxxxx/", "model": "base" } - Success Response (200 OK):
{ "status": "success", "text": "Full transcribed speech text...", "segments": [ { "start": 0.0, "end": 3.42, "text": "First spoken segment" } ], "srt": "1\n00:00:00,000 --> 00:00:03,420\nFirst spoken segment\n", "vtt": "WEBVTT\n\n00:00:00.000 --> 00:00:03.420\nFirst spoken segment\n", "audio_file": "output/Cxxxxxx.mp3" }
instagramTranscript/
βββ app.py # Streamlit Web App interface with glassmorphism design
βββ server.py # Flask REST API backend server with pre-loading & CORS
βββ cli.py # Command-line interface tool
βββ transcriber.py # Core media downloader, FFmpeg transcoder & Whisper AI pipeline
βββ ISSUES.md # QA testing report, latency performance benchmarks & resolved issues
βββ DEPLOYMENT.md # Cloud deployment instructions (Render, Railway, Google Cloud Run)
βββ Dockerfile # Container specification for cloud hosting
βββ firebase.json # Firebase Hosting configuration
βββ .firebaserc # Firebase project target mapping
βββ render.yaml # Render cloud service deployment configuration
βββ requirements.txt # Python dependency manifest
βββ public/ # Static web assets for live Web App
β βββ index.html # Responsive glassmorphism web client with health indicator
β βββ logo.jpg # Brand logo asset
βββ output/ # Output folder for generated MP3s and transcripts
- Frontend Hosting (Firebase): Configured in
firebase.jsonfor rapid deployment tohttps://instagramtranscript.web.app. - Backend Cloud Hosting (Render / Docker): Deploy
Dockerfiledirectly to Render, Railway, or Google Cloud Run. SeeDEPLOYMENT.mdfor step-by-step guidance.
MIT License - Free and open-source for developers, creators, and researchers.