
Videodb
Wire VideoDB Python APIs for upload, collections, transcoding, meeting capture, and YouTube search inside agent workflows.
Overview
VideoDB is an agent skill for the Build phase that documents the VideoDB Python SDK for collections, uploads, meetings, capture, search, and transcoding integrations.
Install
npx skills add https://github.com/affaan-m/everything-claude-code --skill videodbWhat is this skill?
- Python `videodb.connect` with API key or VIDEO_DB_API_KEY environment variable
- Collection CRUD, default collection upload, and account usage checks
- Meeting recording, capture sessions, YouTube search, and async transcode job polling
- Companion capture-reference.md for capture-session details per skill layout
- API reference layer—workflow selection defers to parent SKILL.md
- Connection method table covers collection, upload, meeting, capture, YouTube search, and transcode APIs
Adoption & trust: 4.1k installs on skills.sh; 210k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You want agents to manipulate video assets through VideoDB but lack a concise map of connection methods and job lifecycle calls.
Who is it for?
Builders already holding a VideoDB API key who embed video ingestion or transcode into an AI product.
Skip if: Creators who only need offline video editing without a VideoDB account or non-Python stacks with no SDK adoption.
When should I use this skill?
Building or debugging VideoDB Python integrations for upload, collections, capture, or transcode as described in the parent SKILL.md.
What do I get? / Deliverables
You invoke the correct VideoDB Python APIs for upload, collection management, and media jobs from an agent-driven build task.
- Working VideoDB connection calls
- Uploaded or transcoded media references
- Job IDs and status payloads for async transcode
Recommended Skills
Journey fit
VideoDB is an external media API integration you add while building features—not a launch or growth playbook on its own. Integrations fits SDK connection, upload, transcode, and capture session calls that extend your product’s video pipeline.
How it compares
SDK/API reference for VideoDB—not an MCP server pattern skill or a social publishing workflow.
Common Questions / FAQ
Who is videodb for?
Solo developers integrating VideoDB into Python backends or agent tools that upload, organize, or process video and audio.
When should I use videodb?
Use during Build/integrations when implementing collection upload, meeting record, YouTube search, or transcode polling against VideoDB.
Is videodb safe to install?
It describes API usage that requires your API key; review the Security Audits panel on this page and never commit VIDEO_DB_API_KEY to the repo.
SKILL.md
READMESKILL.md - Videodb
# Complete API Reference Reference material for the VideoDB skill. For usage guidance and workflow selection, start with [../SKILL.md](../SKILL.md). ## Connection ```python import videodb conn = videodb.connect( api_key="your-api-key", # or set VIDEO_DB_API_KEY env var base_url=None, # custom API endpoint (optional) ) ``` **Returns:** `Connection` object ### Connection Methods | Method | Returns | Description | |--------|---------|-------------| | `conn.get_collection(collection_id="default")` | `Collection` | Get collection (default if no ID) | | `conn.get_collections()` | `list[Collection]` | List all collections | | `conn.create_collection(name, description, is_public=False)` | `Collection` | Create new collection | | `conn.update_collection(id, name, description)` | `Collection` | Update a collection | | `conn.check_usage()` | `dict` | Get account usage stats | | `conn.upload(source, media_type, name, ...)` | `Video\|Audio\|Image` | Upload to default collection | | `conn.record_meeting(meeting_url, bot_name, ...)` | `Meeting` | Record a meeting | | `conn.create_capture_session(...)` | `CaptureSession` | Create a capture session (see [capture-reference.md](capture-reference.md)) | | `conn.youtube_search(query, result_threshold, duration)` | `list[dict]` | Search YouTube | | `conn.transcode(source, callback_url, mode, ...)` | `str` | Transcode video (returns job ID) | | `conn.get_transcode_details(job_id)` | `dict` | Get transcode job status and details | | `conn.connect_websocket(collection_id)` | `WebSocketConnection` | Connect to WebSocket (see [capture-reference.md](capture-reference.md)) | ### Transcode Transcode a video from a URL with custom resolution, quality, and audio settings. Processing happens server-side — no local ffmpeg required. ```python from videodb import TranscodeMode, VideoConfig, AudioConfig job_id = conn.transcode( source="https://example.com/video.mp4", callback_url="https://example.com/webhook", mode=TranscodeMode.economy, video_config=VideoConfig(resolution=720, quality=23), audio_config=AudioConfig(mute=False), ) ``` #### transcode Parameters | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `source` | `str` | required | URL of the video to transcode (preferably a downloadable URL) | | `callback_url` | `str` | required | URL to receive the callback when transcoding completes | | `mode` | `TranscodeMode` | `TranscodeMode.economy` | Transcoding speed: `economy` or `lightning` | | `video_config` | `VideoConfig` | `VideoConfig()` | Video encoding settings | | `audio_config` | `AudioConfig` | `AudioConfig()` | Audio encoding settings | Returns a job ID (`str`). Use `conn.get_transcode_details(job_id)` to check job status. ```python details = conn.get_transcode_details(job_id) ``` #### VideoConfig ```python from videodb import VideoConfig, ResizeMode config = VideoConfig( resolution=720, # Target resolution height (e.g. 480, 720, 1080) quality=23, # Encoding quality (lower = better, default 23) framerate=30, # Target framerate aspect_ratio="16:9", # Target aspect ratio resize_mode=ResizeMode.crop, # How to fit: crop, fit, or pad ) ``` | Field | Type | Default | Description | |-------|------|---------|-------------| | `resolution` | `int\|None` | `None` | Target resolution height in pixels | | `quality` | `int` | `23` | Encoding quality (lower = higher quality) | | `framerate` | `int\|None` | `None` | Target framerate | | `aspect_ratio` | `str\|None` | `None` | Target aspect ratio (e.g. `"16:9"`, `"9:16"`) | | `resize_mode` | `str` | `ResizeMode.crop` | Resize strategy: `crop`, `fit`, or `pad` | #### AudioConfig ```python from videodb import AudioConfig config = AudioConfig(mute=False) ``` | Field | Type | Default | Description | |-------|------|---------|-------------| | `mute` | `bool` | `False` | Mute the audio track