Skip to main content

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

You also need ffmpeg installed on your system:

# macOS
brew install ffmpeg

# Ubuntu/Debian
sudo apt install ffmpeg

# Windows
winget install ffmpeg

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. You'll need yt-dlp installed for this (brew install yt-dlp or pip install yt-dlp).

Usage examples

# Transcribe a podcast episode you downloaded
xscribe episode-42.mp3

# Transcribe a lecture recording
xscribe lecture.mov

# Transcribe a YouTube stream you grabbed the URL for
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

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:

  1. Open the website with the video in Chrome or any browser
  2. Right-click anywhere on the page and select Inspect (or press F12)
  3. Click the Network tab in the developer tools panel
  4. Play the video on the page
  5. In the Network tab's filter/search bar, type .m3u8
  6. You'll see one or more requests appear — right-click the URL and select Copy URL
  7. Paste it into xscribe: xscribe "https://...your-copied-url.m3u8"

Model sizes

xscribe uses OpenAI's Whisper speech recognition. You can choose different model sizes depending on whether you want speed or accuracy:

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.

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

xscribe-0.1.0.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xscribe-0.1.0-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file xscribe-0.1.0.tar.gz.

File metadata

  • Download URL: xscribe-0.1.0.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for xscribe-0.1.0.tar.gz
Algorithm Hash digest
SHA256 26ab807c0cfa78c61181fb4683228b13f60163470da71f9c526c832169b11830
MD5 0e74309c39eb522121f8405217e7cc00
BLAKE2b-256 66d1c85cb8a76cf8196464affccedb06ee031ce9dfa237d2f68703565fdb9225

See more details on using hashes here.

File details

Details for the file xscribe-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: xscribe-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for xscribe-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a4eda440ec150d3fec30aef586f7197485d0681b90f9a28daa12a5ded0b6492e
MD5 099f7dc81d46ada3a1c6f34a2f69ab66
BLAKE2b-256 e7af2c590ea8cb5df5d07ece41696d5d4828f222a830074caf38aad04b291bfe

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page