livestream-splitter


Namelivestream-splitter JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://github.com/manfromtunis/livestream-splitter
SummarySplit long livestream recordings into YouTube-friendly segments with CLI and Web UI
upload_time2025-07-20 22:33:02
maintainerNone
docs_urlNone
authorBakchich SAS
requires_python>=3.8
licenseMIT
keywords livestream video splitting ffmpeg youtube content creation
VCS
bugtrack_url
requirements click ffmpeg-python pydantic pyyaml tqdm fastapi uvicorn python-multipart pytest pytest-cov black flake8 mypy opencv-python numpy
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Livestream Splitter

A powerful tool to split long livestream recordings into digestible segments with customizable intro and outro sequences. Perfect for Kick streamers and content creators who want to repurpose their long-form content for different platforms.

## ✨ Features

- **Automatic Video Splitting**: Split videos into segments with configurable maximum duration (default: 20 minutes)
- **Intro/Outro Integration**: Add custom intro and outro videos to each segment
- **Multiple Format Support**: Works with MP4, MKV, AVI, MOV, FLV, WEBM, and TS files
- **Smart File Naming**: Configurable naming patterns with date and segment numbering
- **Quality Control**: Adjustable output quality and codec settings
- **Progress Tracking**: Real-time progress bars and detailed logging
- **Configuration Files**: Save and reuse processing configurations
- **Cross-Platform**: Works on Windows, macOS, and Linux

## 🚀 Quick Start

### Installation

#### Option 1: Install from PyPI (Recommended)

