# 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.
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[](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[](https://www.python.org/downloads/)\n[](https://opensource.org/licenses/MIT)\n[](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"
}