getoutvideo


Namegetoutvideo JSON
Version 1.1.0 PyPI version JSON
download
home_pagehttps://github.com/keboom/GetOutVideo-api
SummaryExtract and process YouTube video transcripts with AI
upload_time2025-08-14 08:27:19
maintainerNone
docs_urlNone
authorGetOutVideo API
requires_python>=3.8
licenseMIT
keywords youtube transcript ai openai video-processing gpt
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # GetOutVideo API

**Transform YouTube videos into professional documents with AI**

GetOutVideo is a Python API that converts YouTube videos into structured, readable documents. Simply provide a YouTube URL, and it extracts transcripts and transforms them into professional-quality materials using OpenAI's GPT models.

## What it does

Turn any YouTube video into:
- **Summaries** - Quick overviews and key points
- **Educational materials** - Structured lessons and tutorials  
- **Documentation** - Technical guides and how-tos
- **Study notes** - Q&A format and bullet points
- **Research content** - Comprehensive analysis

Perfect for students, researchers, content creators, and professionals who want to convert video content into text-based learning materials.

[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![PyPI version](https://badge.fury.io/py/getoutvideo.svg)](https://badge.fury.io/py/getoutvideo)

## Features

- **YouTube Integration**: Extract transcripts from individual videos
- **AI Processing**: Transform raw transcripts using OpenAI's GPT models
- **Multiple Styles**: Generate summaries, educational content, Q&A, key points, and more
- **Flexible Configuration**: Customize processing parameters, languages, and output formats
- **Fallback Transcription**: Uses OpenAI's audio transcription when YouTube transcripts aren't available
- **Clean API**: Simple interface for both basic and advanced use cases

## Installation

```bash
pip install getoutvideo
```

### System Requirements

- Python 3.8 or higher
- FFmpeg (required for audio processing fallback)

#### Installing FFmpeg

**Windows:**
```bash
# Using chocolatey
choco install ffmpeg

# Or download from https://ffmpeg.org/download.html
```

**macOS:**
```bash
# Using homebrew
brew install ffmpeg
```

**Linux:**
```bash
# Ubuntu/Debian
sudo apt update && sudo apt install ffmpeg

# CentOS/RHEL
sudo yum install ffmpeg
```

## Quick Start

### Basic Usage

```python
from getoutvideo import process_youtube_video

# Process a single video
files = process_youtube_video(
    url="https://www.youtube.com/watch?v=7gp7GkPE-tI",
    output_dir="./output",
    openai_api_key="your-openai-api-key"
)

print(f"Generated {len(files)} documents!")
# Creates: video_title [Summary].md, video_title [Educational].md, etc.
```

### Process Specific Styles

```python
from getoutvideo import GetOutVideoAPI

api = GetOutVideoAPI(openai_api_key="your-openai-api-key")

# Generate only summaries and educational content
files = api.process_youtube_url(
    url="https://www.youtube.com/watch?v=VIDEO_ID",
    output_dir="./summaries",
    styles=["Summary", "Educational"]
)
```


## How It Works

1. **Extract** - Downloads transcripts from YouTube (with AI fallback when needed)
2. **Process** - Uses OpenAI's GPT models to format and structure content  
3. **Generate** - Creates professional markdown documents in multiple styles

## Available Processing Styles

GetOutVideo creates different document types from the same video:

| Style | Best For | Output Format |
|-------|----------|---------------|
| **Summary** | Quick overviews | Concise main points |
| **Educational** | Learning materials | Structured lessons with examples |
| **Balanced and Detailed** | Comprehensive reports | Full detailed coverage with all information |
| **Q&A Generation** | Training materials | Question and answer format |
| **Narrative Rewriting** | Engaging content | Story-like format while maintaining facts |

```python
# Get all available styles
from getoutvideo import GetOutVideoAPI
api = GetOutVideoAPI(openai_api_key="your-key")
print(api.get_available_styles())
```

## Configuration

### Using Environment Variables

```bash
export OPENAI_API_KEY="your-openai-api-key"
export LANGUAGE="English"
```

```python
from getoutvideo import load_api_from_env
api = load_api_from_env()  # Uses environment variables
```

## API Reference

### Main Functions

#### `process_youtube_video()`
One-line processing for videos:

```python
from getoutvideo import process_youtube_video

files = process_youtube_video(
    url="https://www.youtube.com/watch?v=VIDEO_ID",
    output_dir="./output",
    openai_api_key="your-openai-api-key",
    styles=["Summary", "Educational"],  # Optional
    output_language="English"          # Optional
)
```

#### `GetOutVideoAPI` Class
For advanced control:

```python
from getoutvideo import GetOutVideoAPI

api = GetOutVideoAPI(openai_api_key="your-openai-api-key")

# Process videos
files = api.process_youtube_url(url, output_dir, styles=["Summary"])

# Extract transcripts only
transcripts = api.extract_transcripts(url)

# Process existing transcripts
results = api.process_with_ai(transcripts, output_dir, styles=["Educational"])
```

#### `extract_transcripts_only()`
Get raw transcripts without AI processing:

```python
from getoutvideo import extract_transcripts_only

transcripts = extract_transcripts_only(
    url="https://www.youtube.com/watch?v=VIDEO_ID",
    openai_api_key="your-openai-api-key"
)
```

## Use Cases

### Course Materials
```python
# Convert lectures to study materials
study_files = process_youtube_video(
    url="https://www.youtube.com/watch?v=LECTURE_VIDEO",
    output_dir="./course_materials",
    openai_api_key="your-key",
    styles=["Educational", "Summary"]
)
```

### Technical Documentation
```python
# Turn tutorial videos into documentation
api = GetOutVideoAPI(openai_api_key="your-key")
transcripts = api.extract_transcripts("https://www.youtube.com/watch?v=TUTORIAL_ID")
docs = api.process_with_ai(transcripts, "./docs", styles=["Educational"])
```

### Research and Analysis
```python
# Process conference talks for research
files = process_youtube_video(
    url="https://www.youtube.com/watch?v=CONFERENCE_TALK",
    output_dir="./research",
    openai_api_key="your-key",
    styles=["Balanced", "Summary"]
)
```

## Output Files

Generated files follow this naming pattern:
```
{video_title} [{style_name}].md
```

Example output for "Python Tutorial":
```
📁 output/
├── Python_Tutorial [Summary].md
├── Python_Tutorial [Educational].md  
├── Python_Tutorial [Balanced and Detailed].md
└── Python_Tutorial [Q&A Generation].md
```

Each file contains:
- Original video URL
- Structured content in markdown format
- Style-specific formatting (bullets, sections, Q&A, etc.)

## Error Handling

```python
from getoutvideo import GetOutVideoAPI, GetOutVideoError

try:
    api = GetOutVideoAPI(openai_api_key="your-key")
    files = api.process_youtube_url(url="...", output_dir="./output")
    print(f"Success: {len(files)} files generated")
except GetOutVideoError as e:
    print(f"API Error: {e}")
except Exception as e:
    print(f"Error: {e}")
```

## Rate Limits and Costs

- Respects OpenAI rate limits automatically
- Costs depend on transcript length and models used
- Use specific `styles` parameter to reduce processing
- Adjust `chunk_size` for cost optimization

## Development

```bash
git clone https://github.com/yourusername/getoutvideo.git
cd getoutvideo
pip install -e ".[dev]"
pytest tests/          # Run tests
black getoutvideo/     # Format code
```

## License

MIT License - see [LICENSE](LICENSE) file for details.

## Support

- Issues: [GitHub Issues](https://github.com/yourusername/getoutvideo/issues)
- Documentation: Full API docs and examples available

## Credits

Built with OpenAI GPT models, YouTube Transcript API, and FFmpeg for audio processing.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/keboom/GetOutVideo-api",
    "name": "getoutvideo",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "youtube, transcript, ai, openai, video-processing, gpt",
    "author": "GetOutVideo API",
    "author_email": "GetOutVideo API <keboom.dev@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/23/bd/29f4bca8b207c23ea6928515ac4f532beb5641dc089d7c4650a27fc043a2/getoutvideo-1.1.0.tar.gz",
    "platform": null,
    "description": "# GetOutVideo API\n\n**Transform YouTube videos into professional documents with AI**\n\nGetOutVideo is a Python API that converts YouTube videos into structured, readable documents. Simply provide a YouTube URL, and it extracts transcripts and transforms them into professional-quality materials using OpenAI's GPT models.\n\n## What it does\n\nTurn any YouTube video into:\n- **Summaries** - Quick overviews and key points\n- **Educational materials** - Structured lessons and tutorials  \n- **Documentation** - Technical guides and how-tos\n- **Study notes** - Q&A format and bullet points\n- **Research content** - Comprehensive analysis\n\nPerfect for students, researchers, content creators, and professionals who want to convert video content into text-based learning materials.\n\n[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![PyPI version](https://badge.fury.io/py/getoutvideo.svg)](https://badge.fury.io/py/getoutvideo)\n\n## Features\n\n- **YouTube Integration**: Extract transcripts from individual videos\n- **AI Processing**: Transform raw transcripts using OpenAI's GPT models\n- **Multiple Styles**: Generate summaries, educational content, Q&A, key points, and more\n- **Flexible Configuration**: Customize processing parameters, languages, and output formats\n- **Fallback Transcription**: Uses OpenAI's audio transcription when YouTube transcripts aren't available\n- **Clean API**: Simple interface for both basic and advanced use cases\n\n## Installation\n\n```bash\npip install getoutvideo\n```\n\n### System Requirements\n\n- Python 3.8 or higher\n- FFmpeg (required for audio processing fallback)\n\n#### Installing FFmpeg\n\n**Windows:**\n```bash\n# Using chocolatey\nchoco install ffmpeg\n\n# Or download from https://ffmpeg.org/download.html\n```\n\n**macOS:**\n```bash\n# Using homebrew\nbrew install ffmpeg\n```\n\n**Linux:**\n```bash\n# Ubuntu/Debian\nsudo apt update && sudo apt install ffmpeg\n\n# CentOS/RHEL\nsudo yum install ffmpeg\n```\n\n## Quick Start\n\n### Basic Usage\n\n```python\nfrom getoutvideo import process_youtube_video\n\n# Process a single video\nfiles = process_youtube_video(\n    url=\"https://www.youtube.com/watch?v=7gp7GkPE-tI\",\n    output_dir=\"./output\",\n    openai_api_key=\"your-openai-api-key\"\n)\n\nprint(f\"Generated {len(files)} documents!\")\n# Creates: video_title [Summary].md, video_title [Educational].md, etc.\n```\n\n### Process Specific Styles\n\n```python\nfrom getoutvideo import GetOutVideoAPI\n\napi = GetOutVideoAPI(openai_api_key=\"your-openai-api-key\")\n\n# Generate only summaries and educational content\nfiles = api.process_youtube_url(\n    url=\"https://www.youtube.com/watch?v=VIDEO_ID\",\n    output_dir=\"./summaries\",\n    styles=[\"Summary\", \"Educational\"]\n)\n```\n\n\n## How It Works\n\n1. **Extract** - Downloads transcripts from YouTube (with AI fallback when needed)\n2. **Process** - Uses OpenAI's GPT models to format and structure content  \n3. **Generate** - Creates professional markdown documents in multiple styles\n\n## Available Processing Styles\n\nGetOutVideo creates different document types from the same video:\n\n| Style | Best For | Output Format |\n|-------|----------|---------------|\n| **Summary** | Quick overviews | Concise main points |\n| **Educational** | Learning materials | Structured lessons with examples |\n| **Balanced and Detailed** | Comprehensive reports | Full detailed coverage with all information |\n| **Q&A Generation** | Training materials | Question and answer format |\n| **Narrative Rewriting** | Engaging content | Story-like format while maintaining facts |\n\n```python\n# Get all available styles\nfrom getoutvideo import GetOutVideoAPI\napi = GetOutVideoAPI(openai_api_key=\"your-key\")\nprint(api.get_available_styles())\n```\n\n## Configuration\n\n### Using Environment Variables\n\n```bash\nexport OPENAI_API_KEY=\"your-openai-api-key\"\nexport LANGUAGE=\"English\"\n```\n\n```python\nfrom getoutvideo import load_api_from_env\napi = load_api_from_env()  # Uses environment variables\n```\n\n## API Reference\n\n### Main Functions\n\n#### `process_youtube_video()`\nOne-line processing for videos:\n\n```python\nfrom getoutvideo import process_youtube_video\n\nfiles = process_youtube_video(\n    url=\"https://www.youtube.com/watch?v=VIDEO_ID\",\n    output_dir=\"./output\",\n    openai_api_key=\"your-openai-api-key\",\n    styles=[\"Summary\", \"Educational\"],  # Optional\n    output_language=\"English\"          # Optional\n)\n```\n\n#### `GetOutVideoAPI` Class\nFor advanced control:\n\n```python\nfrom getoutvideo import GetOutVideoAPI\n\napi = GetOutVideoAPI(openai_api_key=\"your-openai-api-key\")\n\n# Process videos\nfiles = api.process_youtube_url(url, output_dir, styles=[\"Summary\"])\n\n# Extract transcripts only\ntranscripts = api.extract_transcripts(url)\n\n# Process existing transcripts\nresults = api.process_with_ai(transcripts, output_dir, styles=[\"Educational\"])\n```\n\n#### `extract_transcripts_only()`\nGet raw transcripts without AI processing:\n\n```python\nfrom getoutvideo import extract_transcripts_only\n\ntranscripts = extract_transcripts_only(\n    url=\"https://www.youtube.com/watch?v=VIDEO_ID\",\n    openai_api_key=\"your-openai-api-key\"\n)\n```\n\n## Use Cases\n\n### Course Materials\n```python\n# Convert lectures to study materials\nstudy_files = process_youtube_video(\n    url=\"https://www.youtube.com/watch?v=LECTURE_VIDEO\",\n    output_dir=\"./course_materials\",\n    openai_api_key=\"your-key\",\n    styles=[\"Educational\", \"Summary\"]\n)\n```\n\n### Technical Documentation\n```python\n# Turn tutorial videos into documentation\napi = GetOutVideoAPI(openai_api_key=\"your-key\")\ntranscripts = api.extract_transcripts(\"https://www.youtube.com/watch?v=TUTORIAL_ID\")\ndocs = api.process_with_ai(transcripts, \"./docs\", styles=[\"Educational\"])\n```\n\n### Research and Analysis\n```python\n# Process conference talks for research\nfiles = process_youtube_video(\n    url=\"https://www.youtube.com/watch?v=CONFERENCE_TALK\",\n    output_dir=\"./research\",\n    openai_api_key=\"your-key\",\n    styles=[\"Balanced\", \"Summary\"]\n)\n```\n\n## Output Files\n\nGenerated files follow this naming pattern:\n```\n{video_title} [{style_name}].md\n```\n\nExample output for \"Python Tutorial\":\n```\n\ud83d\udcc1 output/\n\u251c\u2500\u2500 Python_Tutorial [Summary].md\n\u251c\u2500\u2500 Python_Tutorial [Educational].md  \n\u251c\u2500\u2500 Python_Tutorial [Balanced and Detailed].md\n\u2514\u2500\u2500 Python_Tutorial [Q&A Generation].md\n```\n\nEach file contains:\n- Original video URL\n- Structured content in markdown format\n- Style-specific formatting (bullets, sections, Q&A, etc.)\n\n## Error Handling\n\n```python\nfrom getoutvideo import GetOutVideoAPI, GetOutVideoError\n\ntry:\n    api = GetOutVideoAPI(openai_api_key=\"your-key\")\n    files = api.process_youtube_url(url=\"...\", output_dir=\"./output\")\n    print(f\"Success: {len(files)} files generated\")\nexcept GetOutVideoError as e:\n    print(f\"API Error: {e}\")\nexcept Exception as e:\n    print(f\"Error: {e}\")\n```\n\n## Rate Limits and Costs\n\n- Respects OpenAI rate limits automatically\n- Costs depend on transcript length and models used\n- Use specific `styles` parameter to reduce processing\n- Adjust `chunk_size` for cost optimization\n\n## Development\n\n```bash\ngit clone https://github.com/yourusername/getoutvideo.git\ncd getoutvideo\npip install -e \".[dev]\"\npytest tests/          # Run tests\nblack getoutvideo/     # Format code\n```\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## Support\n\n- Issues: [GitHub Issues](https://github.com/yourusername/getoutvideo/issues)\n- Documentation: Full API docs and examples available\n\n## Credits\n\nBuilt with OpenAI GPT models, YouTube Transcript API, and FFmpeg for audio processing.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Extract and process YouTube video transcripts with AI",
    "version": "1.1.0",
    "project_urls": {
        "Documentation": "https://github.com/keboom/GetOutVideo-api#readme",
        "Homepage": "https://github.com/keboom/GetOutVideo-api",
        "Issues": "https://github.com/keboom/GetOutVideo-api/issues",
        "Repository": "https://github.com/keboom/GetOutVideo-api"
    },
    "split_keywords": [
        "youtube",
        " transcript",
        " ai",
        " openai",
        " video-processing",
        " gpt"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0dc853e77ea63e4f6ec520137071ff24d1fdf5f486c3d5f3a22ef201966fa3fb",
                "md5": "591f4c902b501d3e0236164a161ec213",
                "sha256": "78d935c61bf2967555ec909ff90bba712fcb66058408494a5ca982c411444543"
            },
            "downloads": -1,
            "filename": "getoutvideo-1.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "591f4c902b501d3e0236164a161ec213",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 29677,
            "upload_time": "2025-08-14T08:27:18",
            "upload_time_iso_8601": "2025-08-14T08:27:18.196032Z",
            "url": "https://files.pythonhosted.org/packages/0d/c8/53e77ea63e4f6ec520137071ff24d1fdf5f486c3d5f3a22ef201966fa3fb/getoutvideo-1.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "23bd29f4bca8b207c23ea6928515ac4f532beb5641dc089d7c4650a27fc043a2",
                "md5": "9859a21668efe52b7fbe8b11d773aa20",
                "sha256": "06f7831edd90fd3d593b6bad63c44505615c2466b50e8e6e9352fe0ddd9e8050"
            },
            "downloads": -1,
            "filename": "getoutvideo-1.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "9859a21668efe52b7fbe8b11d773aa20",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 34897,
            "upload_time": "2025-08-14T08:27:19",
            "upload_time_iso_8601": "2025-08-14T08:27:19.543850Z",
            "url": "https://files.pythonhosted.org/packages/23/bd/29f4bca8b207c23ea6928515ac4f532beb5641dc089d7c4650a27fc043a2/getoutvideo-1.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-14 08:27:19",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "keboom",
    "github_project": "GetOutVideo-api",
    "github_not_found": true,
    "lcname": "getoutvideo"
}
        
Elapsed time: 0.54896s