Python SDK

Tools

Download media and generate AI captions with the Late Python SDK

The Tools resource provides utilities for downloading media from social platforms and generating AI-powered captions.

Rate Limits by Plan

  • Build: 50 requests/day
  • Accelerate: 500 requests/day
  • Unlimited: Unlimited

Video Downloads

YouTube

from late import Late

client = Late(api_key="your_api_key")

# Download YouTube video
response = client.tools.youtube_download("https://youtube.com/watch?v=dQw4w9WgXcQ")

print(f"Title: {response.title}")
print(f"Download URL: {response.downloadUrl}")

# Download specific format/quality
result = client.tools.youtube_download(
    "https://youtube.com/watch?v=dQw4w9WgXcQ",
    format_id="22"  # Specific format ID
)

YouTube Transcripts

# Get transcript
response = client.tools.youtube_transcript("https://youtube.com/watch?v=dQw4w9WgXcQ")

print(f"Language: {response.language}")
for segment in response.transcript:
    print(f"[{segment.start}] {segment.text}")

# Request specific language
result = client.tools.youtube_transcript(
    "https://youtube.com/watch?v=dQw4w9WgXcQ",
    lang="es"  # Spanish
)

Instagram

# Download Instagram reel or post
response = client.tools.instagram_download("https://instagram.com/reel/ABC123...")

print(f"Type: {response.type}")
print(f"Download URL: {response.downloadUrl}")

TikTok

# Download TikTok video (without watermark by default)
response = client.tools.tiktok_download("https://tiktok.com/@user/video/123...")

print(f"Download URL: {response.downloadUrl}")

# Download with watermark
result = client.tools.tiktok_download(
    "https://tiktok.com/@user/video/123...",
    no_watermark=False
)

Twitter/X

# Download Twitter video
response = client.tools.twitter_download("https://twitter.com/user/status/123...")

print(f"Download URL: {response.downloadUrl}")

Facebook

# Download Facebook video
response = client.tools.facebook_download("https://facebook.com/watch?v=123...")

print(f"Download URL: {response.downloadUrl}")

LinkedIn

# Download LinkedIn video
response = client.tools.linkedin_download("https://linkedin.com/posts/...")

print(f"Download URL: {response.downloadUrl}")

Bluesky

# Download Bluesky video
response = client.tools.bluesky_download("https://bsky.app/profile/user/post/...")

print(f"Download URL: {response.downloadUrl}")

Instagram Hashtag Checker

Check if hashtags are banned or restricted on Instagram:

response = client.tools.instagram_hashtag_check([
    "love",
    "photography",
    "fitness"
])

for hashtag in response.hashtags:
    status = "Banned" if hashtag.banned else "OK"
    print(f"#{hashtag.tag}: {status}")

AI Caption Generator

Generate captions for images using AI:

from late import CaptionTone

# Basic caption generation
response = client.tools.generate_caption(
    image_url="https://example.com/product.jpg"
)

print(response.caption)

# With tone specification (using enum)
result = client.tools.generate_caption(
    image_url="https://example.com/product.jpg",
    tone=CaptionTone.PROFESSIONAL
)

# With custom prompt
result = client.tools.generate_caption(
    image_url="https://example.com/product.jpg",
    prompt="Write a caption for a tech startup announcement"
)

# Combine tone and prompt
result = client.tools.generate_caption(
    image_url="https://example.com/product.jpg",
    tone=CaptionTone.HUMOROUS,
    prompt="Caption for a Monday morning coffee post"
)

Available Tones:

EnumStringDescription
CaptionTone.PROFESSIONAL"professional"Business-appropriate, formal language
CaptionTone.CASUAL"casual"Friendly, conversational style
CaptionTone.HUMOROUS"humorous"Fun, witty, with personality
CaptionTone.INSPIRATIONAL"inspirational"Motivational, uplifting
CaptionTone.INFORMATIVE"informative"Educational, fact-focused

Async Methods

All tools have async versions:

import asyncio
from late import Late, CaptionTone

async def use_tools():
    async with Late(api_key="your_api_key") as client:
        # YouTube
        video = await client.tools.ayoutube_download("https://youtube.com/...")
        transcript = await client.tools.ayoutube_transcript("https://youtube.com/...")

        # Other platforms
        ig = await client.tools.ainstagram_download("https://instagram.com/...")
        tt = await client.tools.atiktok_download("https://tiktok.com/...")
        tw = await client.tools.atwitter_download("https://twitter.com/...")
        fb = await client.tools.afacebook_download("https://facebook.com/...")
        li = await client.tools.alinkedin_download("https://linkedin.com/...")
        bs = await client.tools.abluesky_download("https://bsky.app/...")

        # Hashtag check
        hashtags = await client.tools.ainstagram_hashtag_check(["love", "photo"])

        # Caption generation
        caption = await client.tools.agenerate_caption(
            image_url="https://example.com/image.jpg",
            tone=CaptionTone.CASUAL
        )

asyncio.run(use_tools())

API Reference

tools.youtube_download()

Download YouTube video.

ParameterTypeRequiredDefaultDescription
urlstrYesYouTube video URL
format_idstrNoNoneSpecific format ID for quality selection

tools.youtube_transcript()

Get YouTube video transcript.

ParameterTypeRequiredDefaultDescription
urlstrYesYouTube video URL
langstrNoNoneLanguage code (e.g., "en", "es")

tools.instagram_download()

Download Instagram reel or post.

ParameterTypeRequiredDescription
urlstrYesInstagram post/reel URL

tools.instagram_hashtag_check()

Check Instagram hashtags for bans.

ParameterTypeRequiredDescription
hashtagslist[str]YesList of hashtags to check (without #)

tools.tiktok_download()

Download TikTok video.

ParameterTypeRequiredDefaultDescription
urlstrYesTikTok video URL
no_watermarkboolNoTrueDownload without watermark

tools.twitter_download()

Download Twitter/X video.

ParameterTypeRequiredDescription
urlstrYesTwitter video URL

tools.facebook_download()

Download Facebook video.

ParameterTypeRequiredDescription
urlstrYesFacebook video URL

tools.linkedin_download()

Download LinkedIn video.

ParameterTypeRequiredDescription
urlstrYesLinkedIn post URL

tools.bluesky_download()

Download Bluesky video.

ParameterTypeRequiredDescription
urlstrYesBluesky post URL

tools.generate_caption()

Generate AI caption for an image.

ParameterTypeRequiredDefaultDescription
image_urlstrYesURL of the image to analyze
promptstrNoNoneCustom prompt for generation
toneCaptionTone | strNoNoneTone: CaptionTone.PROFESSIONAL, CASUAL, HUMOROUS, INSPIRATIONAL, INFORMATIVE