elevenlabs-srt-generator


Nameelevenlabs-srt-generator JSON
Version 1.2.0 PyPI version JSON
download
home_pagehttps://github.com/preangelleo/script-force-alignment
SummaryGenerate synchronized SRT subtitles using ElevenLabs Force Alignment API with AI-powered semantic segmentation
upload_time2025-08-13 02:39:05
maintainerNone
docs_urlNone
authorScript Force Alignment Contributors
requires_python>=3.7
licenseMIT
keywords subtitles srt elevenlabs force-alignment speech-to-text transcription ai gemini bilingual
VCS
bugtrack_url
requirements requests python-dotenv google-generativeai pytest pytest-cov black flake8
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ElevenLabs Force Alignment SRT Generator

🎬 A powerful Python tool for generating synchronized SRT subtitles using ElevenLabs Force Alignment API with optional AI-powered semantic segmentation.

## ✨ Features

- **High-Precision Alignment**: Uses ElevenLabs Force Alignment API for accurate word-level timing
- **AI Semantic Segmentation**: Leverages Google Gemini for intelligent subtitle breaking
- **Bilingual Support**: Automatically generates bilingual subtitles (original + translation)
- **Multi-Language**: Supports 99+ languages including Chinese, English, Japanese, Korean, etc.
- **Smart Formatting**: Removes punctuation and optimizes line breaks for readability
- **Flexible Output**: Configurable character limits and segmentation strategies

## πŸš€ Quick Start

### Prerequisites

