LangChain tools for PlayVideo API. Enables AI agents to upload, transcode, and manage videos autonomously.
LangChain is the most popular framework for building AI agent applications. This package provides a toolkit of tools that any LangChain agent can use to work with videos — from cost estimation to upload to embedding.
- Cost Estimation - Check prices before committing (budget-aware agents)
- Collections - Create and list video collections
- Videos - Upload, list, get details, delete
- Webhooks - Create webhooks for processing notifications
- Usage - Monitor spend and cost breakdown
- Upload Instructions - Get cURL/SDK commands for uploading
npm install @playvideo/langchain @langchain/coreimport { PlayVideoToolkit } from "@playvideo/langchain";
import { ChatOpenAI } from "@langchain/openai";
import { createReactAgent } from "@langchain/langgraph/prebuilt";
// Create the toolkit with your API key
const toolkit = new PlayVideoToolkit({ apiKey: "play_live_xxx" });
// Create a LangChain agent with PlayVideo tools
const llm = new ChatOpenAI({ model: "gpt-4o" });
const agent = createReactAgent({ llm, tools: toolkit.getTools() });
// The agent can now manage videos autonomously
const result = await agent.invoke({
messages: [{
role: "user",
content: "Create a collection called 'tutorials' and tell me how to upload a video to it"
}],
});Once your agent has the PlayVideo tools, it can handle requests like:
- "How much would it cost to transcode a 10-minute video?"
- "Create a collection called 'product-demos'"
- "List all my completed videos"
- "Get the streaming URL for video abc123"
- "Set up a webhook to notify me when videos finish processing"
- "What's my current usage this month?"
- "Delete the video xyz789"
- "Show me how to upload a video to the 'tutorials' collection"
| Tool | Description |
|---|---|
playvideo_estimate_cost |
Estimate cost of an operation (no API key needed) |
playvideo_list_collections |
List all video collections |
playvideo_create_collection |
Create a new collection |
playvideo_upload_video |
Get upload instructions (cURL + SDK) |
playvideo_list_videos |
List videos (filter by collection/status) |
playvideo_get_video |
Get video details and streaming URLs |
playvideo_delete_video |
Delete a video |
playvideo_get_usage |
Get monthly spend and cost breakdown |
playvideo_create_webhook |
Create a webhook for processing events |
import { createReactAgent } from "@langchain/langgraph/prebuilt";
const toolkit = new PlayVideoToolkit({ apiKey: "play_live_xxx" });
const agent = createReactAgent({ llm, tools: toolkit.getTools() });import { createOpenAIFunctionsAgent } from "langchain/agents";
const toolkit = new PlayVideoToolkit({ apiKey: "play_live_xxx" });
const agent = await createOpenAIFunctionsAgent({
llm,
tools: toolkit.getTools(),
prompt
});import { createToolCallingAgent } from "langchain/agents";
const toolkit = new PlayVideoToolkit({ apiKey: "play_live_xxx" });
const agent = await createToolCallingAgent({
llm,
tools: toolkit.getTools(),
prompt
});A typical agent workflow:
- Agent receives a video task (e.g., "upload this video for streaming")
- Agent calls
playvideo_estimate_costto check the price - Agent calls
playvideo_create_collectionif needed - Agent calls
playvideo_upload_videoto get upload instructions - Agent executes the upload (via cURL or SDK)
- Agent calls
playvideo_get_videoto check processing status - Agent returns streaming URLs to the user
The agent handles the full workflow autonomously — from cost estimation to delivering playback URLs.
const toolkit = new PlayVideoToolkit({
apiKey: "play_live_xxx", // Required
baseUrl: "https://api.playvideo.dev", // Optional (default shown)
});| Variable | Required | Description |
|---|---|---|
PLAYVIDEO_API_KEY |
Yes | Your PlayVideo API key |
You can pass the key directly or read from environment:
const toolkit = new PlayVideoToolkit({
apiKey: process.env.PLAYVIDEO_API_KEY!
});If you're self-hosting PlayVideo or using a custom endpoint:
const toolkit = new PlayVideoToolkit({
apiKey: "play_live_xxx",
baseUrl: "https://your-playvideo-instance.com",
});PlayVideo uses usage-based pricing — no tiers, no subscriptions:
| Action | Price |
|---|---|
| Transcode | $0.008/min per resolution |
| Storage | $0.005/GB/month |
| Bandwidth | $0.005/GB |
| Webhooks | Free |
| API calls | Free |
Free monthly allowance: 100 min transcode, 5 GB storage, 10 GB bandwidth. No credit card required.
- API keys are only sent to PlayVideo servers via HTTPS
- Keys are never logged or exposed in tool outputs
- Each tool validates inputs with Zod schemas
MIT