Skip to main content

Uses whisper AI to transcribe speach from video and audio files. Also accepts urls for youtube, rumble, bitchute, clear file, etc.

Project description

transcribe-anything

Actions Status Actions Status Actions Status Actions Status

USES WHISPER AI

Input a local file or url and this tool will transcribe it using Whisper AI into subtitle files and raw text.

Uses whisper AI so this is state of the art translation service - completely free. 🤯🤯🤯

Your data stays private and is not uploaded to any service.

Usage (CPU Version)

> pip install transcribe-anything
# Outputs the srt, vtt and txt files in title/out.vtt
> transcribe_anything https://www.youtube.com/watch?v=dQw4w9WgXcQ

Usage (GPU Accelerated Version) (works on Python 3.10.X)

> curl https://raw.githubusercontent.com/zackees/transcribe-anything/main/install_cuda.py | python
# Outputs the srt, vtt and txt files in title/out.vtt
> transcribe_anything https://www.youtube.com/watch?v=dQw4w9WgXcQ

Will output:

Detecting language using up to the first 30 seconds. Use `--language` to specify the language
Detected language: English
[00:00.000 --> 00:27.000]  We're no strangers to love, you know the rules, and so do I
[00:27.000 --> 00:31.000]  I've built commitments while I'm thinking of
[00:31.000 --> 00:35.000]  You wouldn't get this from any other guy
[00:35.000 --> 00:40.000]  I just wanna tell you how I'm feeling
[00:40.000 --> 00:43.000]  Gotta make you understand
[00:43.000 --> 00:45.000]  Never gonna give you up
[00:45.000 --> 00:47.000]  Never gonna let you down
[00:47.000 --> 00:51.000]  Never gonna run around and desert you
[00:51.000 --> 00:53.000]  Never gonna make you cry
[00:53.000 --> 00:55.000]  Never gonna say goodbye
[00:55.000 --> 00:58.000]  Never gonna tell a lie
[00:58.000 --> 01:00.000]  And hurt you
[01:00.000 --> 01:04.000]  We've known each other for so long
[01:04.000 --> 01:09.000]  Your heart's been aching but you're too shy to say it
[01:09.000 --> 01:13.000]  Inside we both know what's been going on
[01:13.000 --> 01:17.000]  We know the game and we're gonna play it
[01:17.000 --> 01:22.000]  And if you ask me how I'm feeling
[01:22.000 --> 01:25.000]  Don't tell me you're too much to see
[01:25.000 --> 01:27.000]  Never gonna give you up
[01:27.000 --> 01:29.000]  Never gonna let you down
[01:29.000 --> 01:33.000]  Never gonna run around and desert you
[01:33.000 --> 01:35.000]  Never gonna make you cry
[01:35.000 --> 01:38.000]  Never gonna say goodbye
[01:38.000 --> 01:40.000]  Never gonna tell a lie
[01:40.000 --> 01:42.000]  And hurt you
[01:42.000 --> 01:44.000]  Never gonna give you up
[01:44.000 --> 01:46.000]  Never gonna let you down
[01:46.000 --> 01:50.000]  Never gonna run around and desert you
[01:50.000 --> 01:52.000]  Never gonna make you cry
[01:52.000 --> 01:54.000]  Never gonna say goodbye
[01:54.000 --> 01:57.000]  Never gonna tell a lie
[01:57.000 --> 01:59.000]  And hurt you
[02:08.000 --> 02:10.000]  Never gonna give
[02:12.000 --> 02:14.000]  Never gonna give
[02:16.000 --> 02:19.000]  We've known each other for so long
[02:19.000 --> 02:24.000]  Your heart's been aching but you're too shy to say it
[02:24.000 --> 02:28.000]  Inside we both know what's been going on
[02:28.000 --> 02:32.000]  We know the game and we're gonna play it
[02:32.000 --> 02:37.000]  I just wanna tell you how I'm feeling
[02:37.000 --> 02:40.000]  Gotta make you understand
[02:40.000 --> 02:42.000]  Never gonna give you up
[02:42.000 --> 02:44.000]  Never gonna let you down
[02:44.000 --> 02:48.000]  Never gonna run around and desert you
[02:48.000 --> 02:50.000]  Never gonna make you cry
[02:50.000 --> 02:53.000]  Never gonna say goodbye
[02:53.000 --> 02:55.000]  Never gonna tell a lie
[02:55.000 --> 02:57.000]  And hurt you
[02:57.000 --> 02:59.000]  Never gonna give you up
[02:59.000 --> 03:01.000]  Never gonna let you down
[03:01.000 --> 03:05.000]  Never gonna run around and desert you
[03:05.000 --> 03:08.000]  Never gonna make you cry
[03:08.000 --> 03:10.000]  Never gonna say goodbye
[03:10.000 --> 03:12.000]  Never gonna tell a lie
[03:12.000 --> 03:14.000]  And hurt you
[03:14.000 --> 03:16.000]  Never gonna give you up
[03:16.000 --> 03:23.000]  If you want, never gonna let you down Never gonna run around and desert you
[03:23.000 --> 03:28.000]  Never gonna make you hide Never gonna say goodbye
[03:28.000 --> 03:42.000]  Never gonna tell you I ain't ready

