Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aschmelyun/subvert
Generate subtitles, summaries, and chapters from videos in seconds
https://github.com/aschmelyun/subvert
chatgpt openai transcription translation video-editing whisper
Last synced: 3 days ago
JSON representation
Generate subtitles, summaries, and chapters from videos in seconds
- Host: GitHub
- URL: https://github.com/aschmelyun/subvert
- Owner: aschmelyun
- License: mit
- Created: 2023-03-22T21:07:46.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-15T05:47:52.000Z (11 days ago)
- Last Synced: 2025-01-15T16:35:28.778Z (10 days ago)
- Topics: chatgpt, openai, transcription, translation, video-editing, whisper
- Language: PHP
- Homepage: https://subvert.dev
- Size: 1.3 MB
- Stars: 822
- Watchers: 6
- Forks: 57
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
- awesome-ChatGPT-repositories - subvert - Generate subtitles, summaries, and chapters from videos in seconds (Openai)
- awesome-chatgpt - aschmelyun/subvert - Generate subtitles, summaries, and chapters from videos using OpenAI's ChatGPT model in a desktop client (ChatGPT-based applications / Other sdk/libraries)
README
# Subvert
![Docker Semver](https://img.shields.io/docker/v/aschmelyun/subvert?style=flat-square)
![Docker Pulls](https://img.shields.io/docker/pulls/aschmelyun/subvert?label=pulls&style=flat-square)Generate subtitles, chapters, and summaries of videos in seconds with the help of OpenAI.
🚧 This is very much a work-in-progress, please [create issues](https://github.com/aschmelyun/subvert/issues/new) for bugs if they appear 🚧
![Demo gif of Subvert converting a video](media/subvert-demo.gif)
## Getting started
You'll need:
- [Docker installed](https://docs.docker.com/get-docker/) on your local machine
- An [OpenAI API key](https://platform.openai.com/account/api-keys)Subvert is self-contained in a single Docker image and can be started with a one-line command:
```
docker run -it -p 80:8080 -e OPENAI_API_KEY=sk-123abc aschmelyun/subvert
```This will boot up a server running the application and make it available to your machine at http://localhost.
## How it works
After selecting a video file to process, you have the option of choosing whether you also want to generate chapters and a summary.
Your video is sent to an API where the audio is extracted from it using FFMpeg, and then sent to **OpenAI's Whisper model** for transcription into the common vtt format.
If you chose to select chapters or a summary, that transcript is then sent to a **ChatGPT model** for processing into concise chapters of the length you wanted, and a brief summary that would fit in something like a YouTube description.
## Configuration
You can adjust a few parameters in the container by passing in [environment variables](https://docs.docker.com/engine/reference/commandline/run/#env) with your command using additional `-e` flags. Here are the current ones you can add:
- `OPENAI_API_KEY` **(required)** - Sets the key responsible for communication with OpenAI's APIs. No default.
- `UPLOAD_MAX_FILESIZE` - Changes PHP's UPLOAD_MAX_FILESIZE setting. Default: `256M`
- `MEMORY_LIMIT` - Changes PHP's MEMORY_LIMIT setting. Default: `512M`## Starting from source
Alternative, if you have **PHP 8.1+** and **npm** installed on your local machine, you can boot the application up directly from the source code instead.
First, check out this repo to your desired location. Then, navigate to the `src` directory and run:
```
./startup.sh
```Alternatively, you can run the commands inside of the `startup.sh` script individually for the same result.
## Deploying
Because this project is contained in a single Dockerfile, it can be deployed immediately to any server provisioned with Docker. Alternatively, the Subvert Docker image can be ran on cloud instances via AWS, Azure, GCP, Fly.io, etc.
> Note: This image currently only exposes the insecure :80 http port.
## License
The MIT License (MIT). Please see [License File](LICENSE.md)