ScribeIt! is a web application that allows you to transcribe videos and download the subtitles for free. Powered by OpenAI's Whisper.
After a video is uploaded on the client:
- The video gets sent to the server for processing.
- On the server, the video is first converted to audio format using
ffmpeg. - After the conversion, the audio is passed to the Whisper model to transcribe.
- The transcription result is stored in the
Rediscache, before being fetched by the client to display.
For real-time updates on the status of the transcription, the server communicates with the client using Pusher events.
scribeit-demo.mov
The following contains the steps required to get the application up and running on your local workspace.
The following packages must be installed on your PC:
- Node v22.2.0
- yarn v1.22.19
- Git v2.39.3
- Python v3.9.14
- ffmpeg v7.0.1
You also need secrets from the following providers to continue. To see the exact secrets you need, check the .env.sample files in the backend and frontend folders:
- Redis: You can run the server by installing Redis locally, or using Redis Cloud.
- Pusher: Get started by creating an account on Pusher.com and creating a Channels app.
To run the app locally, follow the steps below:
-
Clone the repository to your PC using your terminal. For more info, refer to this article.
-
After cloning, navigate into the repo using the command:
cd scribeit -
Make sure you have Docker Desktop up and running on your PC.
-
Setup the project using the command:
./bin/setup -
Once the command above runs, a new
.envfile will be generated at the root of both thebackendandfrontendfolders. Configure your environment variables with your values in thebackend/.envandfrontend/.envfiles. -
Run the app using the command:
./bin/start
To run the app locally, follow the steps below:
-
Clone the repository to your PC using your terminal. For more info, refer to this article.
-
After cloning, navigate into the repo using the command:
cd scribeit -
At the root of the repo, install the dependencies in the
package.jsonusing the command:yarn install -
After the dependencies have been installed successfully, create the virtual environment using the command:
./bin/create-venv -
After creating the virtual environment, activate it using the command:
source backend/.venv/bin/activate -
Once you are in the virtual environment, you can setup the project using the command:
./bin/setup-no-docker -
Once the command above runs, a new
.envfile will be generated at the root of both thebackendandfrontendfolders. Configure your environment variables with your values in thebackend/.envandfrontend/.envfiles. -
After adding the environment variables, run the app in your terminal using the command:
source backend/.venv/bin/activate && ./bin/start-no-docker
PS: If the virtual environment is already activated, you can simply use the ./bin/start command to run the app.