Skip to content

Discord bot designed to record, transcribe, and summarize meetings held in voice channels

License

Notifications You must be signed in to change notification settings

Solvro/weekly-transcription-bot

Repository files navigation

Weekly Transcription Bot

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.

Features

  • 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.

Setup

Prerequisites

  • Node.js
  • Discord bot token
  • OpenAI API key

Installation

  1. Clone the repository:

    git clone https://github.com/Solvro/weekly-transcription-bot.git
    cd weekly-transcription-bot
  2. Install the required packages:

    npm install
  3. 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>
  4. Invite the bot:

    https://discord.com/oauth2/authorize?client_id=<your-discord-app-client-id>&permissions=3147776&scope=bot%20applications.commands
  5. Start the bot:

    npm run start

Docker

You can also run the bot using Docker.

  1. Build the Docker image:

    docker build -t weekly-transcription-bot .
  2. Run the Docker container:

    docker run -d --name weekly-transcription-bot --env-file .env weekly-transcription-bot

Configuration

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.

Usage

Run the bot:

npm run start

Commands

/meeting start

Starts recording audio from the voice channel.

  • name: The name of the meeting (required)

/meeting stop

Stops recording audio from the voice channel, transcribes, and summarizes the meeting.

/meeting list

Lists all recorded meetings.

/meeting delete

Deletes a meeting or its recordings.

  • what: What to delete (recording or meeting) (required)
  • name: The name of the meeting (required)

/meeting send

Sends the recording, transcription or summary of a meeting.

  • what: What to send (recording | transcription | summary) (required)
  • name: The name of the meeting (required)

Generated by GitHub Copilot because I'm too lazy to write this

About

Discord bot designed to record, transcribe, and summarize meetings held in voice channels

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published