**Prerequisites**: Make sure [FFmpeg](https://ffmpeg.org/download.html) is installed on your system:
```bash
# Ubuntu/Debian
sudo apt install ffmpeg

# macOS
brew install ffmpeg

# Windows: Download from https://ffmpeg.org/download.html
```

**Install the package**:
```bash
# Install core functionality
pip install livestream-splitter

# Or install with web UI support
pip install livestream-splitter[web]

# Or install with all optional features
pip install livestream-splitter[all]
```

#### Option 2: Install from Source

1. **Install system dependencies**:
   ```bash
   # Ubuntu/Debian
   sudo apt install ffmpeg python3.12-venv
   
   # macOS
   brew install ffmpeg
   
   # Windows
   # Download FFmpeg from https://ffmpeg.org/download.html
   ```

2. **Set up the project**:
   ```bash
   # Clone the repository
   git clone <repository-url>
   cd livestream-splitter
   
   # Create virtual environment
   python3 -m venv venv
   source venv/bin/activate  # On Windows: venv\Scripts\activate
   
   # Install dependencies
   pip install -r requirements.txt
   ```

3. **Verify installation**:
   ```bash
   # Check FFmpeg
   ffmpeg -version
   
   # Test CLI (if installed from PyPI)
   stream-splitter --help
   
   # Test CLI (if installed from source)
   python -m src.stream_splitter.cli --help
   ```

### Basic Usage

Split a video into 20-minute segments:
```bash
stream-splitter my_livestream.mp4
```

With custom output directory and segment length:
```bash
stream-splitter my_livestream.mp4 -o segments/ -l 15m
```

Add intro and outro to each segment:
```bash
stream-splitter my_livestream.mp4 --intro intro.mp4 --outro outro.mp4
```

## 📖 Detailed Usage

### Command Line Options

```bash
stream-splitter [OPTIONS] INPUT_FILE

Options:
  -o, --output-dir PATH       Output directory for segments [default: ./segments]
  -l, --max-length TEXT       Maximum segment length (e.g., 20m, 1200s, 1h30m) [default: 20m]
  --intro PATH               Path to intro video file
  --outro PATH               Path to outro video file
  -f, --format [mp4|mkv|avi|mov]  Output format for segments [default: mp4]
  --naming-pattern TEXT      Naming pattern for output files [default: {title}_part{index:02d}_{date}]
  --quality [high|medium|low] Output quality preset [default: high]
  --threads INTEGER          Number of threads for processing [default: 4]
  -c, --config PATH          Configuration file (YAML or JSON)
  --save-config PATH         Save current configuration to file
  -v, --verbose              Enable verbose logging
  --help                     Show this message and exit.
```

### Time Format Examples

The `--max-length` option accepts various time formats:

- `20m` or `20min` → 20 minutes
- `1200` or `1200s` → 1200 seconds
- `1h30m` → 1 hour 30 minutes
- `1:30:00` → 1 hour 30 minutes (HH:MM:SS)
- `90:00` → 90 minutes (MM:SS)

### Configuration Files

Create a configuration file to save your settings:

```yaml
# config.yaml
input_path: "my_livestream.mp4"
output:
  directory: "./segments"
  format: "mp4"
  naming_pattern: "{title}_segment{index:02d}_{date}"
  max_segment_length: 1200  # 20 minutes

intro_outro:
  intro_path: "intro.mp4"
  outro_path: "outro.mp4"

processing:
  quality: "high"
  codec: "h264"
  preset: "medium"
  threads: 4
```

Use the configuration file:
```bash
stream-splitter -c config.yaml my_livestream.mp4
```

Save current settings to a config file:
```bash
stream-splitter my_livestream.mp4 -l 15m --intro intro.mp4 --save-config my_settings.yaml
```

## 🎯 Use Cases

### Content Creator Workflow

1. **Stream on Kick**: Create long-form content (2-4 hours)
2. **Download VOD**: Use third-party tools to download the recording
3. **Split Content**: Use this tool to create 20-minute segments
4. **Cross-Platform**: Upload segments to YouTube, TikTok, or other platforms

### Example Commands

**Basic splitting for YouTube uploads**:
```bash
stream-splitter "My Gaming Stream 2024-01-15.mp4" -o youtube_segments/ -l 20m
```

**With branded intro/outro for professional content**:
```bash
stream-splitter stream.mp4 \
  --intro channel_intro.mp4 \
  --outro subscribe_outro.mp4 \
  --naming-pattern "Stream_{date}_Part{index:02d}" \
  -o branded_content/
```

**High-quality processing for archival**:
```bash
stream-splitter stream.mp4 \
  --quality high \
  --format mkv \
  --threads 8 \
  -o archive/
```

## 🔧 Advanced Features

### File Naming Patterns

Customize output filenames using these variables:

- `{title}`: Original filename (sanitized)
- `{index}`: Segment number (use `:02d` for zero-padding)
- `{date}`: Current date (YYYYMMDD format)

Examples:
- `{title}_part{index:02d}_{date}` → `stream_part01_20240115`
- `Segment{index:03d}_{title}` → `Segment001_my_stream`
- `{date}_{title}_{index}` → `20240115_stream_1`

### Quality Settings

- **High**: Best quality, larger file sizes (CRF 18-23)
- **Medium**: Balanced quality and size (CRF 23-28)
- **Low**: Smaller files, lower quality (CRF 28-35)

### Processing Optimization

- Use more threads (`--threads 8`) for faster processing on multi-core systems
- Choose appropriate presets: `ultrafast`, `fast`, `medium`, `slow`
- Monitor disk space - output can be 1.5-2x the input size

## 🛠️ Development

### Project Structure

```
livestream-splitter/
├── src/stream_splitter/     # Main package
│   ├── cli.py              # Command-line interface
│   ├── config.py           # Configuration handling
│   ├── splitter.py         # Main splitting logic
│   ├── video_processor.py  # FFmpeg operations
│   └── utils.py            # Helper functions
├── tests/                  # Test suite
├── web/                    # Web UI (future)
├── config/                 # Default configurations
└── examples/               # Usage examples
```

### Running Tests

```bash
pip install -e ".[dev]"
pytest tests/
```

### Building from Source

```bash
git clone <repository-url>
cd livestream-splitter
pip install -e .
```

## 🐛 Troubleshooting

### Common Issues

**"FFmpeg not found"**
- Ensure FFmpeg is installed and in your PATH
- Run `stream-splitter check-ffmpeg` to verify

**"Memory error with large files"**
- Reduce thread count (`--threads 2`)
- Process smaller segments first
- Ensure sufficient RAM (8GB+ recommended for 4K videos)

**"Incompatible video formats"**
- Convert intro/outro to match main video format
- Use same resolution and codec for all inputs

**"Permission denied errors"**
- Check write permissions to output directory
- Run with administrator privileges if needed

### Getting Help

- Check the logs in `segments/splitter.log`
- Use `--verbose` flag for detailed output
- Report issues on GitHub

## 📋 Requirements

- **Python**: 3.8 or higher
- **FFmpeg**: Latest stable version
- **Disk Space**: 2-3x the input file size for processing
- **RAM**: 4GB minimum, 8GB+ recommended for large files

## 🌐 Web UI

The project includes a modern web interface for easy video processing!

### Starting the Web UI

```bash
# Quick start
./start_web_ui.sh

# Or manually
source venv/bin/activate
cd web/backend
uvicorn main:app --reload
```

Then open your browser to: **http://localhost:8000**

### Web UI Features

- **Drag & Drop Upload**: Simply drag your video file onto the page
- **Real-time Progress**: Watch your video being processed with live updates
- **Download Manager**: Easy access to all processed segments
- **Job History**: Track all your processing jobs
- **Mobile Friendly**: Works on tablets and phones too

See [WEB_UI_GUIDE.md](WEB_UI_GUIDE.md) for detailed usage instructions.

## 🚀 Future Features

- **Batch Processing**: Process multiple files simultaneously
- **Smart Splitting**: Scene detection and natural break points
- **Direct Integration**: Download directly from Kick when API supports it
- **Cloud Processing**: Optional cloud-based processing
- **AI Highlights**: Automatic detection of engaging moments
- **Scheduled Processing**: Set up automatic processing workflows

## 📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

## 🤝 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

## ⭐ Support

If this tool helps you create better content, consider:
- ⭐ Starring the repository
- 🐛 Reporting bugs and issues
- 💡 Suggesting new features
- 📖 Improving documentation

---

**Made for Kick streamers, by content creators** 🎮✨

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/manfromtunis/livestream-splitter",
    "name": "livestream-splitter",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "Bakchich SAS <infos@bakchich.app>",
    "keywords": "livestream, video, splitting, ffmpeg, youtube, content, creation",
    "author": "Bakchich SAS",
    "author_email": "Bakchich SAS <infos@bakchich.app>",
    "download_url": "https://files.pythonhosted.org/packages/fa/db/8a1f2ba98a0fd1d432dccee1016806287acd9ba76bba962ad8f70229f64f/livestream_splitter-0.1.0.tar.gz",
    "platform": null,
    "description": "# Livestream Splitter\n\nA powerful tool to split long livestream recordings into digestible segments with customizable intro and outro sequences. Perfect for Kick streamers and content creators who want to repurpose their long-form content for different platforms.\n\n## \u2728 Features\n\n- **Automatic Video Splitting**: Split videos into segments with configurable maximum duration (default: 20 minutes)\n- **Intro/Outro Integration**: Add custom intro and outro videos to each segment\n- **Multiple Format Support**: Works with MP4, MKV, AVI, MOV, FLV, WEBM, and TS files\n- **Smart File Naming**: Configurable naming patterns with date and segment numbering\n- **Quality Control**: Adjustable output quality and codec settings\n- **Progress Tracking**: Real-time progress bars and detailed logging\n- **Configuration Files**: Save and reuse processing configurations\n- **Cross-Platform**: Works on Windows, macOS, and Linux\n\n## \ud83d\ude80 Quick Start\n\n### Installation\n\n#### Option 1: Install from PyPI (Recommended)\n\n**Prerequisites**: Make sure [FFmpeg](https://ffmpeg.org/download.html) is installed on your system:\n```bash\n# Ubuntu/Debian\nsudo apt install ffmpeg\n\n# macOS\nbrew install ffmpeg\n\n# Windows: Download from https://ffmpeg.org/download.html\n```\n\n**Install the package**:\n```bash\n# Install core functionality\npip install livestream-splitter\n\n# Or install with web UI support\npip install livestream-splitter[web]\n\n# Or install with all optional features\npip install livestream-splitter[all]\n```\n\n#### Option 2: Install from Source\n\n1. **Install system dependencies**:\n   ```bash\n   # Ubuntu/Debian\n   sudo apt install ffmpeg python3.12-venv\n   \n   # macOS\n   brew install ffmpeg\n   \n   # Windows\n   # Download FFmpeg from https://ffmpeg.org/download.html\n   ```\n\n2. **Set up the project**:\n   ```bash\n   # Clone the repository\n   git clone <repository-url>\n   cd livestream-splitter\n   \n   # Create virtual environment\n   python3 -m venv venv\n   source venv/bin/activate  # On Windows: venv\\Scripts\\activate\n   \n   # Install dependencies\n   pip install -r requirements.txt\n   ```\n\n3. **Verify installation**:\n   ```bash\n   # Check FFmpeg\n   ffmpeg -version\n   \n   # Test CLI (if installed from PyPI)\n   stream-splitter --help\n   \n   # Test CLI (if installed from source)\n   python -m src.stream_splitter.cli --help\n   ```\n\n### Basic Usage\n\nSplit a video into 20-minute segments:\n```bash\nstream-splitter my_livestream.mp4\n```\n\nWith custom output directory and segment length:\n```bash\nstream-splitter my_livestream.mp4 -o segments/ -l 15m\n```\n\nAdd intro and outro to each segment:\n```bash\nstream-splitter my_livestream.mp4 --intro intro.mp4 --outro outro.mp4\n```\n\n## \ud83d\udcd6 Detailed Usage\n\n### Command Line Options\n\n```bash\nstream-splitter [OPTIONS] INPUT_FILE\n\nOptions:\n  -o, --output-dir PATH       Output directory for segments [default: ./segments]\n  -l, --max-length TEXT       Maximum segment length (e.g., 20m, 1200s, 1h30m) [default: 20m]\n  --intro PATH               Path to intro video file\n  --outro PATH               Path to outro video file\n  -f, --format [mp4|mkv|avi|mov]  Output format for segments [default: mp4]\n  --naming-pattern TEXT      Naming pattern for output files [default: {title}_part{index:02d}_{date}]\n  --quality [high|medium|low] Output quality preset [default: high]\n  --threads INTEGER          Number of threads for processing [default: 4]\n  -c, --config PATH          Configuration file (YAML or JSON)\n  --save-config PATH         Save current configuration to file\n  -v, --verbose              Enable verbose logging\n  --help                     Show this message and exit.\n```\n\n### Time Format Examples\n\nThe `--max-length` option accepts various time formats:\n\n- `20m` or `20min` \u2192 20 minutes\n- `1200` or `1200s` \u2192 1200 seconds\n- `1h30m` \u2192 1 hour 30 minutes\n- `1:30:00` \u2192 1 hour 30 minutes (HH:MM:SS)\n- `90:00` \u2192 90 minutes (MM:SS)\n\n### Configuration Files\n\nCreate a configuration file to save your settings:\n\n```yaml\n# config.yaml\ninput_path: \"my_livestream.mp4\"\noutput:\n  directory: \"./segments\"\n  format: \"mp4\"\n  naming_pattern: \"{title}_segment{index:02d}_{date}\"\n  max_segment_length: 1200  # 20 minutes\n\nintro_outro:\n  intro_path: \"intro.mp4\"\n  outro_path: \"outro.mp4\"\n\nprocessing:\n  quality: \"high\"\n  codec: \"h264\"\n  preset: \"medium\"\n  threads: 4\n```\n\nUse the configuration file:\n```bash\nstream-splitter -c config.yaml my_livestream.mp4\n```\n\nSave current settings to a config file:\n```bash\nstream-splitter my_livestream.mp4 -l 15m --intro intro.mp4 --save-config my_settings.yaml\n```\n\n## \ud83c\udfaf Use Cases\n\n### Content Creator Workflow\n\n1. **Stream on Kick**: Create long-form content (2-4 hours)\n2. **Download VOD**: Use third-party tools to download the recording\n3. **Split Content**: Use this tool to create 20-minute segments\n4. **Cross-Platform**: Upload segments to YouTube, TikTok, or other platforms\n\n### Example Commands\n\n**Basic splitting for YouTube uploads**:\n```bash\nstream-splitter \"My Gaming Stream 2024-01-15.mp4\" -o youtube_segments/ -l 20m\n```\n\n**With branded intro/outro for professional content**:\n```bash\nstream-splitter stream.mp4 \\\n  --intro channel_intro.mp4 \\\n  --outro subscribe_outro.mp4 \\\n  --naming-pattern \"Stream_{date}_Part{index:02d}\" \\\n  -o branded_content/\n```\n\n**High-quality processing for archival**:\n```bash\nstream-splitter stream.mp4 \\\n  --quality high \\\n  --format mkv \\\n  --threads 8 \\\n  -o archive/\n```\n\n## \ud83d\udd27 Advanced Features\n\n### File Naming Patterns\n\nCustomize output filenames using these variables:\n\n- `{title}`: Original filename (sanitized)\n- `{index}`: Segment number (use `:02d` for zero-padding)\n- `{date}`: Current date (YYYYMMDD format)\n\nExamples:\n- `{title}_part{index:02d}_{date}` \u2192 `stream_part01_20240115`\n- `Segment{index:03d}_{title}` \u2192 `Segment001_my_stream`\n- `{date}_{title}_{index}` \u2192 `20240115_stream_1`\n\n### Quality Settings\n\n- **High**: Best quality, larger file sizes (CRF 18-23)\n- **Medium**: Balanced quality and size (CRF 23-28)\n- **Low**: Smaller files, lower quality (CRF 28-35)\n\n### Processing Optimization\n\n- Use more threads (`--threads 8`) for faster processing on multi-core systems\n- Choose appropriate presets: `ultrafast`, `fast`, `medium`, `slow`\n- Monitor disk space - output can be 1.5-2x the input size\n\n## \ud83d\udee0\ufe0f Development\n\n### Project Structure\n\n```\nlivestream-splitter/\n\u251c\u2500\u2500 src/stream_splitter/     # Main package\n\u2502   \u251c\u2500\u2500 cli.py              # Command-line interface\n\u2502   \u251c\u2500\u2500 config.py           # Configuration handling\n\u2502   \u251c\u2500\u2500 splitter.py         # Main splitting logic\n\u2502   \u251c\u2500\u2500 video_processor.py  # FFmpeg operations\n\u2502   \u2514\u2500\u2500 utils.py            # Helper functions\n\u251c\u2500\u2500 tests/                  # Test suite\n\u251c\u2500\u2500 web/                    # Web UI (future)\n\u251c\u2500\u2500 config/                 # Default configurations\n\u2514\u2500\u2500 examples/               # Usage examples\n```\n\n### Running Tests\n\n```bash\npip install -e \".[dev]\"\npytest tests/\n```\n\n### Building from Source\n\n```bash\ngit clone <repository-url>\ncd livestream-splitter\npip install -e .\n```\n\n## \ud83d\udc1b Troubleshooting\n\n### Common Issues\n\n**\"FFmpeg not found\"**\n- Ensure FFmpeg is installed and in your PATH\n- Run `stream-splitter check-ffmpeg` to verify\n\n**\"Memory error with large files\"**\n- Reduce thread count (`--threads 2`)\n- Process smaller segments first\n- Ensure sufficient RAM (8GB+ recommended for 4K videos)\n\n**\"Incompatible video formats\"**\n- Convert intro/outro to match main video format\n- Use same resolution and codec for all inputs\n\n**\"Permission denied errors\"**\n- Check write permissions to output directory\n- Run with administrator privileges if needed\n\n### Getting Help\n\n- Check the logs in `segments/splitter.log`\n- Use `--verbose` flag for detailed output\n- Report issues on GitHub\n\n## \ud83d\udccb Requirements\n\n- **Python**: 3.8 or higher\n- **FFmpeg**: Latest stable version\n- **Disk Space**: 2-3x the input file size for processing\n- **RAM**: 4GB minimum, 8GB+ recommended for large files\n\n## \ud83c\udf10 Web UI\n\nThe project includes a modern web interface for easy video processing!\n\n### Starting the Web UI\n\n```bash\n# Quick start\n./start_web_ui.sh\n\n# Or manually\nsource venv/bin/activate\ncd web/backend\nuvicorn main:app --reload\n```\n\nThen open your browser to: **http://localhost:8000**\n\n### Web UI Features\n\n- **Drag & Drop Upload**: Simply drag your video file onto the page\n- **Real-time Progress**: Watch your video being processed with live updates\n- **Download Manager**: Easy access to all processed segments\n- **Job History**: Track all your processing jobs\n- **Mobile Friendly**: Works on tablets and phones too\n\nSee [WEB_UI_GUIDE.md](WEB_UI_GUIDE.md) for detailed usage instructions.\n\n## \ud83d\ude80 Future Features\n\n- **Batch Processing**: Process multiple files simultaneously\n- **Smart Splitting**: Scene detection and natural break points\n- **Direct Integration**: Download directly from Kick when API supports it\n- **Cloud Processing**: Optional cloud-based processing\n- **AI Highlights**: Automatic detection of engaging moments\n- **Scheduled Processing**: Set up automatic processing workflows\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\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## \u2b50 Support\n\nIf this tool helps you create better content, consider:\n- \u2b50 Starring the repository\n- \ud83d\udc1b Reporting bugs and issues\n- \ud83d\udca1 Suggesting new features\n- \ud83d\udcd6 Improving documentation\n\n---\n\n**Made for Kick streamers, by content creators** \ud83c\udfae\u2728\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Split long livestream recordings into YouTube-friendly segments with CLI and Web UI",
    "version": "0.1.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/manfromtunis/livestream-splitter/issues",
        "Documentation": "https://github.com/manfromtunis/livestream-splitter/blob/main/README.md",
        "Homepage": "https://github.com/manfromtunis/livestream-splitter",
        "Repository": "https://github.com/manfromtunis/livestream-splitter"
    },
    "split_keywords": [
        "livestream",
        " video",
        " splitting",
        " ffmpeg",
        " youtube",
        " content",
        " creation"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fcfdfa663369744a37446f55f34bad8529634685e547f3b1afe13009dfbd4c39",
                "md5": "b280105ccdb65c73efee570e8826e278",
                "sha256": "7dd48046c1f0a41d99c6b8856e982df2c54c3c871fc5db69154304e22963a1ad"
            },
            "downloads": -1,
            "filename": "livestream_splitter-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b280105ccdb65c73efee570e8826e278",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 17410,
            "upload_time": "2025-07-20T22:33:00",
            "upload_time_iso_8601": "2025-07-20T22:33:00.771695Z",
            "url": "https://files.pythonhosted.org/packages/fc/fd/fa663369744a37446f55f34bad8529634685e547f3b1afe13009dfbd4c39/livestream_splitter-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fadb8a1f2ba98a0fd1d432dccee1016806287acd9ba76bba962ad8f70229f64f",
                "md5": "659a41acf4704e1af225db1b638797f1",
                "sha256": "18e3b8a7c61ac01f4c9ab6a78e5783f1c4e6cc81fc734f29dba156aadd68a535"
            },
            "downloads": -1,
            "filename": "livestream_splitter-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "659a41acf4704e1af225db1b638797f1",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 39737,
            "upload_time": "2025-07-20T22:33:02",
            "upload_time_iso_8601": "2025-07-20T22:33:02.335119Z",
            "url": "https://files.pythonhosted.org/packages/fa/db/8a1f2ba98a0fd1d432dccee1016806287acd9ba76bba962ad8f70229f64f/livestream_splitter-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-20 22:33:02",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "manfromtunis",
    "github_project": "livestream-splitter",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "click",
            "specs": [
                [
                    ">=",
                    "8.1.0"
                ]
            ]
        },
        {
            "name": "ffmpeg-python",
            "specs": [
                [
                    ">=",
                    "0.2.0"
                ]
            ]
        },
        {
            "name": "pydantic",
            "specs": [
                [
                    ">=",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "pyyaml",
            "specs": [
                [
                    ">=",
                    "6.0"
                ]
            ]
        },
        {
            "name": "tqdm",
            "specs": [
                [
                    ">=",
                    "4.65.0"
                ]
            ]
        },
        {
            "name": "fastapi",
            "specs": [
                [
                    ">=",
                    "0.100.0"
                ]
            ]
        },
        {
            "name": "uvicorn",
            "specs": [
                [
                    ">=",
                    "0.23.0"
                ]
            ]
        },
        {
            "name": "python-multipart",
            "specs": [
                [
                    ">=",
                    "0.0.6"
                ]
            ]
        },
        {
            "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"
                ]
            ]
        },
        {
            "name": "mypy",
            "specs": [
                [
                    ">=",
                    "1.4.0"
                ]
            ]
        },
        {
            "name": "opencv-python",
            "specs": [
                [
                    ">=",
                    "4.8.0"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    ">=",
                    "1.24.0"
                ]
            ]
        }
    ],
    "lcname": "livestream-splitter"
}
        
Elapsed time: 0.51071s