This project is a Discord bot designed to record, transcribe, and summarize weekly meetings held in voice channels. The bot uses the OpenAI API for transcription and summarization.
- Record Meetings: Start and stop recording meetings in a voice channel.
- Transcription: Automatically transcribe recorded audio files.
- Summarization: Generate detailed summaries of transcriptions.
- Meeting Management: List and delete meetings and recordings.
- Permission Control: Restrict commands to specific roles.
- Node.js
- Discord bot token
- OpenAI API key
-
Clone the repository:
git clone https://github.com/Solvro/weekly-transcription-bot.git cd weekly-transcription-bot
-
Install the required packages:
npm install
-
Create a
.env
file in the root directory and add your credentials:TOKEN=<your-discord-bot-token> CLIENT_ID=<your-discord-app-client-id> GUILD_ID=<your-guild-id> OPENAI_API_KEY=<your-openai-api-key>
-
Invite the bot:
https://discord.com/oauth2/authorize?client_id=<your-discord-app-client-id>&permissions=3147776&scope=bot%20applications.commands
-
Start the bot:
npm run start
You can also run the bot using Docker.
-
Build the Docker image:
docker build -t weekly-transcription-bot .
-
Run the Docker container:
docker run -d --name weekly-transcription-bot --env-file .env weekly-transcription-bot
The bot's configuration is stored in the config.json
file. You can customize various settings, including the transcription and summary models, allowed roles, and system messages.
Run the bot:
npm run start
Starts recording audio from the voice channel.
- name: The name of the meeting (required)
Stops recording audio from the voice channel, transcribes, and summarizes the meeting.
Lists all recorded meetings.
Deletes a meeting or its recordings.
- what: What to delete (
recording
ormeeting
) (required) - name: The name of the meeting (required)
Sends the recording, transcription or summary of a meeting.
- what: What to send (
recording
|transcription
|summary
) (required) - name: The name of the meeting (required)