- Python 3.7+
- ElevenLabs API key ([Get one here](https://elevenlabs.io/))
- Google Gemini API key ([Get one here](https://makersuite.google.com/app/apikey)) - Optional for semantic segmentation

### Installation

#### Option 1: Install from PyPI (Recommended)
```bash
pip install elevenlabs-srt-generator
```

#### Option 2: Install from Source
```bash
git clone https://github.com/preangelleo/script-force-alignment.git
cd script-force-alignment
pip install -r requirements.txt
```

## πŸ“– Usage

### Method 1: Using the SRTGenerator Class (Recommended)

The new class-based approach allows you to pass API keys directly without managing environment files:

```python
from script_force_alignment import SRTGenerator

# Initialize the generator with API keys
generator = SRTGenerator(
    elevenlabs_api_key="your_elevenlabs_key",
    gemini_api_key="your_gemini_key"  # Optional for semantic segmentation
)

# Generate subtitles
success, result = generator.generate(
    audio_file="path/to/audio.mp3",
    text="Your transcript text here",
    output_file="output/subtitles.srt",
    max_chars_per_line=20,
    language='chinese',
    use_semantic_segmentation=True,
    model='gemini-2.0-flash'  # Optional: specify Gemini model
)

if success:
    print(f"Subtitles saved to: {result}")
```

### Method 2: Command Line Interface

After installing from PyPI, you can use the CLI directly:

```bash
# Basic usage
elevenlabs-srt audio.mp3 "Your transcript text" -o output.srt

# With options
elevenlabs-srt audio.mp3 transcript.txt \
  --output subtitles.srt \
  --max-chars 30 \
  --language chinese \
  --no-semantic  # Disable AI segmentation
  --system-prompt custom_prompt.txt  # Use custom system prompt
```

### Method 3: Legacy Function Interface

For backward compatibility, you can still use the original function with environment variables:

```python
# Requires ELEVENLABS_API_KEY and GEMINI_API_KEY in .env file
from script_force_alignment import elevenlabs_force_alignment_to_srt

success, result = elevenlabs_force_alignment_to_srt(
    audio_file="path/to/audio.mp3",
    input_text="Your transcript text here",
    output_filepath="output/subtitles.srt"
)
```

### Using the Example Script

Edit `example_usage.py` with your API keys and parameters:

```python
# API Keys (required)
ELEVENLABS_API_KEY = "your_elevenlabs_api_key_here"
GEMINI_API_KEY = "your_gemini_api_key_here"  # Optional

# Audio and text configuration
AUDIO_FILE = "./samples/your_audio.mp3"
TEXT_CONTENT = "Your transcript here..."
OUTPUT_FILE = "./output/subtitles.srt"
```

Then run:
```bash
python example_usage.py
```

### Running Tests

The test script allows you to compare semantic vs simple segmentation:

```bash
python test.py
```

## 🎨 Custom System Prompt

The tool uses an AI system prompt to guide subtitle generation. You can customize this in three ways:

### 1. Modify the Default Prompt File
Edit `system_prompt.txt` to change the default behavior globally.

### 2. Pass Custom Prompt to SRTGenerator
```python
# Load custom prompt from file
with open('my_custom_prompt.txt', 'r') as f:
    custom_prompt = f.read()

generator = SRTGenerator(
    elevenlabs_api_key="key",
    gemini_api_key="key",
    system_prompt=custom_prompt  # Use custom prompt
)
```

### 3. Override Per Generation Call
```python
generator.generate(
    audio_file="audio.mp3",
    text="transcript",
    output_file="output.srt",
    system_prompt="Your custom prompt with {max_chars_per_line} and {words_json}"
)
```

### System Prompt Placeholders
Your custom prompt must include these placeholders:
- `{max_chars_per_line}` - Will be replaced with the character limit
- `{words_json}` - Will be replaced with the word timing data

## πŸ”§ API Configuration

### Option 1: Pass API Keys Directly (Recommended)
```python
generator = SRTGenerator(
    elevenlabs_api_key="your_key",
    gemini_api_key="your_key"
)
```

### Option 2: Use Environment Variables
Create a `.env` file with:
```env
ELEVENLABS_API_KEY=your_elevenlabs_api_key_here
GEMINI_API_KEY=your_gemini_api_key_here
```

### Getting API Keys

1. **ElevenLabs API Key**:
   - Sign up at [ElevenLabs](https://elevenlabs.io/)
   - Go to your profile settings
   - Copy your API key
   - **Important**: Enable the Force Alignment feature in your API settings (it's disabled by default)

2. **Google Gemini API Key**:
   - Visit [Google AI Studio](https://makersuite.google.com/app/apikey)
   - Create a new API key
   - Enable the Gemini API

## πŸ“ API Reference

### SRTGenerator Class

```python
class SRTGenerator:
    def __init__(
        elevenlabs_api_key: str,
        gemini_api_key: Optional[str] = None,
        default_model: str = 'gemini-2.0-flash',
        system_prompt: Optional[str] = None
    )
```

#### Constructor Parameters
- **elevenlabs_api_key**: ElevenLabs API key (required)
- **gemini_api_key**: Gemini API key (optional, needed for semantic segmentation)
- **default_model**: Default Gemini model to use
- **system_prompt**: Custom system prompt for AI segmentation

#### Generate Method

```python
def generate(
    audio_file: str,
    text: str,
    output_file: str,
    max_chars_per_line: int = 20,
    language: str = 'chinese',
    use_semantic_segmentation: bool = True,
    model: Optional[str] = None,
    system_prompt: Optional[str] = None
) -> Tuple[bool, str]
```

### Legacy Function

```python
elevenlabs_force_alignment_to_srt(
    audio_file: str,
    input_text: str,
    output_filepath: str,
    api_key: str = None,
    max_chars_per_line: int = 20,
    language: str = 'chinese',
    use_semantic_segmentation: bool = True,
    model: str = None,
    system_prompt: str = None
) -> Tuple[bool, str]
```

### Parameters

- **audio_file**: Path to audio file (MP3, WAV, M4A, OGG, FLAC, etc.)
- **input_text**: Exact transcript of the audio content
- **output_filepath**: Where to save the SRT file
- **api_key**: Optional ElevenLabs API key (overrides .env)
- **max_chars_per_line**: Maximum characters per subtitle line
- **language**: Language of the content (e.g., 'chinese', 'english')
- **use_semantic_segmentation**: Enable AI-powered semantic breaking
- **model**: Gemini model to use (default: 'gemini-2.0-flash'). Options:
  - `'gemini-2.0-flash'`: Fast and efficient (default)
  - `'gemini-2.0-flash-exp'`: Experimental features
  - `'gemini-1.5-pro'`: Higher quality output
  - `'gemini-2.0-flash-thinking'`: Complex reasoning

### Returns

- **Tuple[bool, str]**: (Success status, Output path or error message)

## 🎯 Features Comparison

| Feature | Semantic Segmentation | Simple Segmentation |
|---------|----------------------|-------------------|
| Natural breaks | βœ… Yes | ❌ No |
| Bilingual support | βœ… Yes | ❌ No |
| AI-powered | βœ… Yes | ❌ No |
| Processing time | ~3-5s | ~1-2s |
| Quality | High | Basic |

## 🌍 Supported Languages

The tool supports 99+ languages including:
- Chinese (Simplified & Traditional)
- English
- Japanese
- Korean
- Spanish
- French
- German
- Russian
- Arabic
- Hindi
- And many more...

## πŸ“Š Output Format

The tool generates standard SRT format:

```srt
1
00:00:00,123 --> 00:00:02,456
θΏ™ζ˜―η¬¬δΈ€θ‘Œε­—εΉ•
This is the first subtitle

2
00:00:02,456 --> 00:00:05,789
θΏ™ζ˜―η¬¬δΊŒθ‘Œε­—εΉ•
This is the second subtitle
```

## πŸ” Troubleshooting

### Common Issues

1. **API Key Errors**:
   - Ensure your API keys are valid
   - Check that .env file is in the correct location
   - Verify keys don't have extra spaces

2. **Audio File Issues**:
   - Maximum file size: 1GB
   - Supported formats: MP3, WAV, M4A, OGG, FLAC, AAC, OPUS, MP4
   - Ensure file path is correct

3. **Text Alignment Issues**:
   - Text must match audio content exactly
   - Remove extra spaces or formatting
   - Check language setting matches audio

### Debug Mode

Enable detailed logging by setting environment variable:
```bash
export DEBUG=true
python example_usage.py
```

## 🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

## πŸ“„ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## πŸ™ Acknowledgments

- [ElevenLabs](https://elevenlabs.io/) for the Force Alignment API
- [Google Gemini](https://deepmind.google/technologies/gemini/) for AI semantic analysis
- Community contributors

## πŸ“§ Support

For issues, questions, or suggestions:
- Open an issue on GitHub
- Contact: your-email@example.com

## 🚦 Project Status

![Python](https://img.shields.io/badge/python-3.7+-blue.svg)
![License](https://img.shields.io/badge/license-MIT-green.svg)
![API](https://img.shields.io/badge/API-ElevenLabs-orange.svg)
![AI](https://img.shields.io/badge/AI-Gemini-purple.svg)

---

Made with ❀️ for the subtitle generation community

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/preangelleo/script-force-alignment",
    "name": "elevenlabs-srt-generator",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "subtitles, srt, elevenlabs, force-alignment, speech-to-text, transcription, ai, gemini, bilingual",
    "author": "Script Force Alignment Contributors",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/bf/da/b0a4658032873ef5a9dc60191a8ba4a72d9f9e63775b0880145a0b0097ae/elevenlabs_srt_generator-1.2.0.tar.gz",
    "platform": null,
    "description": "# ElevenLabs Force Alignment SRT Generator\n\n\ud83c\udfac A powerful Python tool for generating synchronized SRT subtitles using ElevenLabs Force Alignment API with optional AI-powered semantic segmentation.\n\n## \u2728 Features\n\n- **High-Precision Alignment**: Uses ElevenLabs Force Alignment API for accurate word-level timing\n- **AI Semantic Segmentation**: Leverages Google Gemini for intelligent subtitle breaking\n- **Bilingual Support**: Automatically generates bilingual subtitles (original + translation)\n- **Multi-Language**: Supports 99+ languages including Chinese, English, Japanese, Korean, etc.\n- **Smart Formatting**: Removes punctuation and optimizes line breaks for readability\n- **Flexible Output**: Configurable character limits and segmentation strategies\n\n## \ud83d\ude80 Quick Start\n\n### Prerequisites\n\n- Python 3.7+\n- ElevenLabs API key ([Get one here](https://elevenlabs.io/))\n- Google Gemini API key ([Get one here](https://makersuite.google.com/app/apikey)) - Optional for semantic segmentation\n\n### Installation\n\n#### Option 1: Install from PyPI (Recommended)\n```bash\npip install elevenlabs-srt-generator\n```\n\n#### Option 2: Install from Source\n```bash\ngit clone https://github.com/preangelleo/script-force-alignment.git\ncd script-force-alignment\npip install -r requirements.txt\n```\n\n## \ud83d\udcd6 Usage\n\n### Method 1: Using the SRTGenerator Class (Recommended)\n\nThe new class-based approach allows you to pass API keys directly without managing environment files:\n\n```python\nfrom script_force_alignment import SRTGenerator\n\n# Initialize the generator with API keys\ngenerator = SRTGenerator(\n    elevenlabs_api_key=\"your_elevenlabs_key\",\n    gemini_api_key=\"your_gemini_key\"  # Optional for semantic segmentation\n)\n\n# Generate subtitles\nsuccess, result = generator.generate(\n    audio_file=\"path/to/audio.mp3\",\n    text=\"Your transcript text here\",\n    output_file=\"output/subtitles.srt\",\n    max_chars_per_line=20,\n    language='chinese',\n    use_semantic_segmentation=True,\n    model='gemini-2.0-flash'  # Optional: specify Gemini model\n)\n\nif success:\n    print(f\"Subtitles saved to: {result}\")\n```\n\n### Method 2: Command Line Interface\n\nAfter installing from PyPI, you can use the CLI directly:\n\n```bash\n# Basic usage\nelevenlabs-srt audio.mp3 \"Your transcript text\" -o output.srt\n\n# With options\nelevenlabs-srt audio.mp3 transcript.txt \\\n  --output subtitles.srt \\\n  --max-chars 30 \\\n  --language chinese \\\n  --no-semantic  # Disable AI segmentation\n  --system-prompt custom_prompt.txt  # Use custom system prompt\n```\n\n### Method 3: Legacy Function Interface\n\nFor backward compatibility, you can still use the original function with environment variables:\n\n```python\n# Requires ELEVENLABS_API_KEY and GEMINI_API_KEY in .env file\nfrom script_force_alignment import elevenlabs_force_alignment_to_srt\n\nsuccess, result = elevenlabs_force_alignment_to_srt(\n    audio_file=\"path/to/audio.mp3\",\n    input_text=\"Your transcript text here\",\n    output_filepath=\"output/subtitles.srt\"\n)\n```\n\n### Using the Example Script\n\nEdit `example_usage.py` with your API keys and parameters:\n\n```python\n# API Keys (required)\nELEVENLABS_API_KEY = \"your_elevenlabs_api_key_here\"\nGEMINI_API_KEY = \"your_gemini_api_key_here\"  # Optional\n\n# Audio and text configuration\nAUDIO_FILE = \"./samples/your_audio.mp3\"\nTEXT_CONTENT = \"Your transcript here...\"\nOUTPUT_FILE = \"./output/subtitles.srt\"\n```\n\nThen run:\n```bash\npython example_usage.py\n```\n\n### Running Tests\n\nThe test script allows you to compare semantic vs simple segmentation:\n\n```bash\npython test.py\n```\n\n## \ud83c\udfa8 Custom System Prompt\n\nThe tool uses an AI system prompt to guide subtitle generation. You can customize this in three ways:\n\n### 1. Modify the Default Prompt File\nEdit `system_prompt.txt` to change the default behavior globally.\n\n### 2. Pass Custom Prompt to SRTGenerator\n```python\n# Load custom prompt from file\nwith open('my_custom_prompt.txt', 'r') as f:\n    custom_prompt = f.read()\n\ngenerator = SRTGenerator(\n    elevenlabs_api_key=\"key\",\n    gemini_api_key=\"key\",\n    system_prompt=custom_prompt  # Use custom prompt\n)\n```\n\n### 3. Override Per Generation Call\n```python\ngenerator.generate(\n    audio_file=\"audio.mp3\",\n    text=\"transcript\",\n    output_file=\"output.srt\",\n    system_prompt=\"Your custom prompt with {max_chars_per_line} and {words_json}\"\n)\n```\n\n### System Prompt Placeholders\nYour custom prompt must include these placeholders:\n- `{max_chars_per_line}` - Will be replaced with the character limit\n- `{words_json}` - Will be replaced with the word timing data\n\n## \ud83d\udd27 API Configuration\n\n### Option 1: Pass API Keys Directly (Recommended)\n```python\ngenerator = SRTGenerator(\n    elevenlabs_api_key=\"your_key\",\n    gemini_api_key=\"your_key\"\n)\n```\n\n### Option 2: Use Environment Variables\nCreate a `.env` file with:\n```env\nELEVENLABS_API_KEY=your_elevenlabs_api_key_here\nGEMINI_API_KEY=your_gemini_api_key_here\n```\n\n### Getting API Keys\n\n1. **ElevenLabs API Key**:\n   - Sign up at [ElevenLabs](https://elevenlabs.io/)\n   - Go to your profile settings\n   - Copy your API key\n   - **Important**: Enable the Force Alignment feature in your API settings (it's disabled by default)\n\n2. **Google Gemini API Key**:\n   - Visit [Google AI Studio](https://makersuite.google.com/app/apikey)\n   - Create a new API key\n   - Enable the Gemini API\n\n## \ud83d\udcdd API Reference\n\n### SRTGenerator Class\n\n```python\nclass SRTGenerator:\n    def __init__(\n        elevenlabs_api_key: str,\n        gemini_api_key: Optional[str] = None,\n        default_model: str = 'gemini-2.0-flash',\n        system_prompt: Optional[str] = None\n    )\n```\n\n#### Constructor Parameters\n- **elevenlabs_api_key**: ElevenLabs API key (required)\n- **gemini_api_key**: Gemini API key (optional, needed for semantic segmentation)\n- **default_model**: Default Gemini model to use\n- **system_prompt**: Custom system prompt for AI segmentation\n\n#### Generate Method\n\n```python\ndef generate(\n    audio_file: str,\n    text: str,\n    output_file: str,\n    max_chars_per_line: int = 20,\n    language: str = 'chinese',\n    use_semantic_segmentation: bool = True,\n    model: Optional[str] = None,\n    system_prompt: Optional[str] = None\n) -> Tuple[bool, str]\n```\n\n### Legacy Function\n\n```python\nelevenlabs_force_alignment_to_srt(\n    audio_file: str,\n    input_text: str,\n    output_filepath: str,\n    api_key: str = None,\n    max_chars_per_line: int = 20,\n    language: str = 'chinese',\n    use_semantic_segmentation: bool = True,\n    model: str = None,\n    system_prompt: str = None\n) -> Tuple[bool, str]\n```\n\n### Parameters\n\n- **audio_file**: Path to audio file (MP3, WAV, M4A, OGG, FLAC, etc.)\n- **input_text**: Exact transcript of the audio content\n- **output_filepath**: Where to save the SRT file\n- **api_key**: Optional ElevenLabs API key (overrides .env)\n- **max_chars_per_line**: Maximum characters per subtitle line\n- **language**: Language of the content (e.g., 'chinese', 'english')\n- **use_semantic_segmentation**: Enable AI-powered semantic breaking\n- **model**: Gemini model to use (default: 'gemini-2.0-flash'). Options:\n  - `'gemini-2.0-flash'`: Fast and efficient (default)\n  - `'gemini-2.0-flash-exp'`: Experimental features\n  - `'gemini-1.5-pro'`: Higher quality output\n  - `'gemini-2.0-flash-thinking'`: Complex reasoning\n\n### Returns\n\n- **Tuple[bool, str]**: (Success status, Output path or error message)\n\n## \ud83c\udfaf Features Comparison\n\n| Feature | Semantic Segmentation | Simple Segmentation |\n|---------|----------------------|-------------------|\n| Natural breaks | \u2705 Yes | \u274c No |\n| Bilingual support | \u2705 Yes | \u274c No |\n| AI-powered | \u2705 Yes | \u274c No |\n| Processing time | ~3-5s | ~1-2s |\n| Quality | High | Basic |\n\n## \ud83c\udf0d Supported Languages\n\nThe tool supports 99+ languages including:\n- Chinese (Simplified & Traditional)\n- English\n- Japanese\n- Korean\n- Spanish\n- French\n- German\n- Russian\n- Arabic\n- Hindi\n- And many more...\n\n## \ud83d\udcca Output Format\n\nThe tool generates standard SRT format:\n\n```srt\n1\n00:00:00,123 --> 00:00:02,456\n\u8fd9\u662f\u7b2c\u4e00\u884c\u5b57\u5e55\nThis is the first subtitle\n\n2\n00:00:02,456 --> 00:00:05,789\n\u8fd9\u662f\u7b2c\u4e8c\u884c\u5b57\u5e55\nThis is the second subtitle\n```\n\n## \ud83d\udd0d Troubleshooting\n\n### Common Issues\n\n1. **API Key Errors**:\n   - Ensure your API keys are valid\n   - Check that .env file is in the correct location\n   - Verify keys don't have extra spaces\n\n2. **Audio File Issues**:\n   - Maximum file size: 1GB\n   - Supported formats: MP3, WAV, M4A, OGG, FLAC, AAC, OPUS, MP4\n   - Ensure file path is correct\n\n3. **Text Alignment Issues**:\n   - Text must match audio content exactly\n   - Remove extra spaces or formatting\n   - Check language setting matches audio\n\n### Debug Mode\n\nEnable detailed logging by setting environment variable:\n```bash\nexport DEBUG=true\npython example_usage.py\n```\n\n## \ud83e\udd1d Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83d\ude4f Acknowledgments\n\n- [ElevenLabs](https://elevenlabs.io/) for the Force Alignment API\n- [Google Gemini](https://deepmind.google/technologies/gemini/) for AI semantic analysis\n- Community contributors\n\n## \ud83d\udce7 Support\n\nFor issues, questions, or suggestions:\n- Open an issue on GitHub\n- Contact: your-email@example.com\n\n## \ud83d\udea6 Project Status\n\n![Python](https://img.shields.io/badge/python-3.7+-blue.svg)\n![License](https://img.shields.io/badge/license-MIT-green.svg)\n![API](https://img.shields.io/badge/API-ElevenLabs-orange.svg)\n![AI](https://img.shields.io/badge/AI-Gemini-purple.svg)\n\n---\n\nMade with \u2764\ufe0f for the subtitle generation community\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Generate synchronized SRT subtitles using ElevenLabs Force Alignment API with AI-powered semantic segmentation",
    "version": "1.2.0",
    "project_urls": {
        "Documentation": "https://github.com/preangelleo/script-force-alignment#readme",
        "Homepage": "https://github.com/preangelleo/script-force-alignment",
        "Issues": "https://github.com/preangelleo/script-force-alignment/issues",
        "Repository": "https://github.com/preangelleo/script-force-alignment"
    },
    "split_keywords": [
        "subtitles",
        " srt",
        " elevenlabs",
        " force-alignment",
        " speech-to-text",
        " transcription",
        " ai",
        " gemini",
        " bilingual"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3d98bbb2447c1a0e583c486718c945c8ab44897bf50a8d250895eb1c4867ca44",
                "md5": "18175e1ab7f43714c365796f7ed19ff4",
                "sha256": "a33d69b74640e90fe1b384512b3a7281d4234192257c490eb1e97363851df3d0"
            },
            "downloads": -1,
            "filename": "elevenlabs_srt_generator-1.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "18175e1ab7f43714c365796f7ed19ff4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 15186,
            "upload_time": "2025-08-13T02:39:04",
            "upload_time_iso_8601": "2025-08-13T02:39:04.080225Z",
            "url": "https://files.pythonhosted.org/packages/3d/98/bbb2447c1a0e583c486718c945c8ab44897bf50a8d250895eb1c4867ca44/elevenlabs_srt_generator-1.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bfdab0a4658032873ef5a9dc60191a8ba4a72d9f9e63775b0880145a0b0097ae",
                "md5": "51cd47553c82b288853c8a53432298df",
                "sha256": "e7ddb2c9ac061a29d6dcf39e647f0b1c075a0ca5b38041fb711fa736c95afea1"
            },
            "downloads": -1,
            "filename": "elevenlabs_srt_generator-1.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "51cd47553c82b288853c8a53432298df",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 21487,
            "upload_time": "2025-08-13T02:39:05",
            "upload_time_iso_8601": "2025-08-13T02:39:05.435714Z",
            "url": "https://files.pythonhosted.org/packages/bf/da/b0a4658032873ef5a9dc60191a8ba4a72d9f9e63775b0880145a0b0097ae/elevenlabs_srt_generator-1.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-13 02:39:05",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "preangelleo",
    "github_project": "script-force-alignment",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "requests",
            "specs": [
                [
                    ">=",
                    "2.31.0"
                ]
            ]
        },
        {
            "name": "python-dotenv",
            "specs": [
                [
                    ">=",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "google-generativeai",
            "specs": [
                [
                    ">=",
                    "0.8.0"
                ]
            ]
        },
        {
            "name": "pytest",
            "specs": [
                [
                    ">=",
                    "7.4.0"
                ]
            ]
        },
        {
            "name": "pytest-cov",
            "specs": [
                [
                    ">=",
                    "4.1.0"
                ]
            ]
        },
        {
            "name": "black",
            "specs": [
                [
                    ">=",
                    "23.0.0"
                ]
            ]
        },
        {
            "name": "flake8",
            "specs": [
                [
                    ">=",
                    "6.0.0"
                ]
            ]
        }
    ],
    "lcname": "elevenlabs-srt-generator"
}
        
Elapsed time: 0.45993s