Skip to main content

A Python SDK for the PodFeed API

Project description

PodFeed SDK

A Python SDK for the PodFeed API, enabling developers to generate high-quality Podcast-style audio content from various input sources using AI.

Features

  • Multiple Input Types: Support for text, URLs, files, topics, and bring-your-own-script
  • Combined Sources: Combine multiple URLs, text blocks, and files in a single request (up to 10 sources)
  • Pre-add to Feed: Optionally add generated audio to a podcast feed automatically via feed_id
  • Feed Management: List feeds, create feeds, add existing audios to feeds
  • Audio Generation Modes: Monologue (single voice) and dialogue (two voices) modes
  • Voice Customization: Multiple voice options for different languages. Some voices support custom instructions
  • Script Customization: Adjustable complexity levels, lengths, and emphasis

Installation

pip install podfeed-sdk

Authentication

The SDK supports two ways to provide your API key:

  1. Environment Variable:

    export PODFEED_API_KEY="your-api-key-here"
    
  2. Direct initialization:

    from podfeed import PodfeedClient
    
    client = PodfeedClient(api_key="your-api-key-here")
    

Quick Start

Get an API key

Go to https://podfeed.ai, log in, and get an API key.

Generate Audio (from Website)

from podfeed import (
    PodfeedClient,
    PodfeedError,
    AudioGenerationRequest,
    InputContent,
    VoiceConfig,
    ContentConfig,
)

# Initialize client (uses PODFEED_API_KEY env var)
client = PodfeedClient()

# Example URL
website_url = "https://podfeed.ai/faq"

# Generate audio from website
result = client.generate_audio(
    request=AudioGenerationRequest(
        input_type="url",
        mode="dialogue",
        input_content=InputContent(url=website_url),
        voice_config=VoiceConfig(
            host_voice="google-male-puck", cohost_voice="google-female-leda"
        ),
        content_config=ContentConfig(
            level="intermediate",
            length="medium",
            language="en-US",
        ),
    )
)

task_id = result["task_id"]
print(f"Task created: {task_id}")

# Wait for completion
final = client.wait_for_completion(task_id)
print(f"Audio generated: {final['result']['audio_url']}")

Combined Sources (Text + URL + File)

Combine multiple inputs in one request:

from podfeed import SourceItem

result = client.generate_audio(
    request=AudioGenerationRequest(
        content_type="sources",
        sources_content=[
            SourceItem(input_type="text", content="Introduction to AI..."),
            SourceItem(input_type="url", content="https://example.com/article"),
        ],
        mode="dialogue",
        voice_config=VoiceConfig(host_voice="...", cohost_voice="..."),
        content_config=ContentConfig(language="en-US"),
    )
)

Pre-add to Feed

Add generated audio to a feed automatically:

result = client.generate_audio(
    request=AudioGenerationRequest(
        input_type="topic",
        input_content=InputContent(topic="Quantum computing"),
        mode="dialogue",
        voice_config=VoiceConfig(host_voice="...", cohost_voice="..."),
        content_config=ContentConfig(language="en-US"),
        feed_id="your-feed-id",  # Audio added to feed when ready
    )
)

List Available Voices

from podfeed import PodfeedClient

api_key = os.getenv("PODFEED_API_KEY")
if not api_key:
    print("Error: PODFEED_API_KEY environment variable not set")
    return 1

client = PodfeedClient(api_key=api_key)

voices_config = client.list_available_voices()
print(voices_config)

Usage Examples

See the example in the examples repository: https://github.com/smh-labs/podfeed-sdk-samples

Error Handling

from podfeed_sdk import PodfeedClient, PodfeedError, PodfeedAuthError, PodfeedAPIError

try:
    client = PodfeedClient()
    response = client.generate_audio(
        input_type="text",
        text_content="Sample text"
    )
except PodFeedAuthError as e:
    print(f"Authentication error: {e}")
except PodFeedAPIError as e:
    print(f"API error: {e.message} (Status: {e.status_code})")
except PodFeedError as e:
    print(f"General error: {e}")

API Reference

We'll be publishing an API reference and documentation soon.

Requirements

  • Python 3.7+
  • requests >= 2.25.0

Rate Limits

Details coming soon.

Support

For API support, email support@podfeed.ai.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

podfeed_sdk-0.6.0.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

podfeed_sdk-0.6.0-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file podfeed_sdk-0.6.0.tar.gz.

File metadata

  • Download URL: podfeed_sdk-0.6.0.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for podfeed_sdk-0.6.0.tar.gz
Algorithm Hash digest
SHA256 0b48ea6c4096e64d7b43df957bcd5be96d2b70430d724a24842c04ee908223f0
MD5 f663a5f29af1b58d7c6176c831a5b727
BLAKE2b-256 e08508f5854e2a82719d239e28677b68add3c6a294160c60dfe83f470d670c43

See more details on using hashes here.

File details

Details for the file podfeed_sdk-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: podfeed_sdk-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for podfeed_sdk-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 55193268a0c373905123d21b561a56fe2c679efc8aad525924810985175c0804
MD5 c25d3aacbdfb32e6ef3177ad7427871c
BLAKE2b-256 3fe4701944d388a1aed78477507d571c2a9b9bb213ee28161e3b8aba2f637774

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page