Transcribe video and audio to markdown with timestamps. Supports local files and streams.
Project description
xscribe
Download and transcribe any online video in minutes.
Turn any video or audio file into a clean, timestamped markdown transcript. Just point xscribe at a file or stream URL and get a readable transcript — no cloud services, no subscriptions, everything runs locally on your machine.
Powered by faster-whisper.
Install
pip install xscribe
Missing dependencies (ffmpeg, yt-dlp) are detected automatically — xscribe will offer to install them for you on first run.
Optionally, pre-download the transcription model so your first transcription is fast:
xscribe setup
Quick start
Transcribe a video file on your computer:
xscribe interview.mp4
This creates interview.md in your current folder with the full transcript and timestamps.
Transcribe an online video stream:
xscribe "https://stream.example.com/video/playlist.m3u8"
xscribe will download the video first, then transcribe it.
Usage examples
# Transcribe a podcast episode
xscribe episode-42.mp3
# Transcribe a lecture recording
xscribe lecture.mov
# Transcribe a YouTube stream URL
xscribe "https://manifest.googlevideo.com/.../playlist.m3u8"
# Use a more accurate model (slower but better for tricky audio)
xscribe meeting.mp4 -m large-v3
# Save the transcript to a specific file
xscribe keynote.mp4 -o keynote-notes.md
# Force a specific language instead of auto-detect
xscribe video.mp4 -l es
# Transcribe multiple files at once
xscribe recording1.mp4 recording2.mp4 recording3.mp4
# Pre-download a specific model
xscribe setup -m large-v3
Supported file types: mp4, mp3, wav, mov, mkv, webm, m4a, flac, ogg, and anything else ffmpeg can read.
How to get an .m3u8 URL from any website
Most streaming videos use .m3u8 playlist URLs behind the scenes. Here's how to find them:
- Open the website with the video in Chrome or any browser
- Right-click anywhere on the page and select Inspect (or press
F12) - Click the Network tab in the developer tools panel
- Play the video on the page
- In the Network tab's filter/search bar, type
.m3u8 - You'll see one or more requests appear — right-click the URL and select Copy URL
- Paste it into xscribe:
xscribe "https://...your-copied-url.m3u8"
Options
| Flag | Description |
|---|---|
-m, --model |
Whisper model size (see below) |
-l, --lang |
Force language code (e.g. en, es, fr, de, ja) |
-o, --output |
Custom output file path |
-v, --version |
Show version |
Model sizes
| Model | Flag | Best for |
|---|---|---|
| Tiny | -m tiny |
Quick and dirty, when you just need the gist |
| Base | (default) | General use, good balance of speed and quality |
| Small | -m small |
Better accuracy, still reasonably fast |
| Medium | -m medium |
High accuracy for important transcripts |
| Large | -m large-v3 |
Best possible accuracy, but slowest |
The model downloads automatically the first time you use it and gets cached for future runs. Use xscribe setup -m <model> to pre-download.
Output format
xscribe saves transcripts as markdown files with timestamps:
# Transcription
**Source:** `interview.mp4`
---
**[00:03]** Hello and welcome to the show.
**[00:07]** Today we're joined by a special guest...
**[01:24]** Let's dive into the first topic.
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xscribe-0.2.0.tar.gz.
File metadata
- Download URL: xscribe-0.2.0.tar.gz
- Upload date:
- Size: 7.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
02c34d488cf34bc6d1ab83b4c7f3d88c1ef4b2df57e3a7006cdffcab7b230ca5
|
|
| MD5 |
d84e558bf320d49eb7a0d7bf3605db19
|
|
| BLAKE2b-256 |
e8706f4e314cc8fc02bd58caea2f4136256d202ef2002afd144795a07be27820
|
File details
Details for the file xscribe-0.2.0-py3-none-any.whl.
File metadata
- Download URL: xscribe-0.2.0-py3-none-any.whl
- Upload date:
- Size: 13.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d444c73f60cfe4b8d6badbc32deef7ef1d3e9256be5c0c57ae60c066552a358b
|
|
| MD5 |
c62b6091440000ef7643d88b43bc736d
|
|
| BLAKE2b-256 |
e4cd992c92fe12e5f3d0775c2d2c765d3ea9550e8b34e9523715192b8da55815
|