youtube-thumbnail-generator


Nameyoutube-thumbnail-generator JSON
Version 2.6.4 PyPI version JSON
download
home_pagehttps://github.com/preangelleo/youtube-thumbnail-generator
SummaryA powerful YouTube thumbnail generator with AI text optimization and multi-language support
upload_time2025-08-23 08:16:05
maintainerNone
docs_urlNone
authorpreangelleo
requires_python>=3.9
licenseMIT
keywords youtube thumbnail generator ai gemini image processing
VCS
bugtrack_url
requirements Pillow numpy python-dotenv Flask flask-cors google-generativeai langdetect pytest pytest-cov black flake8 mypy
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # YouTube Thumbnail Generator 🎨

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Python](https://img.shields.io/badge/python-3.8%2B-blue)](https://www.python.org/downloads/)
[![Docker](https://img.shields.io/badge/docker-ready-green)](https://www.docker.com/)
[![Gemini AI](https://img.shields.io/badge/Gemini%20AI-Optional-purple)](https://ai.google.dev/)

A powerful YouTube thumbnail generator with optional AI text optimization and multi-language support. Create eye-catching thumbnails with customizable backgrounds, fonts, and AI-enhanced text.

## ✨ Features

- **Customizable Backgrounds**: Solid colors, gradients, or image backgrounds
- **Multiple Font Support**: Various fonts and styles
- **AI Text Optimization**: Optional Gemini AI integration for better text
- **Multi-Language Support**: Automatic language detection or manual specification (supports `en`/`english`, `zh`/`chinese`)
- **Flexible Layouts**: Multiple text positions and sizes
- **High Quality Output**: 1280x720 HD thumbnails
- **Docker Support**: Easy deployment with Docker

## 🚀 Quick Start

### Installation

```bash
# Clone the repository
git clone https://github.com/preangelleo/youtube-thumbnail-generator.git
cd youtube-thumbnail-generator

# Install dependencies
pip install -r requirements.txt

# Or install from PyPI
pip install youtube-thumbnail-generator
```

### Basic Usage

#### Python Library

```python
from src.thumbnail_generator import ThumbnailGenerator

# Create generator instance
generator = ThumbnailGenerator()

# Generate a simple thumbnail
thumbnail = generator.generate(
    text="Amazing Python Tutorial",
    output_path="thumbnail.png"
)
```

#### CLI Usage

```bash
# Basic thumbnail
youtube-thumbnail "Amazing Python Tutorial" -o thumbnail.png

# With AI optimization
youtube-thumbnail "Python Tutorial" --enable-ai --source-language en

# With translation (Chinese to English)
youtube-thumbnail "Python编程" --enable-ai --source-language zh --target-language en

# Custom styling
youtube-thumbnail "Tutorial" --font-size 100 --bg-color1 "#FF0000"
```

#### REST API

```bash
# Start the API server
python -m src.api

# Generate thumbnail via API
curl -X POST http://localhost:5000/generate \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Amazing Tutorial",
    "enable_ai_optimization": true,
    "source_language": "en"  // Skip auto-detection
  }'
```

### With AI Optimization

```python
# Enable AI optimization with explicit control
generator = ThumbnailGenerator(
    gemini_api_key="your-api-key",
    enable_ai_optimization=True  # Explicit toggle
)

# Generate with explicit source language (skip detection)
# Supports both ISO codes and full names
thumbnail = generator.generate(
    text="Python Tutorial for Beginners",
    source_language="en",  # or "english" - Skip detection, specify it's English
    enable_ai_optimization=True,
    output_path="ai_thumbnail.png"
)

# Generate with translation (requires AI)
thumbnail = generator.generate(
    text="Python编程教程",
    source_language="chinese",  # or "zh" - Input is Chinese
    target_language="english",  # or "en" - Translate to English
    enable_ai_optimization=True,  # Required for translation
    output_path="translated_thumbnail.png"
)
```

## 📚 Documentation

For detailed documentation, see [docs/DOCUMENTATION.md](docs/DOCUMENTATION.md)

For usage examples, see [examples/example_usage.py](examples/example_usage.py)

## 🐳 Docker

```bash
# Pull from Docker Hub
docker pull preangelleo/youtube-thumbnail-generator:latest

# Run the API server
docker run -p 5000:5000 \
  -e GEMINI_API_KEY=your-key \
  -e ENABLE_AI_OPTIMIZATION=true \
  preangelleo/youtube-thumbnail-generator

# Or build locally
docker build -t youtube-thumbnail-generator .
docker run -p 5000:5000 youtube-thumbnail-generator
```

## 🌐 API Endpoints

### POST /generate
Generate a single thumbnail with full parameter control.

```json
{
  "text": "Amazing Tutorial",
  "enable_ai_optimization": true,
  "target_language": "en",
  "background_type": "gradient",
  "font_size": 80
}
```

### POST /batch
Generate multiple thumbnails in one request.

```json
{
  "texts": ["Tutorial 1", "Tutorial 2"],
  "enable_ai_optimization": false,
  "target_language": "zh"
}
```

### POST /optimize-text
Optimize text using AI (requires API key).

```json
{
  "text": "Basic Python Tutorial",
  "target_language": "en",
  "style": "engaging"
}
```

### POST /detect-language
Detect the language of text.

```json
{
  "text": "Python编程教程"
}
```

## 🔧 Configuration

Create a `.env` file:

```env
# Optional: Gemini AI API Key
GEMINI_API_KEY=your-api-key-here

# Optional: Enable AI by default
ENABLE_AI_OPTIMIZATION=true

# Optional: Default language
DEFAULT_LANGUAGE=en
```

## 📝 License

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

## 🤝 Contributing

Contributions are welcome! Please read [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

## 📧 Support

For issues and questions, please use the [GitHub Issues](https://github.com/preangelleo/youtube-thumbnail-generator/issues) page.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/preangelleo/youtube-thumbnail-generator",
    "name": "youtube-thumbnail-generator",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "youtube, thumbnail, generator, ai, gemini, image, processing",
    "author": "preangelleo",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/ed/c0/768cd8bb180df0faf3af5956646ef2a03303d529b78b81ea4df2c20c3892/youtube_thumbnail_generator-2.6.4.tar.gz",
    "platform": null,
    "description": "# YouTube Thumbnail Generator \ud83c\udfa8\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Python](https://img.shields.io/badge/python-3.8%2B-blue)](https://www.python.org/downloads/)\n[![Docker](https://img.shields.io/badge/docker-ready-green)](https://www.docker.com/)\n[![Gemini AI](https://img.shields.io/badge/Gemini%20AI-Optional-purple)](https://ai.google.dev/)\n\nA powerful YouTube thumbnail generator with optional AI text optimization and multi-language support. Create eye-catching thumbnails with customizable backgrounds, fonts, and AI-enhanced text.\n\n## \u2728 Features\n\n- **Customizable Backgrounds**: Solid colors, gradients, or image backgrounds\n- **Multiple Font Support**: Various fonts and styles\n- **AI Text Optimization**: Optional Gemini AI integration for better text\n- **Multi-Language Support**: Automatic language detection or manual specification (supports `en`/`english`, `zh`/`chinese`)\n- **Flexible Layouts**: Multiple text positions and sizes\n- **High Quality Output**: 1280x720 HD thumbnails\n- **Docker Support**: Easy deployment with Docker\n\n## \ud83d\ude80 Quick Start\n\n### Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/preangelleo/youtube-thumbnail-generator.git\ncd youtube-thumbnail-generator\n\n# Install dependencies\npip install -r requirements.txt\n\n# Or install from PyPI\npip install youtube-thumbnail-generator\n```\n\n### Basic Usage\n\n#### Python Library\n\n```python\nfrom src.thumbnail_generator import ThumbnailGenerator\n\n# Create generator instance\ngenerator = ThumbnailGenerator()\n\n# Generate a simple thumbnail\nthumbnail = generator.generate(\n    text=\"Amazing Python Tutorial\",\n    output_path=\"thumbnail.png\"\n)\n```\n\n#### CLI Usage\n\n```bash\n# Basic thumbnail\nyoutube-thumbnail \"Amazing Python Tutorial\" -o thumbnail.png\n\n# With AI optimization\nyoutube-thumbnail \"Python Tutorial\" --enable-ai --source-language en\n\n# With translation (Chinese to English)\nyoutube-thumbnail \"Python\u7f16\u7a0b\" --enable-ai --source-language zh --target-language en\n\n# Custom styling\nyoutube-thumbnail \"Tutorial\" --font-size 100 --bg-color1 \"#FF0000\"\n```\n\n#### REST API\n\n```bash\n# Start the API server\npython -m src.api\n\n# Generate thumbnail via API\ncurl -X POST http://localhost:5000/generate \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"text\": \"Amazing Tutorial\",\n    \"enable_ai_optimization\": true,\n    \"source_language\": \"en\"  // Skip auto-detection\n  }'\n```\n\n### With AI Optimization\n\n```python\n# Enable AI optimization with explicit control\ngenerator = ThumbnailGenerator(\n    gemini_api_key=\"your-api-key\",\n    enable_ai_optimization=True  # Explicit toggle\n)\n\n# Generate with explicit source language (skip detection)\n# Supports both ISO codes and full names\nthumbnail = generator.generate(\n    text=\"Python Tutorial for Beginners\",\n    source_language=\"en\",  # or \"english\" - Skip detection, specify it's English\n    enable_ai_optimization=True,\n    output_path=\"ai_thumbnail.png\"\n)\n\n# Generate with translation (requires AI)\nthumbnail = generator.generate(\n    text=\"Python\u7f16\u7a0b\u6559\u7a0b\",\n    source_language=\"chinese\",  # or \"zh\" - Input is Chinese\n    target_language=\"english\",  # or \"en\" - Translate to English\n    enable_ai_optimization=True,  # Required for translation\n    output_path=\"translated_thumbnail.png\"\n)\n```\n\n## \ud83d\udcda Documentation\n\nFor detailed documentation, see [docs/DOCUMENTATION.md](docs/DOCUMENTATION.md)\n\nFor usage examples, see [examples/example_usage.py](examples/example_usage.py)\n\n## \ud83d\udc33 Docker\n\n```bash\n# Pull from Docker Hub\ndocker pull preangelleo/youtube-thumbnail-generator:latest\n\n# Run the API server\ndocker run -p 5000:5000 \\\n  -e GEMINI_API_KEY=your-key \\\n  -e ENABLE_AI_OPTIMIZATION=true \\\n  preangelleo/youtube-thumbnail-generator\n\n# Or build locally\ndocker build -t youtube-thumbnail-generator .\ndocker run -p 5000:5000 youtube-thumbnail-generator\n```\n\n## \ud83c\udf10 API Endpoints\n\n### POST /generate\nGenerate a single thumbnail with full parameter control.\n\n```json\n{\n  \"text\": \"Amazing Tutorial\",\n  \"enable_ai_optimization\": true,\n  \"target_language\": \"en\",\n  \"background_type\": \"gradient\",\n  \"font_size\": 80\n}\n```\n\n### POST /batch\nGenerate multiple thumbnails in one request.\n\n```json\n{\n  \"texts\": [\"Tutorial 1\", \"Tutorial 2\"],\n  \"enable_ai_optimization\": false,\n  \"target_language\": \"zh\"\n}\n```\n\n### POST /optimize-text\nOptimize text using AI (requires API key).\n\n```json\n{\n  \"text\": \"Basic Python Tutorial\",\n  \"target_language\": \"en\",\n  \"style\": \"engaging\"\n}\n```\n\n### POST /detect-language\nDetect the language of text.\n\n```json\n{\n  \"text\": \"Python\u7f16\u7a0b\u6559\u7a0b\"\n}\n```\n\n## \ud83d\udd27 Configuration\n\nCreate a `.env` file:\n\n```env\n# Optional: Gemini AI API Key\nGEMINI_API_KEY=your-api-key-here\n\n# Optional: Enable AI by default\nENABLE_AI_OPTIMIZATION=true\n\n# Optional: Default language\nDEFAULT_LANGUAGE=en\n```\n\n## \ud83d\udcdd License\n\nMIT License - see [LICENSE](LICENSE) file for details\n\n## \ud83e\udd1d Contributing\n\nContributions are welcome! Please read [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n## \ud83d\udce7 Support\n\nFor issues and questions, please use the [GitHub Issues](https://github.com/preangelleo/youtube-thumbnail-generator/issues) page.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A powerful YouTube thumbnail generator with AI text optimization and multi-language support",
    "version": "2.6.4",
    "project_urls": {
        "Bug Reports": "https://github.com/preangelleo/youtube-thumbnail-generator/issues",
        "Documentation": "https://github.com/preangelleo/youtube-thumbnail-generator/docs",
        "Homepage": "https://github.com/preangelleo/youtube-thumbnail-generator",
        "Source": "https://github.com/preangelleo/youtube-thumbnail-generator"
    },
    "split_keywords": [
        "youtube",
        " thumbnail",
        " generator",
        " ai",
        " gemini",
        " image",
        " processing"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f22baa23a91b6516ab6c511d402ee400608984572f7de2848c117009cf5c0f39",
                "md5": "2d66fb1329f151e60edfa2ce7369e8e7",
                "sha256": "6a10118c6f728bcbe92b9392ef16329b380d2ff76bc8f486fe84c50e8ea652e1"
            },
            "downloads": -1,
            "filename": "youtube_thumbnail_generator-2.6.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2d66fb1329f151e60edfa2ce7369e8e7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 44656,
            "upload_time": "2025-08-23T08:16:04",
            "upload_time_iso_8601": "2025-08-23T08:16:04.634349Z",
            "url": "https://files.pythonhosted.org/packages/f2/2b/aa23a91b6516ab6c511d402ee400608984572f7de2848c117009cf5c0f39/youtube_thumbnail_generator-2.6.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "edc0768cd8bb180df0faf3af5956646ef2a03303d529b78b81ea4df2c20c3892",
                "md5": "b8bced98d9918b9aba1638976f58f618",
                "sha256": "cf558d181a02a70a38eee878af077c7ae52947ed7fb29381596c55e2c76b5129"
            },
            "downloads": -1,
            "filename": "youtube_thumbnail_generator-2.6.4.tar.gz",
            "has_sig": false,
            "md5_digest": "b8bced98d9918b9aba1638976f58f618",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 46251,
            "upload_time": "2025-08-23T08:16:05",
            "upload_time_iso_8601": "2025-08-23T08:16:05.842663Z",
            "url": "https://files.pythonhosted.org/packages/ed/c0/768cd8bb180df0faf3af5956646ef2a03303d529b78b81ea4df2c20c3892/youtube_thumbnail_generator-2.6.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-23 08:16:05",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "preangelleo",
    "github_project": "youtube-thumbnail-generator",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "Pillow",
            "specs": [
                [
                    ">=",
                    "10.0.0"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    ">=",
                    "1.24.0"
                ]
            ]
        },
        {
            "name": "python-dotenv",
            "specs": [
                [
                    ">=",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "Flask",
            "specs": [
                [
                    ">=",
                    "2.3.0"
                ]
            ]
        },
        {
            "name": "flask-cors",
            "specs": [
                [
                    ">=",
                    "4.0.0"
                ]
            ]
        },
        {
            "name": "google-generativeai",
            "specs": [
                [
                    ">=",
                    "0.3.0"
                ]
            ]
        },
        {
            "name": "langdetect",
            "specs": [
                [
                    ">=",
                    "1.0.9"
                ]
            ]
        },
        {
            "name": "pytest",
            "specs": [
                [
                    ">=",
                    "7.4.0"
                ]
            ]
        },
        {
            "name": "pytest-cov",
            "specs": [
                [
                    ">=",
                    "4.1.0"
                ]
            ]
        },
        {
            "name": "black",
            "specs": [
                [
                    ">=",
                    "23.7.0"
                ]
            ]
        },
        {
            "name": "flake8",
            "specs": [
                [
                    ">=",
                    "6.1.0"
                ]
            ]
        },
        {
            "name": "mypy",
            "specs": [
                [
                    ">=",
                    "1.5.0"
                ]
            ]
        }
    ],
    "lcname": "youtube-thumbnail-generator"
}
        
Elapsed time: 4.26254s