productivity
Vimeo Lua API for KosmoKrator Agents
Agent-facing Lua documentation and function reference for the Vimeo KosmoKrator integration.Lua Namespace
Agents call this integration through app.integrations.vimeo.*.
Use lua_read_doc("integrations.vimeo") inside KosmoKrator to discover the same reference at runtime.
Call Lua from the Headless CLI
Use kosmo integrations:lua when a shell script, CI job, cron job, or another coding CLI should run a deterministic
Vimeo workflow without starting an interactive agent session.
kosmo integrations:lua --eval 'dump(app.integrations.vimeo.list_videos({per_page = 1, page = 1, query = "example_query", filter = "example_filter", filter_embeddable = true, filter_playable = true, direction = "example_direction", sort = "example_sort"}))' --json kosmo integrations:lua --eval 'print(docs.read("vimeo"))' --json
kosmo integrations:lua --eval 'print(docs.read("vimeo.list_videos"))' --json Workflow file
Put repeatable logic in a Lua file, then execute it with JSON output for the calling process.
local vimeo = app.integrations.vimeo
local result = vimeo.list_videos({per_page = 1, page = 1, query = "example_query", filter = "example_filter", filter_embeddable = true, filter_playable = true, direction = "example_direction", sort = "example_sort"})
dump(result) kosmo integrations:lua workflow.lua --json
kosmo integrations:lua workflow.lua --force --json integrations:lua exposes app.integrations.vimeo, app.mcp.*, docs.*, json.*, and regex.*. Use app.integrations.vimeo.default.* or app.integrations.vimeo.work.* when you configured named credential accounts.
MCP-only Lua
If the script only needs configured MCP servers and does not need Vimeo, use the narrower mcp:lua command.
# Use mcp:lua for MCP-only scripts; use integrations:lua for this integration namespace.
kosmo mcp:lua --eval 'dump(mcp.servers())' --json Agent-Facing Lua Docs
This is the rendered version of the full Lua documentation exposed to agents when they inspect the integration namespace.
Vimeo - Lua API Reference
Namespace: app.integrations.vimeo
Use this integration for Vimeo videos, uploads, albums/showcases, folders/projects, comments, text tracks, thumbnails, channels, and categories. Responses are decoded Vimeo JSON; several legacy list tools return a compact normalized shape for agent readability.
Videos
local videos = app.integrations.vimeo.list_videos({
per_page = 25,
page = 1,
query = "launch"
})
local video = app.integrations.vimeo.get_video({video_id = "123456789"})
local created = app.integrations.vimeo.create_video({
upload_approach = "pull",
upload_link = "https://example.test/video.mp4",
name = "Launch demo",
privacy = "unlisted"
})
app.integrations.vimeo.update_video({
video_id = "123456789",
data = {
name = "Updated launch demo",
privacy = {view = "unlisted"}
}
})
app.integrations.vimeo.delete_video({video_id = "123456789"})
upload_video creates an upload ticket using Vimeo’s upload resource flow. It does not upload local file bytes itself.
Comments, Text Tracks, And Pictures
local comments = app.integrations.vimeo.list_video_comments({
video_id = "123456789",
params = {per_page = 10}
})
local comment = app.integrations.vimeo.create_video_comment({
video_id = "123456789",
text = "Looks good."
})
local tracks = app.integrations.vimeo.list_video_text_tracks({
video_id = "123456789"
})
local track = app.integrations.vimeo.create_video_text_track({
video_id = "123456789",
data = {
type = "subtitles",
language = "en",
name = "English"
}
})
local pictures = app.integrations.vimeo.list_video_pictures({
video_id = "123456789"
})
Albums And Folders
local albums = app.integrations.vimeo.list_albums({})
local album = app.integrations.vimeo.get_album({album_id = "98765"})
local created_album = app.integrations.vimeo.create_album({
data = {name = "Customer demos"}
})
app.integrations.vimeo.update_album({
album_id = "98765",
data = {description = "Updated showcase"}
})
local album_videos = app.integrations.vimeo.list_album_videos({
album_id = "98765"
})
app.integrations.vimeo.add_video_to_album({
album_id = "98765",
video_id = "123456789"
})
local folders = app.integrations.vimeo.list_folders({})
local folder = app.integrations.vimeo.create_folder({
data = {name = "Launch assets"}
})
app.integrations.vimeo.update_folder({
folder_id = "456",
data = {name = "Updated launch assets"}
})
Discovery
local channels = app.integrations.vimeo.list_channels({
page = 1,
per_page = 25
})
local categories = app.integrations.vimeo.list_categories({})
local me = app.integrations.vimeo.get_current_user({})
Generic API Helpers
Use generic helpers only for documented Vimeo endpoints that do not yet have a dedicated tool. path must be relative to the configured API base URL; absolute URLs are rejected.
local raw = app.integrations.vimeo.api_get({
path = "/me/videos",
params = {per_page = 5}
})
local posted = app.integrations.vimeo.api_post({
path = "/me/albums",
body = {name = "New showcase"}
})
local patched = app.integrations.vimeo.api_patch({
path = "/videos/123456789",
body = {name = "Updated title"}
})
local deleted = app.integrations.vimeo.api_delete({
path = "/videos/123456789"
})
Multi-Account Usage
app.integrations.vimeo.list_videos({})
app.integrations.vimeo.default.list_videos({})
app.integrations.vimeo.client_account.list_videos({})
All account namespaces expose the same tools; only stored access tokens differ.
Raw agent markdown
# Vimeo - Lua API Reference
Namespace: `app.integrations.vimeo`
Use this integration for Vimeo videos, uploads, albums/showcases, folders/projects, comments, text tracks, thumbnails, channels, and categories. Responses are decoded Vimeo JSON; several legacy list tools return a compact normalized shape for agent readability.
## Videos
```lua
local videos = app.integrations.vimeo.list_videos({
per_page = 25,
page = 1,
query = "launch"
})
local video = app.integrations.vimeo.get_video({video_id = "123456789"})
local created = app.integrations.vimeo.create_video({
upload_approach = "pull",
upload_link = "https://example.test/video.mp4",
name = "Launch demo",
privacy = "unlisted"
})
app.integrations.vimeo.update_video({
video_id = "123456789",
data = {
name = "Updated launch demo",
privacy = {view = "unlisted"}
}
})
app.integrations.vimeo.delete_video({video_id = "123456789"})
```
`upload_video` creates an upload ticket using Vimeo's upload resource flow. It does not upload local file bytes itself.
## Comments, Text Tracks, And Pictures
```lua
local comments = app.integrations.vimeo.list_video_comments({
video_id = "123456789",
params = {per_page = 10}
})
local comment = app.integrations.vimeo.create_video_comment({
video_id = "123456789",
text = "Looks good."
})
local tracks = app.integrations.vimeo.list_video_text_tracks({
video_id = "123456789"
})
local track = app.integrations.vimeo.create_video_text_track({
video_id = "123456789",
data = {
type = "subtitles",
language = "en",
name = "English"
}
})
local pictures = app.integrations.vimeo.list_video_pictures({
video_id = "123456789"
})
```
## Albums And Folders
```lua
local albums = app.integrations.vimeo.list_albums({})
local album = app.integrations.vimeo.get_album({album_id = "98765"})
local created_album = app.integrations.vimeo.create_album({
data = {name = "Customer demos"}
})
app.integrations.vimeo.update_album({
album_id = "98765",
data = {description = "Updated showcase"}
})
local album_videos = app.integrations.vimeo.list_album_videos({
album_id = "98765"
})
app.integrations.vimeo.add_video_to_album({
album_id = "98765",
video_id = "123456789"
})
local folders = app.integrations.vimeo.list_folders({})
local folder = app.integrations.vimeo.create_folder({
data = {name = "Launch assets"}
})
app.integrations.vimeo.update_folder({
folder_id = "456",
data = {name = "Updated launch assets"}
})
```
## Discovery
```lua
local channels = app.integrations.vimeo.list_channels({
page = 1,
per_page = 25
})
local categories = app.integrations.vimeo.list_categories({})
local me = app.integrations.vimeo.get_current_user({})
```
## Generic API Helpers
Use generic helpers only for documented Vimeo endpoints that do not yet have a dedicated tool. `path` must be relative to the configured API base URL; absolute URLs are rejected.
```lua
local raw = app.integrations.vimeo.api_get({
path = "/me/videos",
params = {per_page = 5}
})
local posted = app.integrations.vimeo.api_post({
path = "/me/albums",
body = {name = "New showcase"}
})
local patched = app.integrations.vimeo.api_patch({
path = "/videos/123456789",
body = {name = "Updated title"}
})
local deleted = app.integrations.vimeo.api_delete({
path = "/videos/123456789"
})
```
## Multi-Account Usage
```lua
app.integrations.vimeo.list_videos({})
app.integrations.vimeo.default.list_videos({})
app.integrations.vimeo.client_account.list_videos({})
```
All account namespaces expose the same tools; only stored access tokens differ. local result = app.integrations.vimeo.list_videos({per_page = 1, page = 1, query = "example_query", filter = "example_filter", filter_embeddable = true, filter_playable = true, direction = "example_direction", sort = "example_sort"})
print(result) Functions
list_videos Read
List videos for the authenticated Vimeo user. Supports pagination, full-text search via query, and filters (e.g., embeddable, playable, privacy). Returns video URIs, names, durations, thumbnails, and metadata.
- Lua path
app.integrations.vimeo.list_videos- Full name
vimeo.vimeo_list_videos
| Parameter | Type | Required | Description |
|---|---|---|---|
per_page | integer | no | Number of videos per page (1-100, default: 25). |
page | integer | no | Page number for pagination (default: 1). |
query | string | no | Full-text search query to filter videos by name or description. |
filter | string | no | Filter category: "embeddable", "playable", "purchase_price", "privacy". |
filter_embeddable | boolean | no | When filter is "embeddable": true = only embeddable, false = only non-embeddable. |
filter_playable | boolean | no | When filter is "playable": true = only playable, false = only non-playable. |
direction | string | no | Sort direction: "asc" or "desc". |
sort | string | no | Sort field: "alphabetical", "comments", "date", "duration", "likes", "plays". |
get_video Read
Get detailed information about a single Vimeo video by its ID. Returns name, description, duration, thumbnails, privacy, stats, and playback links.
- Lua path
app.integrations.vimeo.get_video- Full name
vimeo.vimeo_get_video
| Parameter | Type | Required | Description |
|---|---|---|---|
video_id | string | yes | The Vimeo video ID (e.g., "123456789"). |
create_video Write
Create a new video upload slot on Vimeo. Choose an upload approach: "pull" (Vimeo downloads from a URL), "post" (you POST to an upload link), or "streaming" (Tus protocol). Returns the video URI and upload target.
- Lua path
app.integrations.vimeo.create_video- Full name
vimeo.vimeo_create_video
| Parameter | Type | Required | Description |
|---|---|---|---|
upload_approach | string | no | Upload method: "pull" (Vimeo fetches from URL), "post" (direct upload), or "streaming" (Tus). Default: "post". |
upload_link | string | no | Required when upload_approach is "pull". The URL Vimeo will download the video from. |
name | string | no | Title of the video. |
description | string | no | Description of the video. |
privacy | string | no | Privacy setting: "anybody", "nobody", "contacts", "password", "unlisted", "disable". |
password | string | no | Required when privacy is "password". |
folder_uri | string | no | URI of a folder (project) to add the video to after creation. |
upload_video Write
Create an upload ticket for a new video on Vimeo. Returns the upload URL and video object. Use the upload link to POST the video file binary.
- Lua path
app.integrations.vimeo.upload_video- Full name
vimeo.vimeo_upload_video
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | no | Title of the video. |
description | string | no | Description of the video. |
privacy | string | no | Privacy setting: "anybody", "nobody", "contacts", "password", "disable", "unlisted". |
update_video Write
Update a video.
- Lua path
app.integrations.vimeo.update_video- Full name
vimeo.vimeo_update_video
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
delete_video Write
Delete a video from Vimeo permanently. This action cannot be undone.
- Lua path
app.integrations.vimeo.delete_video- Full name
vimeo.vimeo_delete_video
| Parameter | Type | Required | Description |
|---|---|---|---|
video_id | string | yes | The video ID to delete (e.g., "123456789"). |
list_video_comments Read
List comments for a video.
- Lua path
app.integrations.vimeo.list_video_comments- Full name
vimeo.vimeo_list_video_comments
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
create_video_comment Write
Create a video comment.
- Lua path
app.integrations.vimeo.create_video_comment- Full name
vimeo.vimeo_create_video_comment
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_video_text_tracks Read
List video captions and subtitles.
- Lua path
app.integrations.vimeo.list_video_text_tracks- Full name
vimeo.vimeo_list_video_text_tracks
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
create_video_text_track Write
Create a video text track.
- Lua path
app.integrations.vimeo.create_video_text_track- Full name
vimeo.vimeo_create_video_text_track
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_video_pictures Read
List video thumbnails.
- Lua path
app.integrations.vimeo.list_video_pictures- Full name
vimeo.vimeo_list_video_pictures
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_albums Read
List albums (showcases) for the authenticated Vimeo user. Supports pagination, query search, sorting, and direction. Returns album names, descriptions, thumbnails, and video counts.
- Lua path
app.integrations.vimeo.list_albums- Full name
vimeo.vimeo_list_albums
| Parameter | Type | Required | Description |
|---|---|---|---|
per_page | integer | no | Number of albums per page (1-100, default: 25). |
page | integer | no | Page number for pagination (default: 1). |
query | string | no | Full-text search query to filter albums by name or description. |
sort | string | no | Sort field: "alphabetical", "date", "duration", "manual", "modified_time", "name". |
direction | string | no | Sort direction: "asc" or "desc". |
get_album Read
Get detailed information about a single Vimeo album (showcase) by its ID.
- Lua path
app.integrations.vimeo.get_album- Full name
vimeo.vimeo_get_album
| Parameter | Type | Required | Description |
|---|---|---|---|
album_id | string | yes | The album ID (e.g., "1234567"). |
create_album Write
Create an album/showcase.
- Lua path
app.integrations.vimeo.create_album- Full name
vimeo.vimeo_create_album
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update_album Write
Update an album/showcase.
- Lua path
app.integrations.vimeo.update_album- Full name
vimeo.vimeo_update_album
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_album_videos Read
List videos in an album/showcase.
- Lua path
app.integrations.vimeo.list_album_videos- Full name
vimeo.vimeo_list_album_videos
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
add_video_album Write
Add a video to an album/showcase.
- Lua path
app.integrations.vimeo.add_video_album- Full name
vimeo.vimeo_add_video_to_album
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_folders Read
List folders (projects) for the authenticated Vimeo user. Supports pagination and query search. Returns folder names, descriptions, and item counts.
- Lua path
app.integrations.vimeo.list_folders- Full name
vimeo.vimeo_list_folders
| Parameter | Type | Required | Description |
|---|---|---|---|
per_page | integer | no | Number of folders per page (1-100, default: 25). |
page | integer | no | Page number for pagination (default: 1). |
query | string | no | Search query to filter folders by name. |
create_folder Write
Create a folder/project.
- Lua path
app.integrations.vimeo.create_folder- Full name
vimeo.vimeo_create_folder
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update_folder Write
Update a folder/project.
- Lua path
app.integrations.vimeo.update_folder- Full name
vimeo.vimeo_update_folder
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_channels Read
List public Vimeo channels. Returns paginated results with channel metadata.
- Lua path
app.integrations.vimeo.list_channels- Full name
vimeo.vimeo_list_channels
| Parameter | Type | Required | Description |
|---|---|---|---|
page | integer | no | Page number (1-based, default: 1). |
per_page | integer | no | Number of channels per page (default: 25). |
list_categories Read
List Vimeo categories.
- Lua path
app.integrations.vimeo.list_categories- Full name
vimeo.vimeo_list_categories
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_current_user Read
Get the authenticated Vimeo user's profile information. Returns name, bio, location, account type, upload quota, and profile pictures.
- Lua path
app.integrations.vimeo.get_current_user- Full name
vimeo.vimeo_get_current_user
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
api_get Read
Call a documented GET endpoint.
- Lua path
app.integrations.vimeo.api_get- Full name
vimeo.vimeo_api_get
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
api_post Write
Call a documented POST endpoint.
- Lua path
app.integrations.vimeo.api_post- Full name
vimeo.vimeo_api_post
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
api_patch Write
Call a documented PATCH endpoint.
- Lua path
app.integrations.vimeo.api_patch- Full name
vimeo.vimeo_api_patch
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
api_delete Write
Call a documented DELETE endpoint.
- Lua path
app.integrations.vimeo.api_delete- Full name
vimeo.vimeo_api_delete
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||