Api

from transcribe_anyting.api import transcribe

transcribe(
    url_or_file="https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    output_dir="output_dir",
)

Install GPU/CUDA Accelerated version

GPU acceleration is much faster than the CPU version. Install it using the following:

> curl https://raw.githubusercontent.com/zackees/transcribe-anything/main/install_cuda.py | python
# transcribe-anything should now be installed
> transcribe_anything https://www.youtube.com/watch?v=dQw4w9WgXcQ

Develop

Works for Ubuntu/MacOS/Win32(in git-bash) This will create a virtual environment

> cd transcribe_anything
> ./install_dev.sh
# Enter the environment:
> source activate.sh

The environment is now active and the next step will only install to the local python. If the terminal is closed then to get back into the environment cd transcribe_anything and execute source activate.sh

Required: Install to current python environment

  • pip install transcribe-anything
    • The command transcribe_anything will magically become available.
  • transcribe_anything <YOUTUBE_URL>

Tech Stack

Testing

  • All tests are run by tox, simply go to the project directory root and run it.

Versions

  • 2.3.4: Removed out.mp3 and instead use a temporary wav file, as that is faster to process. --no-keep-audio has now been removed.
  • 2.3.3: Fix case where there spaces in name (happens on windows)
  • 2.3.2: Fix windows transcoding error
  • 2.3.1: static-ffmpeg >= 2.5 now specified
  • 2.3.0: Now uses the official version of whisper ai
  • 2.2.1: "test_" is now prepended to all the different output folder names.
  • 2.2.0: Now explictly setting a language will put the file in a folder with that language name, allowing multi language passes without overwriting.
  • 2.1.2: yt-dlp pinned to new minimum version. Fixes downloading issues from old lib. Adds audio normalization by default.
  • 2.1.1: Updates keywords for easier pypi finding.
  • 2.1.0: Unknown args are now assumed to be for whisper and passed to it as-is. Fixes https://github.com/zackees/transcribe-anything/issues/3
  • 2.0.13: Now works with python 3.9
  • 2.0.12: Adds --device to argument parameters. This will default to CUDA if available, else CPU.
  • 2.0.11: Automatically deletes files in the out directory if they already exist.
  • 2.0.10: fixes local file issue https://github.com/zackees/transcribe-anything/issues/2
  • 2.0.9: fixes sanitization of path names for some youtube videos
  • 2.0.8: fix --output_dir not being respected.
  • 2.0.7: install_cuda.sh -> install_cuda.py
  • 2.0.6: Fixes twitter video fetching. --keep-audio -> --no-keep-audio
  • 2.0.5: Fix bad filename on trailing urls ending with /, adds --keep-audio
  • 2.0.3: GPU support is now added. Run the install_cuda.sh script to enable.
  • 2.0.2: Minor cleanup of file names (no more out.mp3.txt, it's now out.txt)
  • 2.0.1: Fixes missing dependencies and adds whisper option.
  • 2.0.0: New! Now a front end for Whisper ai!

Project details


Release history Release notifications | RSS feed

This version

2.3.4

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

transcribe-anything-2.3.4.tar.gz (15.7 kB view details)

Uploaded Source

Built Distributions

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

transcribe_anything-2.3.4-py3-none-any.whl (33.9 kB view details)

Uploaded Python 3

transcribe_anything-2.3.4-py2.py3-none-any.whl (12.6 kB view details)

Uploaded Python 2Python 3

File details

Details for the file transcribe-anything-2.3.4.tar.gz.

File metadata

  • Download URL: transcribe-anything-2.3.4.tar.gz
  • Upload date:
  • Size: 15.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for transcribe-anything-2.3.4.tar.gz
Algorithm Hash digest
SHA256 abf33a6e8aed5777fe22d7e271a94fee6e212c129987139e75488e1f1b39c837
MD5 30ea03b483d0f1a57f76c2293b7e6432
BLAKE2b-256 8cac5b756623bde0cf03d8773b71ddac9a4862b20dad663a15af9448869cd314

See more details on using hashes here.

File details

Details for the file transcribe_anything-2.3.4-py3-none-any.whl.

File metadata

File hashes

Hashes for transcribe_anything-2.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 d7401dd9837ab072279d09b05380b27cdaa8d02886cad2c879f6754cc1498fa3
MD5 92cb7d0977adb46fd5904601588ffd92
BLAKE2b-256 bb5762c46b4633765df972a5193b25022e2e06c6767ec34c0c968d89277a9665

See more details on using hashes here.

File details

Details for the file transcribe_anything-2.3.4-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for transcribe_anything-2.3.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 356c26895622cb1efe036a99aee2701ba504b0164f430d40fa1bba5291e92936
MD5 9fc037a1e5da95bb3588f9e3a731ce62
BLAKE2b-256 a64ad97bb41596d53516bbb3f38ae151375e87c3f83ecb84d7e89ffd0d906e90

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