magic_hour


Namemagic_hour JSON
Version 0.39.0 PyPI version JSON
download
home_pageNone
SummaryPython SDK for Magic Hour API
upload_time2025-09-16 18:37:41
maintainerNone
docs_urlNone
authorNone
requires_python<4.0,>=3.8
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Magic Hour Python SDK

[![PyPI - Version](https://img.shields.io/pypi/v/magic_hour)](https://pypi.org/project/magic_hour/)

The Magic Hour Python Library provides convenient access to the Magic Hour API. This library offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).

## Documentation

For full documentation of all APIs, please visit https://docs.magichour.ai

If you have any questions, please reach out to us via [discord](https://discord.gg/JX5rgsZaJp).

## Install

```sh
pip install magic_hour
```

## Synchronous Client Usage

```python
from magic_hour import Client

# generate your API Key at https://magichour.ai/developer
client = Client(token="my api key")

response = client.v1.face_swap_photo.generate(
    assets={
        "face_swap_mode": "all-faces",
        "source_file_path": "/path/to/source/image.png",
        "source/image": "/path/to/target/image.png",
    },
    name="Face Swap image",
    wait_for_completion=True,
    download_outputs=True,
    download_directory="./outputs/",
)
print(f"Project ID: {response.id}")
print(f"Status: {response.status}")
print(f"Downloaded files: {response.downloaded_paths}")
```

### Asynchronous Client Usage

```python
from magic_hour import AsyncClient

# generate your API Key at https://magichour.ai/developer
client = AsyncClient(token="my api key")

response = await client.v1.face_swap_photo.generate(
    assets={
        "face_swap_mode": "all-faces",
        "source_file_path": "/path/to/source/image.png",
        "target_file_path": "/path/to/target/image.png",
    },
    name="Face Swap image",
    wait_for_completion=True,
    download_outputs=True,
    download_directory="./outputs/",
)
print(f"Project ID: {response.id}")
print(f"Status: {response.status}")
print(f"Downloaded files: {response.downloaded_paths}")
```

## Client Functions

Most resources that generate media content support two methods:

- **`generate()`** - A high-level convenience method that handles the entire workflow
- **`create()`** - A low-level method that only initiates the generation process

### Generate Function

The `generate()` function provides a complete end-to-end solution:

- Uploads local file to Magic Hour storage
- Calls the API to start generation
- Automatically polls for completion
- Downloads generated files to your local machine
- Returns both API response data and local file paths

**Additional Parameters:**

- `wait_for_completion` (bool, default True): Whether to wait for the project to complete.
- `download_outputs` (bool, default True): Whether to download the generated files
- `download_directory` (str, optional): Directory to save downloaded files (defaults to current directory)

```python
# Generate function - handles everything automatically
response = client.v1.ai_image_generator.generate(
    style={"prompt": "A beautiful sunset over mountains"},
    name="Sunset Image",
    wait_for_completion=True,       # Wait for status to be complete/error/canceled
    download_outputs=True,          # Download files automatically
    download_directory="./outputs/" # Where to save files
)

# You get both the API response AND downloaded file paths
print(f"Project ID: {response.id}")
print(f"Status: {response.status}")
print(f"Downloaded files: {response.downloaded_paths}")
```

### Create Function

The `create()` function provides granular control:

- Only calls the API to start the generation process
- Returns immediately with a project ID and amount of credits used
- Requires manual status checking and file downloading

```python
# Create function - only starts the process
create_response = client.v1.ai_image_generator.create(
    style={"prompt": "A beautiful sunset over mountains"},
    name="Sunset Image"
)

# You get just the project ID and initial response
project_id = create_response.id
print(f"Started project: {project_id}")

# You must handle the rest:
# 1. Poll for completion. We provide a helper function to handle polling for you
result = client.v1.image_projects.check_status(
    wait_for_completion=True,
    download_outputs=False,
)
# 2. Download files using the download URLs
download_urls = result.downloads
# download the files using your preferred way
```

### Choosing Between Which Function to use

**Use `generate()` when:**

- You want a simple, one-call solution
- You're building a straightforward application
- You don't need custom polling or download logic

**Use `create()` when:**

- You need custom status checking logic
- You're integrating with existing job processing systems
- You want to separate generation initiation from completion handling
- You need fine-grained control over the entire workflow

## Module Documentation and Snippets

### [v1](magic_hour/resources/v1/README.md)


### [v1.ai_clothes_changer](magic_hour/resources/v1/ai_clothes_changer/README.md)

* [create](magic_hour/resources/v1/ai_clothes_changer/README.md#create) - AI Clothes Changer
* [generate](magic_hour/resources/v1/ai_clothes_changer/README.md#generate) - AI Clothes Changer Generate Workflow

### [v1.ai_face_editor](magic_hour/resources/v1/ai_face_editor/README.md)

* [create](magic_hour/resources/v1/ai_face_editor/README.md#create) - AI Face Editor
* [generate](magic_hour/resources/v1/ai_face_editor/README.md#generate) - Ai Face Editor Generate Workflow

### [v1.ai_gif_generator](magic_hour/resources/v1/ai_gif_generator/README.md)

* [create](magic_hour/resources/v1/ai_gif_generator/README.md#create) - AI GIFs
* [generate](magic_hour/resources/v1/ai_gif_generator/README.md#generate) - Ai Gif Generator Generate Workflow

### [v1.ai_headshot_generator](magic_hour/resources/v1/ai_headshot_generator/README.md)

* [create](magic_hour/resources/v1/ai_headshot_generator/README.md#create) - AI Headshots
* [generate](magic_hour/resources/v1/ai_headshot_generator/README.md#generate) - Ai Headshot Generator Generate Workflow

### [v1.ai_image_editor](magic_hour/resources/v1/ai_image_editor/README.md)

* [create](magic_hour/resources/v1/ai_image_editor/README.md#create) - AI Image Editor
* [generate](magic_hour/resources/v1/ai_image_editor/README.md#generate) - Ai Image Editor Generate Workflow

### [v1.ai_image_generator](magic_hour/resources/v1/ai_image_generator/README.md)

* [create](magic_hour/resources/v1/ai_image_generator/README.md#create) - AI Images
* [generate](magic_hour/resources/v1/ai_image_generator/README.md#generate) - Ai Image Generator Generate Workflow

### [v1.ai_image_upscaler](magic_hour/resources/v1/ai_image_upscaler/README.md)

* [create](magic_hour/resources/v1/ai_image_upscaler/README.md#create) - AI Image Upscaler
* [generate](magic_hour/resources/v1/ai_image_upscaler/README.md#generate) - Ai Image Upscaler Generate Workflow

### [v1.ai_meme_generator](magic_hour/resources/v1/ai_meme_generator/README.md)

* [create](magic_hour/resources/v1/ai_meme_generator/README.md#create) - AI Meme Generator
* [generate](magic_hour/resources/v1/ai_meme_generator/README.md#generate) - Ai Meme Generator Generate Workflow

### [v1.ai_photo_editor](magic_hour/resources/v1/ai_photo_editor/README.md)

* [create](magic_hour/resources/v1/ai_photo_editor/README.md#create) - AI Photo Editor
* [generate](magic_hour/resources/v1/ai_photo_editor/README.md#generate) - Ai Photo Editor Generate Workflow

### [v1.ai_qr_code_generator](magic_hour/resources/v1/ai_qr_code_generator/README.md)

* [create](magic_hour/resources/v1/ai_qr_code_generator/README.md#create) - AI QR Code
* [generate](magic_hour/resources/v1/ai_qr_code_generator/README.md#generate) - Ai Qr Code Generator Generate Workflow

### [v1.ai_talking_photo](magic_hour/resources/v1/ai_talking_photo/README.md)

* [create](magic_hour/resources/v1/ai_talking_photo/README.md#create) - AI Talking Photo
* [generate](magic_hour/resources/v1/ai_talking_photo/README.md#generate) - Ai Talking Photo Generate Workflow

### [v1.animation](magic_hour/resources/v1/animation/README.md)

* [create](magic_hour/resources/v1/animation/README.md#create) - Animation
* [generate](magic_hour/resources/v1/animation/README.md#generate) - Animation Generate Workflow

### [v1.auto_subtitle_generator](magic_hour/resources/v1/auto_subtitle_generator/README.md)

* [create](magic_hour/resources/v1/auto_subtitle_generator/README.md#create) - Auto Subtitle Generator
* [generate](magic_hour/resources/v1/auto_subtitle_generator/README.md#generate) - Auto Subtitle Generator Generate Workflow

### [v1.face_detection](magic_hour/resources/v1/face_detection/README.md)

* [create](magic_hour/resources/v1/face_detection/README.md#create) - Face Detection
* [generate](magic_hour/resources/v1/face_detection/README.md#generate) - Face Detection Generate Workflow
* [get](magic_hour/resources/v1/face_detection/README.md#get) - Get face detection details

### [v1.face_swap](magic_hour/resources/v1/face_swap/README.md)

* [create](magic_hour/resources/v1/face_swap/README.md#create) - Face Swap video
* [generate](magic_hour/resources/v1/face_swap/README.md#generate) - Face Swap Generate Workflow

### [v1.face_swap_photo](magic_hour/resources/v1/face_swap_photo/README.md)

* [create](magic_hour/resources/v1/face_swap_photo/README.md#create) - Face Swap Photo
* [generate](magic_hour/resources/v1/face_swap_photo/README.md#generate) - Face Swap Photo Generate Workflow

### [v1.files](magic_hour/resources/v1/files/README.md)

* [upload-file](magic_hour/resources/v1/files/README.md#upload-file) - Upload File

### [v1.files.upload_urls](magic_hour/resources/v1/files/upload_urls/README.md)

* [create](magic_hour/resources/v1/files/upload_urls/README.md#create) - Generate asset upload urls

### [v1.image_background_remover](magic_hour/resources/v1/image_background_remover/README.md)

* [create](magic_hour/resources/v1/image_background_remover/README.md#create) - Image Background Remover
* [generate](magic_hour/resources/v1/image_background_remover/README.md#generate) - Image Background Remover Generate Workflow

### [v1.image_projects](magic_hour/resources/v1/image_projects/README.md)

* [check-result](magic_hour/resources/v1/image_projects/README.md#check-result) - Check results
* [delete](magic_hour/resources/v1/image_projects/README.md#delete) - Delete image
* [get](magic_hour/resources/v1/image_projects/README.md#get) - Get image details

### [v1.image_to_video](magic_hour/resources/v1/image_to_video/README.md)

* [create](magic_hour/resources/v1/image_to_video/README.md#create) - Image-to-Video
* [generate](magic_hour/resources/v1/image_to_video/README.md#generate) - Image To Video Generate Workflow

### [v1.lip_sync](magic_hour/resources/v1/lip_sync/README.md)

* [create](magic_hour/resources/v1/lip_sync/README.md#create) - Lip Sync
* [generate](magic_hour/resources/v1/lip_sync/README.md#generate) - Lip Sync Generate Workflow

### [v1.photo_colorizer](magic_hour/resources/v1/photo_colorizer/README.md)

* [create](magic_hour/resources/v1/photo_colorizer/README.md#create) - Photo Colorizer
* [generate](magic_hour/resources/v1/photo_colorizer/README.md#generate) - Photo Colorizer Generate Workflow

### [v1.text_to_video](magic_hour/resources/v1/text_to_video/README.md)

* [create](magic_hour/resources/v1/text_to_video/README.md#create) - Text-to-Video
* [generate](magic_hour/resources/v1/text_to_video/README.md#generate) - Text To Video Generate Workflow

### [v1.video_projects](magic_hour/resources/v1/video_projects/README.md)

* [check-result](magic_hour/resources/v1/video_projects/README.md#check-result) - Check results
* [delete](magic_hour/resources/v1/video_projects/README.md#delete) - Delete video
* [get](magic_hour/resources/v1/video_projects/README.md#get) - Get video details

### [v1.video_to_video](magic_hour/resources/v1/video_to_video/README.md)

* [create](magic_hour/resources/v1/video_to_video/README.md#create) - Video-to-Video
* [generate](magic_hour/resources/v1/video_to_video/README.md#generate) - Video To Video Generate Workflow

<!-- MODULE DOCS END -->

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "magic_hour",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": null,
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/02/a0/3550c24e02d1150cf48af86c611f0f3d946b5bf0e8fb2be04f3cc24ccf1b/magic_hour-0.39.0.tar.gz",
    "platform": null,
    "description": "# Magic Hour Python SDK\n\n[![PyPI - Version](https://img.shields.io/pypi/v/magic_hour)](https://pypi.org/project/magic_hour/)\n\nThe Magic Hour Python Library provides convenient access to the Magic Hour API. This library offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).\n\n## Documentation\n\nFor full documentation of all APIs, please visit https://docs.magichour.ai\n\nIf you have any questions, please reach out to us via [discord](https://discord.gg/JX5rgsZaJp).\n\n## Install\n\n```sh\npip install magic_hour\n```\n\n## Synchronous Client Usage\n\n```python\nfrom magic_hour import Client\n\n# generate your API Key at https://magichour.ai/developer\nclient = Client(token=\"my api key\")\n\nresponse = client.v1.face_swap_photo.generate(\n    assets={\n        \"face_swap_mode\": \"all-faces\",\n        \"source_file_path\": \"/path/to/source/image.png\",\n        \"source/image\": \"/path/to/target/image.png\",\n    },\n    name=\"Face Swap image\",\n    wait_for_completion=True,\n    download_outputs=True,\n    download_directory=\"./outputs/\",\n)\nprint(f\"Project ID: {response.id}\")\nprint(f\"Status: {response.status}\")\nprint(f\"Downloaded files: {response.downloaded_paths}\")\n```\n\n### Asynchronous Client Usage\n\n```python\nfrom magic_hour import AsyncClient\n\n# generate your API Key at https://magichour.ai/developer\nclient = AsyncClient(token=\"my api key\")\n\nresponse = await client.v1.face_swap_photo.generate(\n    assets={\n        \"face_swap_mode\": \"all-faces\",\n        \"source_file_path\": \"/path/to/source/image.png\",\n        \"target_file_path\": \"/path/to/target/image.png\",\n    },\n    name=\"Face Swap image\",\n    wait_for_completion=True,\n    download_outputs=True,\n    download_directory=\"./outputs/\",\n)\nprint(f\"Project ID: {response.id}\")\nprint(f\"Status: {response.status}\")\nprint(f\"Downloaded files: {response.downloaded_paths}\")\n```\n\n## Client Functions\n\nMost resources that generate media content support two methods:\n\n- **`generate()`** - A high-level convenience method that handles the entire workflow\n- **`create()`** - A low-level method that only initiates the generation process\n\n### Generate Function\n\nThe `generate()` function provides a complete end-to-end solution:\n\n- Uploads local file to Magic Hour storage\n- Calls the API to start generation\n- Automatically polls for completion\n- Downloads generated files to your local machine\n- Returns both API response data and local file paths\n\n**Additional Parameters:**\n\n- `wait_for_completion` (bool, default True): Whether to wait for the project to complete.\n- `download_outputs` (bool, default True): Whether to download the generated files\n- `download_directory` (str, optional): Directory to save downloaded files (defaults to current directory)\n\n```python\n# Generate function - handles everything automatically\nresponse = client.v1.ai_image_generator.generate(\n    style={\"prompt\": \"A beautiful sunset over mountains\"},\n    name=\"Sunset Image\",\n    wait_for_completion=True,       # Wait for status to be complete/error/canceled\n    download_outputs=True,          # Download files automatically\n    download_directory=\"./outputs/\" # Where to save files\n)\n\n# You get both the API response AND downloaded file paths\nprint(f\"Project ID: {response.id}\")\nprint(f\"Status: {response.status}\")\nprint(f\"Downloaded files: {response.downloaded_paths}\")\n```\n\n### Create Function\n\nThe `create()` function provides granular control:\n\n- Only calls the API to start the generation process\n- Returns immediately with a project ID and amount of credits used\n- Requires manual status checking and file downloading\n\n```python\n# Create function - only starts the process\ncreate_response = client.v1.ai_image_generator.create(\n    style={\"prompt\": \"A beautiful sunset over mountains\"},\n    name=\"Sunset Image\"\n)\n\n# You get just the project ID and initial response\nproject_id = create_response.id\nprint(f\"Started project: {project_id}\")\n\n# You must handle the rest:\n# 1. Poll for completion. We provide a helper function to handle polling for you\nresult = client.v1.image_projects.check_status(\n    wait_for_completion=True,\n    download_outputs=False,\n)\n# 2. Download files using the download URLs\ndownload_urls = result.downloads\n# download the files using your preferred way\n```\n\n### Choosing Between Which Function to use\n\n**Use `generate()` when:**\n\n- You want a simple, one-call solution\n- You're building a straightforward application\n- You don't need custom polling or download logic\n\n**Use `create()` when:**\n\n- You need custom status checking logic\n- You're integrating with existing job processing systems\n- You want to separate generation initiation from completion handling\n- You need fine-grained control over the entire workflow\n\n## Module Documentation and Snippets\n\n### [v1](magic_hour/resources/v1/README.md)\n\n\n### [v1.ai_clothes_changer](magic_hour/resources/v1/ai_clothes_changer/README.md)\n\n* [create](magic_hour/resources/v1/ai_clothes_changer/README.md#create) - AI Clothes Changer\n* [generate](magic_hour/resources/v1/ai_clothes_changer/README.md#generate) - AI Clothes Changer Generate Workflow\n\n### [v1.ai_face_editor](magic_hour/resources/v1/ai_face_editor/README.md)\n\n* [create](magic_hour/resources/v1/ai_face_editor/README.md#create) - AI Face Editor\n* [generate](magic_hour/resources/v1/ai_face_editor/README.md#generate) - Ai Face Editor Generate Workflow\n\n### [v1.ai_gif_generator](magic_hour/resources/v1/ai_gif_generator/README.md)\n\n* [create](magic_hour/resources/v1/ai_gif_generator/README.md#create) - AI GIFs\n* [generate](magic_hour/resources/v1/ai_gif_generator/README.md#generate) - Ai Gif Generator Generate Workflow\n\n### [v1.ai_headshot_generator](magic_hour/resources/v1/ai_headshot_generator/README.md)\n\n* [create](magic_hour/resources/v1/ai_headshot_generator/README.md#create) - AI Headshots\n* [generate](magic_hour/resources/v1/ai_headshot_generator/README.md#generate) - Ai Headshot Generator Generate Workflow\n\n### [v1.ai_image_editor](magic_hour/resources/v1/ai_image_editor/README.md)\n\n* [create](magic_hour/resources/v1/ai_image_editor/README.md#create) - AI Image Editor\n* [generate](magic_hour/resources/v1/ai_image_editor/README.md#generate) - Ai Image Editor Generate Workflow\n\n### [v1.ai_image_generator](magic_hour/resources/v1/ai_image_generator/README.md)\n\n* [create](magic_hour/resources/v1/ai_image_generator/README.md#create) - AI Images\n* [generate](magic_hour/resources/v1/ai_image_generator/README.md#generate) - Ai Image Generator Generate Workflow\n\n### [v1.ai_image_upscaler](magic_hour/resources/v1/ai_image_upscaler/README.md)\n\n* [create](magic_hour/resources/v1/ai_image_upscaler/README.md#create) - AI Image Upscaler\n* [generate](magic_hour/resources/v1/ai_image_upscaler/README.md#generate) - Ai Image Upscaler Generate Workflow\n\n### [v1.ai_meme_generator](magic_hour/resources/v1/ai_meme_generator/README.md)\n\n* [create](magic_hour/resources/v1/ai_meme_generator/README.md#create) - AI Meme Generator\n* [generate](magic_hour/resources/v1/ai_meme_generator/README.md#generate) - Ai Meme Generator Generate Workflow\n\n### [v1.ai_photo_editor](magic_hour/resources/v1/ai_photo_editor/README.md)\n\n* [create](magic_hour/resources/v1/ai_photo_editor/README.md#create) - AI Photo Editor\n* [generate](magic_hour/resources/v1/ai_photo_editor/README.md#generate) - Ai Photo Editor Generate Workflow\n\n### [v1.ai_qr_code_generator](magic_hour/resources/v1/ai_qr_code_generator/README.md)\n\n* [create](magic_hour/resources/v1/ai_qr_code_generator/README.md#create) - AI QR Code\n* [generate](magic_hour/resources/v1/ai_qr_code_generator/README.md#generate) - Ai Qr Code Generator Generate Workflow\n\n### [v1.ai_talking_photo](magic_hour/resources/v1/ai_talking_photo/README.md)\n\n* [create](magic_hour/resources/v1/ai_talking_photo/README.md#create) - AI Talking Photo\n* [generate](magic_hour/resources/v1/ai_talking_photo/README.md#generate) - Ai Talking Photo Generate Workflow\n\n### [v1.animation](magic_hour/resources/v1/animation/README.md)\n\n* [create](magic_hour/resources/v1/animation/README.md#create) - Animation\n* [generate](magic_hour/resources/v1/animation/README.md#generate) - Animation Generate Workflow\n\n### [v1.auto_subtitle_generator](magic_hour/resources/v1/auto_subtitle_generator/README.md)\n\n* [create](magic_hour/resources/v1/auto_subtitle_generator/README.md#create) - Auto Subtitle Generator\n* [generate](magic_hour/resources/v1/auto_subtitle_generator/README.md#generate) - Auto Subtitle Generator Generate Workflow\n\n### [v1.face_detection](magic_hour/resources/v1/face_detection/README.md)\n\n* [create](magic_hour/resources/v1/face_detection/README.md#create) - Face Detection\n* [generate](magic_hour/resources/v1/face_detection/README.md#generate) - Face Detection Generate Workflow\n* [get](magic_hour/resources/v1/face_detection/README.md#get) - Get face detection details\n\n### [v1.face_swap](magic_hour/resources/v1/face_swap/README.md)\n\n* [create](magic_hour/resources/v1/face_swap/README.md#create) - Face Swap video\n* [generate](magic_hour/resources/v1/face_swap/README.md#generate) - Face Swap Generate Workflow\n\n### [v1.face_swap_photo](magic_hour/resources/v1/face_swap_photo/README.md)\n\n* [create](magic_hour/resources/v1/face_swap_photo/README.md#create) - Face Swap Photo\n* [generate](magic_hour/resources/v1/face_swap_photo/README.md#generate) - Face Swap Photo Generate Workflow\n\n### [v1.files](magic_hour/resources/v1/files/README.md)\n\n* [upload-file](magic_hour/resources/v1/files/README.md#upload-file) - Upload File\n\n### [v1.files.upload_urls](magic_hour/resources/v1/files/upload_urls/README.md)\n\n* [create](magic_hour/resources/v1/files/upload_urls/README.md#create) - Generate asset upload urls\n\n### [v1.image_background_remover](magic_hour/resources/v1/image_background_remover/README.md)\n\n* [create](magic_hour/resources/v1/image_background_remover/README.md#create) - Image Background Remover\n* [generate](magic_hour/resources/v1/image_background_remover/README.md#generate) - Image Background Remover Generate Workflow\n\n### [v1.image_projects](magic_hour/resources/v1/image_projects/README.md)\n\n* [check-result](magic_hour/resources/v1/image_projects/README.md#check-result) - Check results\n* [delete](magic_hour/resources/v1/image_projects/README.md#delete) - Delete image\n* [get](magic_hour/resources/v1/image_projects/README.md#get) - Get image details\n\n### [v1.image_to_video](magic_hour/resources/v1/image_to_video/README.md)\n\n* [create](magic_hour/resources/v1/image_to_video/README.md#create) - Image-to-Video\n* [generate](magic_hour/resources/v1/image_to_video/README.md#generate) - Image To Video Generate Workflow\n\n### [v1.lip_sync](magic_hour/resources/v1/lip_sync/README.md)\n\n* [create](magic_hour/resources/v1/lip_sync/README.md#create) - Lip Sync\n* [generate](magic_hour/resources/v1/lip_sync/README.md#generate) - Lip Sync Generate Workflow\n\n### [v1.photo_colorizer](magic_hour/resources/v1/photo_colorizer/README.md)\n\n* [create](magic_hour/resources/v1/photo_colorizer/README.md#create) - Photo Colorizer\n* [generate](magic_hour/resources/v1/photo_colorizer/README.md#generate) - Photo Colorizer Generate Workflow\n\n### [v1.text_to_video](magic_hour/resources/v1/text_to_video/README.md)\n\n* [create](magic_hour/resources/v1/text_to_video/README.md#create) - Text-to-Video\n* [generate](magic_hour/resources/v1/text_to_video/README.md#generate) - Text To Video Generate Workflow\n\n### [v1.video_projects](magic_hour/resources/v1/video_projects/README.md)\n\n* [check-result](magic_hour/resources/v1/video_projects/README.md#check-result) - Check results\n* [delete](magic_hour/resources/v1/video_projects/README.md#delete) - Delete video\n* [get](magic_hour/resources/v1/video_projects/README.md#get) - Get video details\n\n### [v1.video_to_video](magic_hour/resources/v1/video_to_video/README.md)\n\n* [create](magic_hour/resources/v1/video_to_video/README.md#create) - Video-to-Video\n* [generate](magic_hour/resources/v1/video_to_video/README.md#generate) - Video To Video Generate Workflow\n\n<!-- MODULE DOCS END -->\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Python SDK for Magic Hour API",
    "version": "0.39.0",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d1b23e65cf0727cdef4182cbf53025fd17ff1de37783e8dc2e2b7483ca9943ff",
                "md5": "6d945edbb7b6e695106f4a798b24e652",
                "sha256": "bc844caaef7a95f3de9bb2c9c0daf46990d5f4d5ddee02a7ac727e3bf33d6901"
            },
            "downloads": -1,
            "filename": "magic_hour-0.39.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6d945edbb7b6e695106f4a798b24e652",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.8",
            "size": 216018,
            "upload_time": "2025-09-16T18:37:40",
            "upload_time_iso_8601": "2025-09-16T18:37:40.149792Z",
            "url": "https://files.pythonhosted.org/packages/d1/b2/3e65cf0727cdef4182cbf53025fd17ff1de37783e8dc2e2b7483ca9943ff/magic_hour-0.39.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "02a03550c24e02d1150cf48af86c611f0f3d946b5bf0e8fb2be04f3cc24ccf1b",
                "md5": "ddbe7ead61ebee65ac1f54243458eac1",
                "sha256": "26509a69c75f8078f9cf5c02a534040bcbe72d7a788641476edb2e133f5395ff"
            },
            "downloads": -1,
            "filename": "magic_hour-0.39.0.tar.gz",
            "has_sig": false,
            "md5_digest": "ddbe7ead61ebee65ac1f54243458eac1",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.8",
            "size": 80517,
            "upload_time": "2025-09-16T18:37:41",
            "upload_time_iso_8601": "2025-09-16T18:37:41.329591Z",
            "url": "https://files.pythonhosted.org/packages/02/a0/3550c24e02d1150cf48af86c611f0f3d946b5bf0e8fb2be04f3cc24ccf1b/magic_hour-0.39.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-16 18:37:41",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "magic_hour"
}
        
Elapsed time: 3.35281s