Skip to main content

Official Python client library for AutoSubtitle.net API

Project description

AutoSubtitle Python Client

Official Python client library for AutoSubtitle.net API - Automatically generate subtitles for videos.

Installation

pip install autosubtitle

Quick Start

from autosubtitle import AutoSubtitleClient

# Initialize the client
client = AutoSubtitleClient(api_key="your-api-key")

# Create a subtitle job from video URL
response = client.create_subtitle(
    video_url="https://example.com/video.mp4",
    language="en",
    font_name="Montserrat",
    font_size=100,
    position="bottom"
)

transaction_id = response["transaction"]["id"]
print(f"Transaction created: {transaction_id}")

# Wait for the transaction to complete
transaction = client.wait_for_transaction(transaction_id)
print(f"Status: {transaction['status']}")

Features

  • ✅ Create subtitles from video URL or file
  • ✅ Get transaction history
  • ✅ Get specific transaction by ID
  • ✅ Get billing summary and usage
  • ✅ Wait for transaction completion with polling
  • ✅ Full type hints support
  • ✅ Comprehensive error handling

API Reference

AutoSubtitleClient

Constructor

client = AutoSubtitleClient(
    api_key: str,
    base_url: str = "https://api.autosubtitle.net"
)

Methods

create_subtitle()

Create a subtitle generation job.

response = client.create_subtitle(
    video_url: Optional[str] = None,
    video_file: Optional[Union[BinaryIO, bytes]] = None,
    language: Optional[str] = None,
    font_name: Optional[str] = None,
    font_size: Optional[int] = None,
    font_weight: Optional[str] = None,  # 'normal', 'bold', 'light'
    font_color: Optional[str] = None,  # Hex code
    highlight_color: Optional[str] = None,  # Hex code
    stroke_width: Optional[int] = None,
    stroke_color: Optional[str] = None,  # Hex code
    background_color: Optional[str] = None,  # Hex code
    background_opacity: Optional[float] = None,  # 0.0-1.0
    position: Optional[str] = None,  # 'top', 'center', 'bottom'
    y_offset: Optional[int] = None,
    words_per_subtitle: Optional[int] = None,
    enable_animation: Optional[bool] = None
)

Returns: Dict[str, Any] with transaction details

Example:

# From URL
response = client.create_subtitle(
    video_url="https://example.com/video.mp4",
    language="en",
    font_name="Montserrat"
)

# From file
with open("video.mp4", "rb") as f:
    response = client.create_subtitle(
        video_file=f,
        language="tr",
        font_size=120
    )
get_transactions()

Get all subtitle transactions.

response = client.get_transactions()

Returns: Dict[str, Any] with list of transactions

get_transaction(transaction_id: str)

Get a specific transaction by ID.

response = client.get_transaction("transaction-id")

Returns: Dict[str, Any] with transaction details

get_billing_summary()

Get billing summary and usage information.

summary = client.get_billing_summary()

Returns: Dict[str, Any] with billing information

wait_for_transaction()

Wait for a transaction to complete.

transaction = client.wait_for_transaction(
    transaction_id: str,
    interval: int = 2000,  # milliseconds
    timeout: int = 300000,  # milliseconds (5 minutes)
    on_progress: Optional[Callable[[Dict[str, Any]], None]] = None
)

Returns: Dict[str, Any] with completed transaction

Example:

def on_progress(transaction):
    print(f"Status: {transaction['status']}")

transaction = client.wait_for_transaction(
    transaction_id,
    interval=2000,
    timeout=60000,
    on_progress=on_progress
)

Error Handling

The client raises AutoSubtitleError for API errors:

from autosubtitle import AutoSubtitleClient, AutoSubtitleError

try:
    response = client.create_subtitle(video_url="invalid-url")
except AutoSubtitleError as e:
    print(f"Error: {e.message}")
    print(f"Status: {e.status}")
    print(f"Code: {e.code}")

Examples

Complete Workflow

from autosubtitle import AutoSubtitleClient

client = AutoSubtitleClient(api_key="your-api-key")

# Create subtitle job
response = client.create_subtitle(
    video_url="https://example.com/video.mp4",
    language="en",
    font_name="Montserrat",
    font_size=100,
    position="bottom",
    font_color="#FFFFFF",
    highlight_color="#800080"
)

transaction_id = response["transaction"]["id"]

# Wait for completion
def on_progress(transaction):
    print(f"Processing... Status: {transaction['status']}")

transaction = client.wait_for_transaction(
    transaction_id,
    on_progress=on_progress
)

if transaction["status"] == "completed":
    print(f"Result video: {transaction['result_video_url']}")
    print(f"Transcription: {transaction['transcription']}")

Get Transaction History

response = client.get_transactions()

for transaction in response["projects"]:
    print(f"ID: {transaction['id']}")
    print(f"Status: {transaction['status']}")
    print(f"Created: {transaction['created_at']}")
    print("---")

Get Billing Information

summary = client.get_billing_summary()

print(f"Plan: {summary['plan']['name']}")
print(f"Usage: {summary['usage']['used']}/{summary['usage']['limit']}")
print(f"Reset Date: {summary['usage']['resetDate']}")

Testing

Unit Tests (with mocking)

python -m pytest tests/test_client.py

Integration Tests (with real API)

export AUTOSUBTITLE_API_KEY="your-api-key"
python -m pytest tests/test_integration.py

Requirements

  • Python 3.8+
  • requests >= 2.28.0

License

MIT

Support

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

autosubtitle_api-1.0.0.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

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

autosubtitle_api-1.0.0-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file autosubtitle_api-1.0.0.tar.gz.

File metadata

  • Download URL: autosubtitle_api-1.0.0.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for autosubtitle_api-1.0.0.tar.gz
Algorithm Hash digest
SHA256 6171af0f62fef7af0d6f842ad43414340ddec8802a096167170e3fded6cee938
MD5 87b84c67fbed96e380f114f72fadfb9b
BLAKE2b-256 e80a46b5f82b96ce271ab9377f00a3c033522d2d612dedbf3e18bbe69bd04ff6

See more details on using hashes here.

File details

Details for the file autosubtitle_api-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for autosubtitle_api-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f7d7976d725177ca6cd46c8b89afb0b65d78d5d76dd0478a7073c32b3136b98c
MD5 a9438b8590b1226ebbd6dfbbf1ec5479
BLAKE2b-256 425f6d1339810e04769e8c553f7d5c59cf6a10a0d5301137b762a55f116d9bac

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