Skribify is a powerful transcription and summarization tool that leverages the power of OpenAI's GPT-3.5 or GPT4 and WhisperAI to generate concise summaries from video or audio content. With support for local files, Skribify makes it easy to extract valuable insights from your media files.
- Features
- Installation
- Usage
- Command Line Interface
- Example: get_transcript.py
- Contributing
- License
- Transcribe and summarize video or audio content.
- Supports local files.
- Customizable summarization prompts.
- Detailed logging for debugging and tracking progress.
-
Clone this repository:
git clone https://github.com/jfalnes/Skribify.git
-
Install the required dependencies:
pip install -r requirements.txt
2b. Install as a package:
pip install git+https://github.com/jfalnes/Skribify.git
-
Set up your OpenAI API key:
-
Skribify uses GPT4, if you do not have a GPT4 API key, you can request access to the beta here.
- If you don't have a key, there is an option to use GPT-3.5 instead. (Not recommended)
-
Obtain an OpenAI API key from OpenAI
-
Create a .env file in the Skribify/ directory and add your API key as follows:
TOKEN=your_openai_api_key
-
-
Set up your Google API key:
- Follow the prompt to open https://www.google.com/device in your web browser.
- Enter the code provided by the script (e.g., "DBTH-BTYV") on the webpage and authenticate your account.
- Return to the terminal and press enter to continue the script.
-
Install FFMPEG:
- Skribify requires FFMPEG for audio chunking to work. Ensure that FFMPEG is installed on your machine.
- You can download FFMPEG from the official website here and follow the instructions to install based on your operating system.
- Confirm that FFMPEG is successfully installed by running the command
ffmpeg
in your terminal/cmd. If it's correctly installed, you should see a response with version information and a list of configurations.
Larger videos may not work with GPT 3.5, and you may need access to GPT-4 for larger transcriptions. If you're using files that exceed 25MB, they will be segmented into chunks and sequentially processed. This means that while it's possible to work with larger files, it is highly recommended to maintain a single file size under 25MB. This is because the Whisper API, responsible for transcription in Skribify, can process a smaller, singular file more effectively without the potential complications that can arise from chunked processing.
Skribify can be used from the command line by providing the required arguments:
--file
,-f
: Path of the local video or audio file to transcribe and summarize.--prompt
,-p
: Custom prompt for the summarization or path to a file containing the prompt (default: "Summarize the following text: ")--transcribe
,-t
: Transcribe only the video or audio file, and make no changes.--model
,-
: Specify model. Default GPT-4.--version
,-v
: Check Skribify version.--help
,-h
: Show help message and exit.
python Skribify.py --file path/to/your/video_or_audio_file
You can use the --prompt
argument to provide a custom prompt for the summarization, either as a direct string or by specifying the path to a file containing the prompt.
You can also use Skribify in your Python script as follows:
from Skribify import Skribify
def handle_transcription(transcription):
# Logic to handle the transcription
file = "<local-file'
prompt = "Summarize the following text: "
with Skribify(callback=handle_transcription, prompt=prompt, ) as skribify:
skribify.loop.run_until_complete(skribify.run())
py .\Skribify.py --f '<local-file> --prompt 'Summarize the following text: ' -m 'gpt-3.5-turbo'
Note: Always enclose the filename
in single quotes (''
).
The text discusses elephants and highlights their impressively long fronts as a cool feature.
We welcome contributions! Please feel free to submit a pull request for new features, bug fixes, or improvements.
Skribify is released under the GNU General Public License v3.0. See LICENSE for more information.