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
- 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
To install in editable (developer) mode:
python3 -m venv venv
. venv/bin/activate
pip install -e podfeed
Authentication
The SDK supports two ways to provide your API key:
-
Environment Variable:
export PODFEED_API_KEY="your-api-key-here"
-
Direct initialization:
from podfeed import PodfeedClient client = PodfeedClient(api_key="your-api-key-here")
Quick Start
Get an API key
Temporary Solution
- Login to tst.podfeed.ai, get JWT token from Browser
- Run:
import requests
URL = "https://podfeed-tst-gateway-deulhl0f.uc.gateway.dev"
api_key_request = {
"name": "Test key",
"description": "Test key"
}
access_token = PASTE_YOUR_ACCESS_TOKEN_HERE
api_key_response = requests.post(f"{URL}/api/api-keys/create", headers={"Authorization": f"Bearer {access_token}"},json=api_key_request)
print(api_key_response.json())
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 = response["task_id"]
print(f"Task created: {task_id}")
# Wait for completion
result = client.wait_for_completion(task_id)
print(f"Audio generated: {result['result']['audio_url']}")
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 examples directory.
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
Core Methods
generate_audio(**kwargs)- Generate audio from various input typeswait_for_completion(task_id, timeout=1800)- Wait for task completionget_task_progress(task_id)- Check task progressget_audio_status(task_id)- Get audio generation status
Audio Management
list_audios(limit=20, offset=0, status=None)- List audio filesget_audio(audio_id)- Get audio detailsdelete_audio(audio_id)- Delete audio filedownload_audio_with_metadata(audio_id)- Download with metadata
File Operations
get_upload_urls(files)- Get signed upload URLscreate_share_link(audio_id)- Create shareable link
Account
get_account_usage()- Get usage statistics
Requirements
- Python 3.7+
- requests >= 2.25.0
Rate Limits
TODO
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file podfeed_sdk-0.1.0.tar.gz.
File metadata
- Download URL: podfeed_sdk-0.1.0.tar.gz
- Upload date:
- Size: 12.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7f4698e98234b209ede5e997eaf12b307e474b98dd79c4e9f80d9091f994967
|
|
| MD5 |
46bc2218ed17e36500f50f03398d0aac
|
|
| BLAKE2b-256 |
23cea8c98c4d9f16f4f92ddfce1cc4f505344c96ca2f4fc2094e6e38251a67dd
|
File details
Details for the file podfeed_sdk-0.1.0-py3-none-any.whl.
File metadata
- Download URL: podfeed_sdk-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d9bb46024cb41e0197f9fdc0dc81f783d6cf995c4d5b60c208121977ed0ae32
|
|
| MD5 |
19404d135ebdaec61641cc817fbbf44a
|
|
| BLAKE2b-256 |
a79e04055b3dee1b9010e8e545ac8418aa13a50ad973ead8a4ee4e919d67c23a
|