Skip to main content

Quick Example

import videodb

conn = videodb.connect()
coll = conn.get_collection()

video = coll.upload("https://example.com/video.mp4")
print(video.id)  # m-xxx

Upload Methods

From URL

Upload directly from any accessible URL (S3, YouTube, public links):
# Video
video = coll.upload(url="https://youtu.be/a9__D53WsUs")

# Audio
from videodb import MediaType
audio = coll.upload(
    url="https://example.com/podcast.mp3",
    media_type=MediaType.audio
)

# Image
image = coll.upload(
    url="https://example.com/frame.jpg",
    media_type=MediaType.image
)

From Local File

Upload files from your local filesystem:
video = coll.upload(file_path="./meeting-recording.mp4")

Media Types

TypeID PrefixUse Case
Videom-xxxPrimary content, full playback
Audioa-xxxPodcasts, voice recordings
Imageimg-xxxThumbnails, frames

Upload Response

After upload, you receive a media object with:
PropertyDescription
idUnique identifier (m-xxx, a-xxx, img-xxx)
collection_idParent collection ID
nameFile name
lengthDuration in seconds (video/audio)
stream_urlHLS stream URL (video)
player_urlWeb player URL (video)

Async Uploads with Callbacks

For production workflows, use callbacks to handle upload completion:
video = coll.upload(
    url="https://example.com/large-video.mp4",
    callback_url="https://your-backend.com/webhooks/upload"
)
Your webhook receives:
{
  "success": true,
  "data": {
    "id": "m-xxx",
    "collection_id": "c-xxx",
    "name": "large-video.mp4",
    "stream_url": "https://stream.videodb.io/...",
    "player_url": "https://console.videodb.io/player?url=..."
  }
}

What You Can Build


Next Steps