{"id":28136859,"url":"https://github.com/namastexlabs/whisperx-api","last_synced_at":"2025-05-14T16:20:54.488Z","repository":{"id":191102054,"uuid":"683920121","full_name":"namastexlabs/whisperx-api","owner":"namastexlabs","description":"Whisperx API implementation","archived":false,"fork":false,"pushed_at":"2024-05-03T06:02:32.000Z","size":17457,"stargazers_count":27,"open_issues_count":0,"forks_count":7,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-10T16:11:17.686Z","etag":null,"topics":["ai","api","text-to-speech","transcription","tts","whisper"],"latest_commit_sha":null,"homepage":"https://whisperx.namastex.io/docs","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/namastexlabs.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-28T04:19:41.000Z","updated_at":"2025-04-15T23:21:18.000Z","dependencies_parsed_at":"2024-05-03T06:26:04.884Z","dependency_job_id":"bfd45441-bffa-4fc8-a8f2-b90246d6b2a7","html_url":"https://github.com/namastexlabs/whisperx-api","commit_stats":null,"previous_names":["namastexlabs/whisperex-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/namastexlabs%2Fwhisperx-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/namastexlabs%2Fwhisperx-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/namastexlabs%2Fwhisperx-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/namastexlabs%2Fwhisperx-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/namastexlabs","download_url":"https://codeload.github.com/namastexlabs/whisperx-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254179894,"owners_count":22027884,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","api","text-to-speech","transcription","tts","whisper"],"created_at":"2025-05-14T16:20:20.337Z","updated_at":"2025-05-14T16:20:54.478Z","avatar_url":"https://github.com/namastexlabs.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Whisperx API Wrapper\r\n\r\nAn API Wrapper for [Whisperx Library](https://github.com/m-bain/whisperX)\r\n\r\n## Overview\r\n\r\nThis is a FastAPI application that provides an endpoint for video/audio transcription using the `whisperx` command. The application supports multiple audio and video formats. It performs the transcription, alignment, and diarization of the uploaded media files.\r\n\r\n## Features\r\n\r\n- User Authentication with JWT\r\n- Support for multiple audio and video formats\r\n- Diarization support\r\n- Customizable language and model settings\r\n\r\n## Requirements\r\n\r\n- whisperx\r\n- Python 3.8+\r\n- FastAPI\r\n- ffmpeg\r\n- SQLite\r\n- pyjwt\r\n- dotenv\r\n\r\nFollow the instructions on how to install Whisperx [in the official repository](https://github.com/m-bain/whisperX#3-install-this-repo)\r\nYou can install these dependencies using the `requirements.txt` file:\r\n\r\n```bash\r\npip install -r requirements.txt\r\n```\r\n\r\n## Environment Variables\r\n\r\nCreate a `.env` file in your root directory and add the following variables:\r\n\r\n```env\r\nSECRET_KEY=your_secret_key\r\nMASTER_KEY=your_master_key\r\nHUGGING_FACE_TOKEN=your_hugging_face_token\r\nAPI_PORT=11300\r\n```\r\n\r\n## Database Setup\r\n\r\nSQLite is used for storing user information. The database is created automatically when the application runs.\r\n\r\n## Running the Application\r\n\r\nRun the application using:\r\n\r\n```bash\r\npython api_whisperx.py\r\n```\r\n\r\nReplace `main` with the name of your Python file if it's not `main.py`.\r\n\r\n## API Endpoints\r\n\r\n### POST `/auth`\r\n\r\nAuthenticate a user and return a JWT token.\r\n\r\n- `username`: The username of the user.\r\n- `password`: The password of the user.\r\n\r\n### POST `/create_user`\r\n\r\nCreate a new user.\r\n\r\n- `username`: Desired username.\r\n- `password`: Desired password.\r\n- `master_key`: Master key for authorized user creation.\r\n\r\n### POST `/whisperx-transcribe/`\r\n\r\nTranscribe an uploaded audio or video file.\r\n\r\n- `file`: The audio or video file to transcribe.\r\n- `lang`: Language for transcription (default is \"pt\").\r\n- `model`: Model to use for transcription (default is \"large-v2\").\r\n- `min_speakers`: Minimum number of speakers for diarization (default is 1).\r\n- `max_speakers`: Maximum number of speakers for diarization (default is 2).\r\n\r\n## Logging\r\n\r\nThe application has built-in logging that informs about the steps being performed and any errors that occur.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnamastexlabs%2Fwhisperx-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnamastexlabs%2Fwhisperx-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnamastexlabs%2Fwhisperx-api/lists"}