@apteva/integrations 0.2.3 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/apps/activecampaign.json +209 -0
- package/src/apps/activecollab.json +417 -0
- package/src/apps/airtable.json +235 -0
- package/src/apps/alpaca-trading.json +1554 -0
- package/src/apps/amadeus.json +225 -0
- package/src/apps/anthropic-api.json +96 -0
- package/src/apps/apify.json +203 -0
- package/src/apps/apollo.json +748 -0
- package/src/apps/apple-podcasts.json +116 -0
- package/src/apps/archive-api.json +104 -0
- package/src/apps/archive.json +151 -0
- package/src/apps/arduino-cloud.json +301 -0
- package/src/apps/arest.json +492 -0
- package/src/apps/asana.json +184 -0
- package/src/apps/ashby.json +176 -0
- package/src/apps/assemblyai.json +163 -0
- package/src/apps/attio.json +243 -0
- package/src/apps/aws-cloudfront.json +132 -0
- package/src/apps/aws-dynamodb.json +295 -0
- package/src/apps/aws-ec2.json +184 -0
- package/src/apps/aws-lambda.json +361 -0
- package/src/apps/aws-route53.json +110 -0
- package/src/apps/aws-s3.json +303 -0
- package/src/apps/aws-ses.json +556 -0
- package/src/apps/aws-sns.json +217 -0
- package/src/apps/aws-sqs.json +234 -0
- package/src/apps/axiom.json +123 -0
- package/src/apps/beehiiv.json +252 -0
- package/src/apps/binance-trading.json +555 -0
- package/src/apps/bitly.json +175 -0
- package/src/apps/bloobirds.json +246 -0
- package/src/apps/bluesky.json +201 -0
- package/src/apps/blynk.json +316 -0
- package/src/apps/booking-com.json +144 -0
- package/src/apps/box.json +289 -0
- package/src/apps/brevo.json +1423 -0
- package/src/apps/browse-ai.json +148 -0
- package/src/apps/bunny-cdn.json +330 -0
- package/src/apps/bunny-stream.json +387 -0
- package/src/apps/cal-com.json +240 -0
- package/src/apps/calendly.json +578 -0
- package/src/apps/calflow-calendar.json +706 -0
- package/src/apps/callrail.json +190 -0
- package/src/apps/canva.json +197 -0
- package/src/apps/cartesia.json +201 -0
- package/src/apps/castbase.json +753 -0
- package/src/apps/chargebee.json +226 -0
- package/src/apps/cleanster.json +359 -0
- package/src/apps/clicksend.json +278 -0
- package/src/apps/clickup.json +266 -0
- package/src/apps/clipkit.json +517 -0
- package/src/apps/close.json +359 -0
- package/src/apps/cloudflare.json +329 -0
- package/src/apps/cloudinary.json +164 -0
- package/src/apps/coda.json +288 -0
- package/src/apps/cohere.json +158 -0
- package/src/apps/coinbase.json +268 -0
- package/src/apps/composio.json +146 -0
- package/src/apps/confluence.json +270 -0
- package/src/apps/consensus.json +879 -0
- package/src/apps/contabo.json +733 -0
- package/src/apps/convertkit.json +211 -0
- package/src/apps/core-image.json +426 -0
- package/src/apps/core-video.json +1246 -0
- package/src/apps/craftcloud.json +298 -0
- package/src/apps/datadog.json +401 -0
- package/src/apps/dataforseo.json +1273 -0
- package/src/apps/deepseek.json +150 -0
- package/src/apps/dialpad.json +229 -0
- package/src/apps/discord.json +239 -0
- package/src/apps/dnsimple.json +405 -0
- package/src/apps/docusign.json +214 -0
- package/src/apps/docx.json +282 -0
- package/src/apps/dropbox.json +185 -0
- package/src/apps/duffel.json +231 -0
- package/src/apps/dux-soup.json +694 -0
- package/src/apps/dynadot.json +250 -0
- package/src/apps/elevenlabs.json +327 -0
- package/src/apps/eventbrite-events.json +598 -0
- package/src/apps/facebook-ads.json +1399 -0
- package/src/apps/facebook-api.json +282 -0
- package/src/apps/fal-ai.json +400 -0
- package/src/apps/fathom.json +86 -0
- package/src/apps/figma.json +162 -0
- package/src/apps/filestack.json +159 -0
- package/src/apps/firebase.json +271 -0
- package/src/apps/firecrawl.json +278 -0
- package/src/apps/folk.json +564 -0
- package/src/apps/forecast-app.json +377 -0
- package/src/apps/freshdesk.json +283 -0
- package/src/apps/gemini.json +528 -0
- package/src/apps/ghost.json +439 -0
- package/src/apps/gigs-marketplace.json +1442 -0
- package/src/apps/github.json +1479 -47
- package/src/apps/gitlab.json +448 -0
- package/src/apps/gmail.json +839 -28
- package/src/apps/gohighlevel.json +596 -0
- package/src/apps/google-ads.json +270 -0
- package/src/apps/google-calendar.json +996 -36
- package/src/apps/google-docs.json +278 -0
- package/src/apps/google-drive.json +360 -0
- package/src/apps/google-maps.json +473 -0
- package/src/apps/google-sheets.json +330 -0
- package/src/apps/gooten.json +411 -0
- package/src/apps/gravity-forms.json +385 -0
- package/src/apps/gusto.json +171 -0
- package/src/apps/hackernews.json +221 -0
- package/src/apps/harmonic.json +86 -0
- package/src/apps/helpscout.json +664 -0
- package/src/apps/hetzner.json +658 -0
- package/src/apps/heygen.json +184 -0
- package/src/apps/heyreach.json +388 -0
- package/src/apps/hospitable.json +340 -0
- package/src/apps/hostinger.json +374 -0
- package/src/apps/hubspot.json +682 -0
- package/src/apps/huggingface.json +97 -0
- package/src/apps/hunter.json +504 -0
- package/src/apps/ig-trading.json +849 -0
- package/src/apps/imaterialise.json +349 -0
- package/src/apps/instagram-api.json +538 -0
- package/src/apps/intercom.json +648 -0
- package/src/apps/jira.json +226 -0
- package/src/apps/klaviyo.json +199 -0
- package/src/apps/kling-ai.json +206 -0
- package/src/apps/kraken.json +870 -0
- package/src/apps/late.json +1056 -0
- package/src/apps/leadpages.json +243 -0
- package/src/apps/learning-platform.json +2244 -0
- package/src/apps/linear.json +184 -57
- package/src/apps/linkedin.json +179 -0
- package/src/apps/listen-notes.json +136 -0
- package/src/apps/lnk-bio.json +125 -0
- package/src/apps/loom.json +188 -0
- package/src/apps/luma.json +280 -0
- package/src/apps/mailchimp.json +238 -0
- package/src/apps/mailgun.json +310 -0
- package/src/apps/manychat.json +312 -0
- package/src/apps/marin-software.json +843 -0
- package/src/apps/media-downloader.json +157 -0
- package/src/apps/meetup-events.json +361 -0
- package/src/apps/meshy.json +248 -0
- package/src/apps/microsoft-teams.json +162 -0
- package/src/apps/monday.json +213 -0
- package/src/apps/mongodb-atlas.json +467 -0
- package/src/apps/namecheap.json +252 -0
- package/src/apps/nexar.json +289 -0
- package/src/apps/notion.json +530 -50
- package/src/apps/omnikit-analytics.json +374 -0
- package/src/apps/omnikit-api-gateway.json +660 -0
- package/src/apps/omnikit-billing.json +1781 -0
- package/src/apps/omnikit-cms.json +899 -0
- package/src/apps/omnikit-functions.json +329 -0
- package/src/apps/omnikit-intelligence.json +650 -0
- package/src/apps/omnikit-management.json +214 -0
- package/src/apps/omnikit-media.json +646 -0
- package/src/apps/omnikit-messaging.json +1826 -0
- package/src/apps/omnikit-redirects.json +209 -0
- package/src/apps/omnikit-webhooks.json +269 -0
- package/src/apps/omnikit-workflows.json +323 -0
- package/src/apps/openai-api.json +462 -0
- package/src/apps/openmeteo-weather.json +75 -0
- package/src/apps/optinmonster.json +244 -0
- package/src/apps/paidkit.json +1218 -0
- package/src/apps/paypal.json +254 -0
- package/src/apps/pdf.json +366 -0
- package/src/apps/pipedrive.json +255 -0
- package/src/apps/polymarket.json +653 -0
- package/src/apps/porkbun.json +417 -0
- package/src/apps/portfolio.json +501 -0
- package/src/apps/postmark.json +257 -0
- package/src/apps/printful.json +273 -0
- package/src/apps/printify.json +295 -0
- package/src/apps/producthunt.json +346 -0
- package/src/apps/pushover-notifications.json +113 -0
- package/src/apps/qonto.json +366 -0
- package/src/apps/quickbooks.json +234 -0
- package/src/apps/replicate.json +106 -0
- package/src/apps/rss.json +281 -0
- package/src/apps/salesflow.json +538 -0
- package/src/apps/salesforce-crm.json +216 -0
- package/src/apps/sap.json +256 -0
- package/src/apps/scaleway.json +911 -0
- package/src/apps/sculpteo.json +234 -0
- package/src/apps/sendgrid-email.json +233 -0
- package/src/apps/sendgrid.json +160 -35
- package/src/apps/shapeways.json +188 -0
- package/src/apps/shopify.json +1217 -0
- package/src/apps/skai.json +779 -0
- package/src/apps/slack.json +228 -38
- package/src/apps/slant3d.json +231 -0
- package/src/apps/slides.json +760 -0
- package/src/apps/smartly.json +504 -0
- package/src/apps/snov.json +467 -0
- package/src/apps/socialcast.json +553 -63
- package/src/apps/square.json +274 -0
- package/src/apps/storage-management.json +788 -0
- package/src/apps/storylane.json +180 -0
- package/src/apps/strapi.json +338 -0
- package/src/apps/stripe-payments.json +847 -0
- package/src/apps/stripe.json +472 -35
- package/src/apps/supabase.json +169 -0
- package/src/apps/supademo.json +115 -0
- package/src/apps/taskflow.json +714 -0
- package/src/apps/teamwork.json +457 -0
- package/src/apps/telegram.json +444 -0
- package/src/apps/thinger.json +458 -0
- package/src/apps/ticktick.json +169 -0
- package/src/apps/tiktok-api.json +406 -0
- package/src/apps/todoist.json +151 -0
- package/src/apps/together.json +123 -0
- package/src/apps/torrent.json +267 -0
- package/src/apps/trading.json +1012 -0
- package/src/apps/trading212.json +383 -0
- package/src/apps/trello.json +205 -0
- package/src/apps/tripo.json +157 -0
- package/src/apps/twilio.json +1008 -0
- package/src/apps/twitter-ads.json +875 -0
- package/src/apps/twitter-api.json +1151 -0
- package/src/apps/twitterapiio.json +548 -0
- package/src/apps/typeform.json +210 -0
- package/src/apps/vidforge.json +1020 -0
- package/src/apps/vonage.json +394 -0
- package/src/apps/vultr.json +225 -0
- package/src/apps/webflow.json +223 -0
- package/src/apps/wise.json +273 -0
- package/src/apps/wistia.json +283 -0
- package/src/apps/woocommerce.json +288 -0
- package/src/apps/wordpress.json +1675 -0
- package/src/apps/xero.json +257 -0
- package/src/apps/youtube-api.json +861 -0
- package/src/apps/zendesk.json +295 -0
- package/src/apps/zite.json +173 -0
- package/src/apps/zoho-crm.json +386 -0
- package/src/apps/zoo.json +193 -0
- package/src/apps/zoom.json +334 -0
|
@@ -0,0 +1,1246 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "core-video",
|
|
3
|
+
"name": "CoreVideo",
|
|
4
|
+
"description": "Complete media processing and file management toolkit - upload, browse, search, and organize files and folders, plus video/audio processing: extract clips, screenshots, audio tracks, compress, resize, create GIFs, burn subtitles, probe metadata, download from any platform",
|
|
5
|
+
"logo": "https://cdn-icons-png.flaticon.com/512/2991/2991112.png",
|
|
6
|
+
"categories": [
|
|
7
|
+
"video",
|
|
8
|
+
"audio",
|
|
9
|
+
"media",
|
|
10
|
+
"processing",
|
|
11
|
+
"ffmpeg",
|
|
12
|
+
"storage",
|
|
13
|
+
"files",
|
|
14
|
+
"folders",
|
|
15
|
+
"extract",
|
|
16
|
+
"compress",
|
|
17
|
+
"resize",
|
|
18
|
+
"thumbnails",
|
|
19
|
+
"clips",
|
|
20
|
+
"download"
|
|
21
|
+
],
|
|
22
|
+
"base_url": "https://api.omnikit.co",
|
|
23
|
+
"auth": {
|
|
24
|
+
"types": [
|
|
25
|
+
"api_key"
|
|
26
|
+
],
|
|
27
|
+
"headers": {
|
|
28
|
+
"X-API-Key": "{{token}}"
|
|
29
|
+
},
|
|
30
|
+
"credential_fields": [
|
|
31
|
+
{
|
|
32
|
+
"name": "token",
|
|
33
|
+
"label": "Api Key",
|
|
34
|
+
"description": "Your Media API key for accessing the /media/* endpoints. The project is determined automatically from the key."
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"tools": [
|
|
39
|
+
{
|
|
40
|
+
"name": "list_files",
|
|
41
|
+
"description": "List files and folders for a project with filtering by type, folder, and search with pagination",
|
|
42
|
+
"method": "GET",
|
|
43
|
+
"path": "/media/files",
|
|
44
|
+
"input_schema": {
|
|
45
|
+
"type": "object",
|
|
46
|
+
"properties": {
|
|
47
|
+
"bucket_id": {
|
|
48
|
+
"type": "integer",
|
|
49
|
+
"description": "Filter by storage bucket"
|
|
50
|
+
},
|
|
51
|
+
"folder_id": {
|
|
52
|
+
"type": "integer",
|
|
53
|
+
"description": "Filter by folder"
|
|
54
|
+
},
|
|
55
|
+
"file_type": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"enum": [
|
|
58
|
+
"image",
|
|
59
|
+
"video",
|
|
60
|
+
"audio",
|
|
61
|
+
"document",
|
|
62
|
+
"archive",
|
|
63
|
+
"other"
|
|
64
|
+
],
|
|
65
|
+
"description": "Filter by file type"
|
|
66
|
+
},
|
|
67
|
+
"search": {
|
|
68
|
+
"type": "string",
|
|
69
|
+
"description": "Search in file names and descriptions"
|
|
70
|
+
},
|
|
71
|
+
"limit": {
|
|
72
|
+
"type": "integer",
|
|
73
|
+
"minimum": 1,
|
|
74
|
+
"maximum": 1000,
|
|
75
|
+
"default": 50,
|
|
76
|
+
"description": "Number of files to return"
|
|
77
|
+
},
|
|
78
|
+
"offset": {
|
|
79
|
+
"type": "integer",
|
|
80
|
+
"minimum": 0,
|
|
81
|
+
"default": 0,
|
|
82
|
+
"description": "Pagination offset"
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"name": "get_file",
|
|
89
|
+
"description": "Get detailed metadata about a file including size, dimensions, duration, mime type, and storage info",
|
|
90
|
+
"method": "GET",
|
|
91
|
+
"path": "/media/files/%7B%7Bfile_id%7D%7D",
|
|
92
|
+
"input_schema": {
|
|
93
|
+
"type": "object",
|
|
94
|
+
"properties": {
|
|
95
|
+
"file_id": {
|
|
96
|
+
"type": "integer",
|
|
97
|
+
"description": "ID of the file to get info for"
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"required": [
|
|
101
|
+
"file_id"
|
|
102
|
+
]
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"name": "upload_file",
|
|
107
|
+
"description": "Upload a file to storage. Accepts base64-encoded file data. Automatically extracts metadata and generates thumbnails for video/image files.",
|
|
108
|
+
"method": "POST",
|
|
109
|
+
"path": "/media/files/upload",
|
|
110
|
+
"input_schema": {
|
|
111
|
+
"type": "object",
|
|
112
|
+
"properties": {
|
|
113
|
+
"file_name": {
|
|
114
|
+
"type": "string",
|
|
115
|
+
"description": "Name of the file including extension"
|
|
116
|
+
},
|
|
117
|
+
"file_data": {
|
|
118
|
+
"type": "string",
|
|
119
|
+
"description": "File data as base64-encoded string"
|
|
120
|
+
},
|
|
121
|
+
"mime_type": {
|
|
122
|
+
"type": "string",
|
|
123
|
+
"description": "MIME type of the file (e.g., 'video/mp4', 'audio/mp3')"
|
|
124
|
+
},
|
|
125
|
+
"folder_id": {
|
|
126
|
+
"type": "integer",
|
|
127
|
+
"description": "Folder ID to store file in"
|
|
128
|
+
},
|
|
129
|
+
"bucket_id": {
|
|
130
|
+
"type": "integer",
|
|
131
|
+
"description": "Storage bucket ID (uses default if not provided)"
|
|
132
|
+
},
|
|
133
|
+
"access_level": {
|
|
134
|
+
"type": "string",
|
|
135
|
+
"enum": [
|
|
136
|
+
"public",
|
|
137
|
+
"private"
|
|
138
|
+
],
|
|
139
|
+
"default": "public",
|
|
140
|
+
"description": "File access level"
|
|
141
|
+
},
|
|
142
|
+
"tags": {
|
|
143
|
+
"type": "array",
|
|
144
|
+
"items": {
|
|
145
|
+
"type": "string"
|
|
146
|
+
},
|
|
147
|
+
"description": "Tags for organizing the file"
|
|
148
|
+
},
|
|
149
|
+
"auto_transcribe": {
|
|
150
|
+
"type": "boolean",
|
|
151
|
+
"default": true,
|
|
152
|
+
"description": "Auto-generate transcripts for audio/video files"
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
"required": [
|
|
156
|
+
"file_name",
|
|
157
|
+
"file_data",
|
|
158
|
+
"mime_type"
|
|
159
|
+
]
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"name": "download_file",
|
|
164
|
+
"description": "Get a download URL for a file in storage",
|
|
165
|
+
"method": "GET",
|
|
166
|
+
"path": "/media/files/%7B%7Bfile_id%7D%7D/download",
|
|
167
|
+
"input_schema": {
|
|
168
|
+
"type": "object",
|
|
169
|
+
"properties": {
|
|
170
|
+
"file_id": {
|
|
171
|
+
"type": "integer",
|
|
172
|
+
"description": "ID of the file to download"
|
|
173
|
+
},
|
|
174
|
+
"inline": {
|
|
175
|
+
"type": "boolean",
|
|
176
|
+
"default": false,
|
|
177
|
+
"description": "Return inline content instead of download URL"
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
"required": [
|
|
181
|
+
"file_id"
|
|
182
|
+
]
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"name": "update_file",
|
|
187
|
+
"description": "Update file metadata - name, description, tags, access level, or move to different folder",
|
|
188
|
+
"method": "PUT",
|
|
189
|
+
"path": "/media/files/%7B%7Bfile_id%7D%7D",
|
|
190
|
+
"input_schema": {
|
|
191
|
+
"type": "object",
|
|
192
|
+
"properties": {
|
|
193
|
+
"file_id": {
|
|
194
|
+
"type": "integer",
|
|
195
|
+
"description": "ID of the file to update"
|
|
196
|
+
},
|
|
197
|
+
"name": {
|
|
198
|
+
"type": "string",
|
|
199
|
+
"description": "New file name"
|
|
200
|
+
},
|
|
201
|
+
"description": {
|
|
202
|
+
"type": "string",
|
|
203
|
+
"description": "New description"
|
|
204
|
+
},
|
|
205
|
+
"tags": {
|
|
206
|
+
"type": "array",
|
|
207
|
+
"items": {
|
|
208
|
+
"type": "string"
|
|
209
|
+
},
|
|
210
|
+
"description": "Updated tags"
|
|
211
|
+
},
|
|
212
|
+
"access_level": {
|
|
213
|
+
"type": "string",
|
|
214
|
+
"enum": [
|
|
215
|
+
"public",
|
|
216
|
+
"private",
|
|
217
|
+
"shared"
|
|
218
|
+
],
|
|
219
|
+
"description": "Update access level"
|
|
220
|
+
},
|
|
221
|
+
"folder_id": {
|
|
222
|
+
"type": "integer",
|
|
223
|
+
"description": "Move to a different folder"
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
"required": [
|
|
227
|
+
"file_id"
|
|
228
|
+
]
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"name": "delete_file",
|
|
233
|
+
"description": "Delete a file from storage permanently",
|
|
234
|
+
"method": "DELETE",
|
|
235
|
+
"path": "/media/files/%7B%7Bfile_id%7D%7D",
|
|
236
|
+
"input_schema": {
|
|
237
|
+
"type": "object",
|
|
238
|
+
"properties": {
|
|
239
|
+
"file_id": {
|
|
240
|
+
"type": "integer",
|
|
241
|
+
"description": "ID of the file to delete"
|
|
242
|
+
}
|
|
243
|
+
},
|
|
244
|
+
"required": [
|
|
245
|
+
"file_id"
|
|
246
|
+
]
|
|
247
|
+
}
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"name": "search_files",
|
|
251
|
+
"description": "Advanced search and filter files by type, size, dimensions, duration, tags, dates, and more with sorting and pagination",
|
|
252
|
+
"method": "GET",
|
|
253
|
+
"path": "/media/files/search",
|
|
254
|
+
"input_schema": {
|
|
255
|
+
"type": "object",
|
|
256
|
+
"properties": {
|
|
257
|
+
"search": {
|
|
258
|
+
"type": "string",
|
|
259
|
+
"description": "Search in file names and descriptions"
|
|
260
|
+
},
|
|
261
|
+
"file_type": {
|
|
262
|
+
"type": "string",
|
|
263
|
+
"enum": [
|
|
264
|
+
"image",
|
|
265
|
+
"video",
|
|
266
|
+
"audio",
|
|
267
|
+
"document",
|
|
268
|
+
"archive",
|
|
269
|
+
"other"
|
|
270
|
+
],
|
|
271
|
+
"description": "Filter by file type"
|
|
272
|
+
},
|
|
273
|
+
"mime_type": {
|
|
274
|
+
"type": "string",
|
|
275
|
+
"description": "Filter by MIME type (e.g., 'video/mp4')"
|
|
276
|
+
},
|
|
277
|
+
"extension": {
|
|
278
|
+
"type": "string",
|
|
279
|
+
"description": "Filter by file extension (e.g., 'mp4', 'jpg')"
|
|
280
|
+
},
|
|
281
|
+
"folder_id": {
|
|
282
|
+
"type": "integer",
|
|
283
|
+
"description": "Filter by folder ID"
|
|
284
|
+
},
|
|
285
|
+
"bucket_id": {
|
|
286
|
+
"type": "integer",
|
|
287
|
+
"description": "Filter by bucket ID"
|
|
288
|
+
},
|
|
289
|
+
"access_level": {
|
|
290
|
+
"type": "string",
|
|
291
|
+
"enum": [
|
|
292
|
+
"public",
|
|
293
|
+
"private",
|
|
294
|
+
"restricted"
|
|
295
|
+
],
|
|
296
|
+
"description": "Filter by access level"
|
|
297
|
+
},
|
|
298
|
+
"min_size": {
|
|
299
|
+
"type": "integer",
|
|
300
|
+
"description": "Minimum file size in bytes"
|
|
301
|
+
},
|
|
302
|
+
"max_size": {
|
|
303
|
+
"type": "integer",
|
|
304
|
+
"description": "Maximum file size in bytes"
|
|
305
|
+
},
|
|
306
|
+
"min_duration": {
|
|
307
|
+
"type": "number",
|
|
308
|
+
"description": "Minimum duration in seconds (video/audio)"
|
|
309
|
+
},
|
|
310
|
+
"max_duration": {
|
|
311
|
+
"type": "number",
|
|
312
|
+
"description": "Maximum duration in seconds (video/audio)"
|
|
313
|
+
},
|
|
314
|
+
"tags": {
|
|
315
|
+
"type": "array",
|
|
316
|
+
"items": {
|
|
317
|
+
"type": "string"
|
|
318
|
+
},
|
|
319
|
+
"description": "Filter by tags (any match)"
|
|
320
|
+
},
|
|
321
|
+
"sort_by": {
|
|
322
|
+
"type": "string",
|
|
323
|
+
"enum": [
|
|
324
|
+
"name",
|
|
325
|
+
"size_bytes",
|
|
326
|
+
"created_at",
|
|
327
|
+
"file_type",
|
|
328
|
+
"duration"
|
|
329
|
+
],
|
|
330
|
+
"default": "created_at",
|
|
331
|
+
"description": "Sort field"
|
|
332
|
+
},
|
|
333
|
+
"sort_order": {
|
|
334
|
+
"type": "string",
|
|
335
|
+
"enum": [
|
|
336
|
+
"asc",
|
|
337
|
+
"desc"
|
|
338
|
+
],
|
|
339
|
+
"default": "desc",
|
|
340
|
+
"description": "Sort direction"
|
|
341
|
+
},
|
|
342
|
+
"limit": {
|
|
343
|
+
"type": "integer",
|
|
344
|
+
"minimum": 1,
|
|
345
|
+
"maximum": 1000,
|
|
346
|
+
"default": 50,
|
|
347
|
+
"description": "Number of results"
|
|
348
|
+
},
|
|
349
|
+
"offset": {
|
|
350
|
+
"type": "integer",
|
|
351
|
+
"minimum": 0,
|
|
352
|
+
"default": 0,
|
|
353
|
+
"description": "Pagination offset"
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
"name": "list_thumbnails",
|
|
360
|
+
"description": "List all thumbnails for a video file with timing information and URLs",
|
|
361
|
+
"method": "GET",
|
|
362
|
+
"path": "/media/files/%7B%7Bfile_id%7D%7D/thumbnails",
|
|
363
|
+
"input_schema": {
|
|
364
|
+
"type": "object",
|
|
365
|
+
"properties": {
|
|
366
|
+
"file_id": {
|
|
367
|
+
"type": "integer",
|
|
368
|
+
"description": "ID of the video file"
|
|
369
|
+
},
|
|
370
|
+
"include_urls": {
|
|
371
|
+
"type": "boolean",
|
|
372
|
+
"default": true,
|
|
373
|
+
"description": "Include thumbnail URLs"
|
|
374
|
+
},
|
|
375
|
+
"include_poster": {
|
|
376
|
+
"type": "boolean",
|
|
377
|
+
"default": false,
|
|
378
|
+
"description": "Include poster frame"
|
|
379
|
+
}
|
|
380
|
+
},
|
|
381
|
+
"required": [
|
|
382
|
+
"file_id"
|
|
383
|
+
]
|
|
384
|
+
}
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
"name": "create_folder",
|
|
388
|
+
"description": "Create a new folder for organizing media files",
|
|
389
|
+
"method": "POST",
|
|
390
|
+
"path": "/media/folders",
|
|
391
|
+
"input_schema": {
|
|
392
|
+
"type": "object",
|
|
393
|
+
"properties": {
|
|
394
|
+
"name": {
|
|
395
|
+
"type": "string",
|
|
396
|
+
"description": "Folder name"
|
|
397
|
+
},
|
|
398
|
+
"parent_folder_id": {
|
|
399
|
+
"type": "integer",
|
|
400
|
+
"description": "Parent folder ID for nested folders"
|
|
401
|
+
},
|
|
402
|
+
"description": {
|
|
403
|
+
"type": "string",
|
|
404
|
+
"description": "Folder description"
|
|
405
|
+
},
|
|
406
|
+
"bucket_id": {
|
|
407
|
+
"type": "integer",
|
|
408
|
+
"description": "Storage bucket ID"
|
|
409
|
+
}
|
|
410
|
+
},
|
|
411
|
+
"required": [
|
|
412
|
+
"name"
|
|
413
|
+
]
|
|
414
|
+
}
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
"name": "list_folders",
|
|
418
|
+
"description": "List folders in project storage with hierarchy support",
|
|
419
|
+
"method": "GET",
|
|
420
|
+
"path": "/media/folders",
|
|
421
|
+
"input_schema": {
|
|
422
|
+
"type": "object",
|
|
423
|
+
"properties": {
|
|
424
|
+
"bucket_id": {
|
|
425
|
+
"type": "integer",
|
|
426
|
+
"description": "Filter by bucket ID"
|
|
427
|
+
},
|
|
428
|
+
"parent_folder_id": {
|
|
429
|
+
"type": "integer",
|
|
430
|
+
"description": "Parent folder ID (omit for root folders)"
|
|
431
|
+
},
|
|
432
|
+
"include_subfolders": {
|
|
433
|
+
"type": "boolean",
|
|
434
|
+
"default": false,
|
|
435
|
+
"description": "Include child folders"
|
|
436
|
+
},
|
|
437
|
+
"limit": {
|
|
438
|
+
"type": "integer",
|
|
439
|
+
"default": 50,
|
|
440
|
+
"description": "Number of folders to return"
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
},
|
|
445
|
+
{
|
|
446
|
+
"name": "update_folder",
|
|
447
|
+
"description": "Update folder name, description, or move to different parent",
|
|
448
|
+
"method": "PUT",
|
|
449
|
+
"path": "/media/folders/%7B%7Bfolder_id%7D%7D",
|
|
450
|
+
"input_schema": {
|
|
451
|
+
"type": "object",
|
|
452
|
+
"properties": {
|
|
453
|
+
"folder_id": {
|
|
454
|
+
"type": "integer",
|
|
455
|
+
"description": "ID of the folder to update"
|
|
456
|
+
},
|
|
457
|
+
"name": {
|
|
458
|
+
"type": "string",
|
|
459
|
+
"description": "New folder name"
|
|
460
|
+
},
|
|
461
|
+
"description": {
|
|
462
|
+
"type": "string",
|
|
463
|
+
"description": "New description"
|
|
464
|
+
},
|
|
465
|
+
"parent_folder_id": {
|
|
466
|
+
"type": "integer",
|
|
467
|
+
"description": "Move to different parent folder"
|
|
468
|
+
}
|
|
469
|
+
},
|
|
470
|
+
"required": [
|
|
471
|
+
"folder_id"
|
|
472
|
+
]
|
|
473
|
+
}
|
|
474
|
+
},
|
|
475
|
+
{
|
|
476
|
+
"name": "delete_folder",
|
|
477
|
+
"description": "Delete a folder and optionally all its contents recursively",
|
|
478
|
+
"method": "DELETE",
|
|
479
|
+
"path": "/media/folders/%7B%7Bfolder_id%7D%7D",
|
|
480
|
+
"input_schema": {
|
|
481
|
+
"type": "object",
|
|
482
|
+
"properties": {
|
|
483
|
+
"folder_id": {
|
|
484
|
+
"type": "integer",
|
|
485
|
+
"description": "ID of the folder to delete"
|
|
486
|
+
},
|
|
487
|
+
"recursive": {
|
|
488
|
+
"type": "boolean",
|
|
489
|
+
"default": false,
|
|
490
|
+
"description": "Delete all contents recursively"
|
|
491
|
+
}
|
|
492
|
+
},
|
|
493
|
+
"required": [
|
|
494
|
+
"folder_id"
|
|
495
|
+
]
|
|
496
|
+
}
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
"name": "extract_screenshot",
|
|
500
|
+
"description": "Extract high-quality screenshot(s) from a video file at specific timestamps. Saves as individual image files in storage.",
|
|
501
|
+
"method": "POST",
|
|
502
|
+
"path": "/media/extract-screenshots",
|
|
503
|
+
"input_schema": {
|
|
504
|
+
"type": "object",
|
|
505
|
+
"properties": {
|
|
506
|
+
"file_id": {
|
|
507
|
+
"type": "integer",
|
|
508
|
+
"description": "ID of the video file to extract screenshots from"
|
|
509
|
+
},
|
|
510
|
+
"timestamps": {
|
|
511
|
+
"type": "array",
|
|
512
|
+
"items": {
|
|
513
|
+
"type": "number"
|
|
514
|
+
},
|
|
515
|
+
"description": "Array of timestamps in seconds to extract frames at (e.g., [2.5, 10, 30])"
|
|
516
|
+
},
|
|
517
|
+
"interval": {
|
|
518
|
+
"type": "number",
|
|
519
|
+
"description": "Extract a frame every N seconds (alternative to timestamps)"
|
|
520
|
+
},
|
|
521
|
+
"count": {
|
|
522
|
+
"type": "integer",
|
|
523
|
+
"description": "Extract N evenly-spaced frames across the video (alternative to timestamps)"
|
|
524
|
+
},
|
|
525
|
+
"percentage": {
|
|
526
|
+
"type": "boolean",
|
|
527
|
+
"default": false,
|
|
528
|
+
"description": "Extract frames at 0%, 25%, 50%, 75%, 100% of video duration"
|
|
529
|
+
},
|
|
530
|
+
"output_format": {
|
|
531
|
+
"type": "string",
|
|
532
|
+
"enum": [
|
|
533
|
+
"jpg",
|
|
534
|
+
"png",
|
|
535
|
+
"webp"
|
|
536
|
+
],
|
|
537
|
+
"default": "png",
|
|
538
|
+
"description": "Image output format (png recommended for best quality)"
|
|
539
|
+
},
|
|
540
|
+
"output_size": {
|
|
541
|
+
"type": "string",
|
|
542
|
+
"description": "Output size: 'original', 'thumbnail' (320px), 'preview' (640px), 'hd' (1280px), 'fullhd' (1920px), '4k' (3840px), or custom width like '800'"
|
|
543
|
+
},
|
|
544
|
+
"quality": {
|
|
545
|
+
"type": "integer",
|
|
546
|
+
"minimum": 1,
|
|
547
|
+
"maximum": 31,
|
|
548
|
+
"default": 1,
|
|
549
|
+
"description": "Image quality (1-31, 1 = highest quality)"
|
|
550
|
+
},
|
|
551
|
+
"create_grid": {
|
|
552
|
+
"type": "boolean",
|
|
553
|
+
"default": false,
|
|
554
|
+
"description": "Also create a thumbnail grid image combining all screenshots"
|
|
555
|
+
},
|
|
556
|
+
"folder_id": {
|
|
557
|
+
"type": "integer",
|
|
558
|
+
"description": "Optional folder ID to save screenshots to"
|
|
559
|
+
},
|
|
560
|
+
"access_level": {
|
|
561
|
+
"type": "string",
|
|
562
|
+
"enum": [
|
|
563
|
+
"public",
|
|
564
|
+
"private"
|
|
565
|
+
],
|
|
566
|
+
"default": "public",
|
|
567
|
+
"description": "Access level for created files"
|
|
568
|
+
}
|
|
569
|
+
},
|
|
570
|
+
"required": [
|
|
571
|
+
"file_id"
|
|
572
|
+
]
|
|
573
|
+
}
|
|
574
|
+
},
|
|
575
|
+
{
|
|
576
|
+
"name": "extract_clip",
|
|
577
|
+
"description": "Extract a segment/clip from a video or audio file at specific time range. Supports re-encoding or fast copy mode.",
|
|
578
|
+
"method": "POST",
|
|
579
|
+
"path": "/media/extract-clip",
|
|
580
|
+
"input_schema": {
|
|
581
|
+
"type": "object",
|
|
582
|
+
"properties": {
|
|
583
|
+
"file_id": {
|
|
584
|
+
"type": "integer",
|
|
585
|
+
"description": "ID of the video/audio file to extract clip from"
|
|
586
|
+
},
|
|
587
|
+
"start_time": {
|
|
588
|
+
"type": "number",
|
|
589
|
+
"default": 0,
|
|
590
|
+
"description": "Start time in seconds"
|
|
591
|
+
},
|
|
592
|
+
"end_time": {
|
|
593
|
+
"type": "number",
|
|
594
|
+
"description": "End time in seconds (required if duration not provided)"
|
|
595
|
+
},
|
|
596
|
+
"duration": {
|
|
597
|
+
"type": "number",
|
|
598
|
+
"description": "Duration in seconds (alternative to end_time)"
|
|
599
|
+
},
|
|
600
|
+
"output_format": {
|
|
601
|
+
"type": "string",
|
|
602
|
+
"description": "Output format: mp4, webm, mov, mp3, wav, etc. (defaults to source format)"
|
|
603
|
+
},
|
|
604
|
+
"include_audio": {
|
|
605
|
+
"type": "boolean",
|
|
606
|
+
"default": true,
|
|
607
|
+
"description": "Include audio track in output"
|
|
608
|
+
},
|
|
609
|
+
"include_video": {
|
|
610
|
+
"type": "boolean",
|
|
611
|
+
"default": true,
|
|
612
|
+
"description": "Include video track in output"
|
|
613
|
+
},
|
|
614
|
+
"bitrate": {
|
|
615
|
+
"type": "string",
|
|
616
|
+
"description": "Video bitrate (e.g., '2M', '5M')"
|
|
617
|
+
},
|
|
618
|
+
"audio_bitrate": {
|
|
619
|
+
"type": "string",
|
|
620
|
+
"description": "Audio bitrate (e.g., '128k', '256k')"
|
|
621
|
+
},
|
|
622
|
+
"fast_copy": {
|
|
623
|
+
"type": "boolean",
|
|
624
|
+
"default": true,
|
|
625
|
+
"description": "Use fast copy mode (no re-encoding, instant but keyframe-aligned cuts). Set to false for frame-precise cuts."
|
|
626
|
+
},
|
|
627
|
+
"access_level": {
|
|
628
|
+
"type": "string",
|
|
629
|
+
"enum": [
|
|
630
|
+
"public",
|
|
631
|
+
"private"
|
|
632
|
+
],
|
|
633
|
+
"default": "public",
|
|
634
|
+
"description": "Access level for created file"
|
|
635
|
+
}
|
|
636
|
+
},
|
|
637
|
+
"required": [
|
|
638
|
+
"file_id"
|
|
639
|
+
]
|
|
640
|
+
}
|
|
641
|
+
},
|
|
642
|
+
{
|
|
643
|
+
"name": "extract_audio",
|
|
644
|
+
"description": "Extract audio track from a video file and save as separate audio file (mp3, wav, aac, etc.)",
|
|
645
|
+
"method": "POST",
|
|
646
|
+
"path": "/media/extract-audio",
|
|
647
|
+
"input_schema": {
|
|
648
|
+
"type": "object",
|
|
649
|
+
"properties": {
|
|
650
|
+
"file_id": {
|
|
651
|
+
"type": "integer",
|
|
652
|
+
"description": "ID of the video file to extract audio from"
|
|
653
|
+
},
|
|
654
|
+
"output_format": {
|
|
655
|
+
"type": "string",
|
|
656
|
+
"enum": [
|
|
657
|
+
"mp3",
|
|
658
|
+
"wav",
|
|
659
|
+
"aac",
|
|
660
|
+
"flac",
|
|
661
|
+
"ogg"
|
|
662
|
+
],
|
|
663
|
+
"default": "mp3",
|
|
664
|
+
"description": "Audio output format"
|
|
665
|
+
},
|
|
666
|
+
"bitrate": {
|
|
667
|
+
"type": "string",
|
|
668
|
+
"default": "192k",
|
|
669
|
+
"description": "Audio bitrate (e.g., '128k', '192k', '320k')"
|
|
670
|
+
},
|
|
671
|
+
"sample_rate": {
|
|
672
|
+
"type": "integer",
|
|
673
|
+
"description": "Sample rate in Hz (e.g., 44100, 48000)"
|
|
674
|
+
},
|
|
675
|
+
"channels": {
|
|
676
|
+
"type": "integer",
|
|
677
|
+
"enum": [
|
|
678
|
+
1,
|
|
679
|
+
2
|
|
680
|
+
],
|
|
681
|
+
"description": "Number of audio channels (1=mono, 2=stereo)"
|
|
682
|
+
},
|
|
683
|
+
"access_level": {
|
|
684
|
+
"type": "string",
|
|
685
|
+
"enum": [
|
|
686
|
+
"public",
|
|
687
|
+
"private"
|
|
688
|
+
],
|
|
689
|
+
"default": "public",
|
|
690
|
+
"description": "Access level for created file"
|
|
691
|
+
}
|
|
692
|
+
},
|
|
693
|
+
"required": [
|
|
694
|
+
"file_id"
|
|
695
|
+
]
|
|
696
|
+
}
|
|
697
|
+
},
|
|
698
|
+
{
|
|
699
|
+
"name": "compress",
|
|
700
|
+
"description": "Compress video to reduce file size while maintaining quality. Supports various quality presets and target file sizes.",
|
|
701
|
+
"method": "POST",
|
|
702
|
+
"path": "/media/compress-video",
|
|
703
|
+
"input_schema": {
|
|
704
|
+
"type": "object",
|
|
705
|
+
"properties": {
|
|
706
|
+
"file_id": {
|
|
707
|
+
"type": "integer",
|
|
708
|
+
"description": "ID of the video file to compress"
|
|
709
|
+
},
|
|
710
|
+
"quality": {
|
|
711
|
+
"type": "string",
|
|
712
|
+
"enum": [
|
|
713
|
+
"low",
|
|
714
|
+
"medium",
|
|
715
|
+
"high",
|
|
716
|
+
"very_high"
|
|
717
|
+
],
|
|
718
|
+
"default": "medium",
|
|
719
|
+
"description": "Quality preset - affects bitrate and file size"
|
|
720
|
+
},
|
|
721
|
+
"target_size_mb": {
|
|
722
|
+
"type": "number",
|
|
723
|
+
"description": "Target file size in MB (overrides quality preset)"
|
|
724
|
+
},
|
|
725
|
+
"max_bitrate": {
|
|
726
|
+
"type": "string",
|
|
727
|
+
"description": "Maximum video bitrate (e.g., '2M', '5M')"
|
|
728
|
+
},
|
|
729
|
+
"resolution": {
|
|
730
|
+
"type": "string",
|
|
731
|
+
"description": "Target resolution (e.g., '1280x720', '1920x1080') - downscales if larger"
|
|
732
|
+
},
|
|
733
|
+
"output_format": {
|
|
734
|
+
"type": "string",
|
|
735
|
+
"enum": [
|
|
736
|
+
"mp4",
|
|
737
|
+
"webm"
|
|
738
|
+
],
|
|
739
|
+
"default": "mp4",
|
|
740
|
+
"description": "Output format"
|
|
741
|
+
},
|
|
742
|
+
"access_level": {
|
|
743
|
+
"type": "string",
|
|
744
|
+
"enum": [
|
|
745
|
+
"public",
|
|
746
|
+
"private"
|
|
747
|
+
],
|
|
748
|
+
"default": "public",
|
|
749
|
+
"description": "Access level for created file"
|
|
750
|
+
}
|
|
751
|
+
},
|
|
752
|
+
"required": [
|
|
753
|
+
"file_id"
|
|
754
|
+
]
|
|
755
|
+
}
|
|
756
|
+
},
|
|
757
|
+
{
|
|
758
|
+
"name": "resize",
|
|
759
|
+
"description": "Resize video to different resolution or aspect ratio. Supports scaling, cropping, padding, and social media presets.",
|
|
760
|
+
"method": "POST",
|
|
761
|
+
"path": "/media/resize-video",
|
|
762
|
+
"input_schema": {
|
|
763
|
+
"type": "object",
|
|
764
|
+
"properties": {
|
|
765
|
+
"file_id": {
|
|
766
|
+
"type": "integer",
|
|
767
|
+
"description": "ID of the video file to resize"
|
|
768
|
+
},
|
|
769
|
+
"width": {
|
|
770
|
+
"type": "integer",
|
|
771
|
+
"description": "Target width in pixels"
|
|
772
|
+
},
|
|
773
|
+
"height": {
|
|
774
|
+
"type": "integer",
|
|
775
|
+
"description": "Target height in pixels"
|
|
776
|
+
},
|
|
777
|
+
"resolution": {
|
|
778
|
+
"type": "string",
|
|
779
|
+
"description": "Target resolution as string (e.g., '1280x720', '1920x1080')"
|
|
780
|
+
},
|
|
781
|
+
"aspect_ratio": {
|
|
782
|
+
"type": "string",
|
|
783
|
+
"enum": [
|
|
784
|
+
"16:9",
|
|
785
|
+
"9:16",
|
|
786
|
+
"4:3",
|
|
787
|
+
"1:1"
|
|
788
|
+
],
|
|
789
|
+
"description": "Target aspect ratio"
|
|
790
|
+
},
|
|
791
|
+
"preset": {
|
|
792
|
+
"type": "string",
|
|
793
|
+
"enum": [
|
|
794
|
+
"social-vertical",
|
|
795
|
+
"social-square",
|
|
796
|
+
"social-landscape",
|
|
797
|
+
"youtube-shorts",
|
|
798
|
+
"tiktok",
|
|
799
|
+
"instagram-reel",
|
|
800
|
+
"instagram-square",
|
|
801
|
+
"reel-left",
|
|
802
|
+
"reel-center",
|
|
803
|
+
"reel-right"
|
|
804
|
+
],
|
|
805
|
+
"description": "Quick preset: social formats or reel extraction (reel-left/center/right extracts vertical slice from landscape)"
|
|
806
|
+
},
|
|
807
|
+
"crop_region": {
|
|
808
|
+
"type": "object",
|
|
809
|
+
"properties": {
|
|
810
|
+
"x": {
|
|
811
|
+
"type": [
|
|
812
|
+
"integer",
|
|
813
|
+
"string"
|
|
814
|
+
],
|
|
815
|
+
"description": "X position (pixels or '50%')"
|
|
816
|
+
},
|
|
817
|
+
"y": {
|
|
818
|
+
"type": [
|
|
819
|
+
"integer",
|
|
820
|
+
"string"
|
|
821
|
+
],
|
|
822
|
+
"description": "Y position (pixels or '0%')"
|
|
823
|
+
},
|
|
824
|
+
"width": {
|
|
825
|
+
"type": [
|
|
826
|
+
"integer",
|
|
827
|
+
"string"
|
|
828
|
+
],
|
|
829
|
+
"description": "Crop width (pixels or '33%')"
|
|
830
|
+
},
|
|
831
|
+
"height": {
|
|
832
|
+
"type": [
|
|
833
|
+
"integer",
|
|
834
|
+
"string"
|
|
835
|
+
],
|
|
836
|
+
"description": "Crop height (pixels or '100%')"
|
|
837
|
+
}
|
|
838
|
+
},
|
|
839
|
+
"description": "Precise crop region for custom extraction (overrides crop_mode)"
|
|
840
|
+
},
|
|
841
|
+
"crop_mode": {
|
|
842
|
+
"type": "string",
|
|
843
|
+
"enum": [
|
|
844
|
+
"center",
|
|
845
|
+
"top",
|
|
846
|
+
"bottom",
|
|
847
|
+
"left",
|
|
848
|
+
"right"
|
|
849
|
+
],
|
|
850
|
+
"default": "center",
|
|
851
|
+
"description": "Where to crop from when using fit_mode=crop"
|
|
852
|
+
},
|
|
853
|
+
"fit_mode": {
|
|
854
|
+
"type": "string",
|
|
855
|
+
"enum": [
|
|
856
|
+
"cover",
|
|
857
|
+
"crop",
|
|
858
|
+
"contain",
|
|
859
|
+
"pad",
|
|
860
|
+
"fill",
|
|
861
|
+
"stretch"
|
|
862
|
+
],
|
|
863
|
+
"default": "cover",
|
|
864
|
+
"description": "How to fit: cover/crop (cut edges), contain/pad (letterbox), fill/stretch (distort)"
|
|
865
|
+
},
|
|
866
|
+
"output_format": {
|
|
867
|
+
"type": "string",
|
|
868
|
+
"enum": [
|
|
869
|
+
"mp4",
|
|
870
|
+
"webm",
|
|
871
|
+
"mov"
|
|
872
|
+
],
|
|
873
|
+
"default": "mp4",
|
|
874
|
+
"description": "Output format"
|
|
875
|
+
},
|
|
876
|
+
"access_level": {
|
|
877
|
+
"type": "string",
|
|
878
|
+
"enum": [
|
|
879
|
+
"public",
|
|
880
|
+
"private"
|
|
881
|
+
],
|
|
882
|
+
"default": "public",
|
|
883
|
+
"description": "Access level for created file"
|
|
884
|
+
}
|
|
885
|
+
},
|
|
886
|
+
"required": [
|
|
887
|
+
"file_id"
|
|
888
|
+
]
|
|
889
|
+
}
|
|
890
|
+
},
|
|
891
|
+
{
|
|
892
|
+
"name": "create_gif",
|
|
893
|
+
"description": "Convert a video segment to an animated GIF. Perfect for creating shareable clips and previews.",
|
|
894
|
+
"method": "POST",
|
|
895
|
+
"path": "/media/create-gif",
|
|
896
|
+
"input_schema": {
|
|
897
|
+
"type": "object",
|
|
898
|
+
"properties": {
|
|
899
|
+
"file_id": {
|
|
900
|
+
"type": "integer",
|
|
901
|
+
"description": "ID of the video file to convert"
|
|
902
|
+
},
|
|
903
|
+
"start_time": {
|
|
904
|
+
"type": "number",
|
|
905
|
+
"default": 0,
|
|
906
|
+
"description": "Start time in seconds"
|
|
907
|
+
},
|
|
908
|
+
"duration": {
|
|
909
|
+
"type": "number",
|
|
910
|
+
"default": 5,
|
|
911
|
+
"description": "Duration in seconds (max recommended: 10s)"
|
|
912
|
+
},
|
|
913
|
+
"width": {
|
|
914
|
+
"type": "integer",
|
|
915
|
+
"default": 480,
|
|
916
|
+
"description": "GIF width in pixels (height auto-calculated)"
|
|
917
|
+
},
|
|
918
|
+
"fps": {
|
|
919
|
+
"type": "integer",
|
|
920
|
+
"default": 10,
|
|
921
|
+
"description": "Frames per second (lower = smaller file)"
|
|
922
|
+
},
|
|
923
|
+
"loop": {
|
|
924
|
+
"type": "integer",
|
|
925
|
+
"default": 0,
|
|
926
|
+
"description": "Number of loops (0 = infinite)"
|
|
927
|
+
},
|
|
928
|
+
"optimize": {
|
|
929
|
+
"type": "boolean",
|
|
930
|
+
"default": true,
|
|
931
|
+
"description": "Apply palette optimization for smaller file size"
|
|
932
|
+
},
|
|
933
|
+
"access_level": {
|
|
934
|
+
"type": "string",
|
|
935
|
+
"enum": [
|
|
936
|
+
"public",
|
|
937
|
+
"private"
|
|
938
|
+
],
|
|
939
|
+
"default": "public",
|
|
940
|
+
"description": "Access level for created file"
|
|
941
|
+
}
|
|
942
|
+
},
|
|
943
|
+
"required": [
|
|
944
|
+
"file_id"
|
|
945
|
+
]
|
|
946
|
+
}
|
|
947
|
+
},
|
|
948
|
+
{
|
|
949
|
+
"name": "burn_subtitles",
|
|
950
|
+
"description": "Permanently burn subtitles/captions into video. Supports SRT, VTT, and ASS subtitle formats.",
|
|
951
|
+
"method": "POST",
|
|
952
|
+
"path": "/media/burn-subtitles",
|
|
953
|
+
"input_schema": {
|
|
954
|
+
"type": "object",
|
|
955
|
+
"properties": {
|
|
956
|
+
"file_id": {
|
|
957
|
+
"type": "integer",
|
|
958
|
+
"description": "ID of the video file"
|
|
959
|
+
},
|
|
960
|
+
"subtitle_file_id": {
|
|
961
|
+
"type": "integer",
|
|
962
|
+
"description": "ID of the subtitle file (SRT, VTT, ASS)"
|
|
963
|
+
},
|
|
964
|
+
"subtitle_text": {
|
|
965
|
+
"type": "string",
|
|
966
|
+
"description": "Raw subtitle content in SRT format (alternative to subtitle_file_id)"
|
|
967
|
+
},
|
|
968
|
+
"font_size": {
|
|
969
|
+
"type": "integer",
|
|
970
|
+
"default": 24,
|
|
971
|
+
"description": "Subtitle font size"
|
|
972
|
+
},
|
|
973
|
+
"font_color": {
|
|
974
|
+
"type": "string",
|
|
975
|
+
"default": "white",
|
|
976
|
+
"description": "Subtitle font color (name or hex)"
|
|
977
|
+
},
|
|
978
|
+
"outline_color": {
|
|
979
|
+
"type": "string",
|
|
980
|
+
"default": "black",
|
|
981
|
+
"description": "Subtitle outline color"
|
|
982
|
+
},
|
|
983
|
+
"position": {
|
|
984
|
+
"type": "string",
|
|
985
|
+
"enum": [
|
|
986
|
+
"bottom",
|
|
987
|
+
"top",
|
|
988
|
+
"center"
|
|
989
|
+
],
|
|
990
|
+
"default": "bottom",
|
|
991
|
+
"description": "Subtitle position"
|
|
992
|
+
},
|
|
993
|
+
"output_format": {
|
|
994
|
+
"type": "string",
|
|
995
|
+
"enum": [
|
|
996
|
+
"mp4",
|
|
997
|
+
"webm",
|
|
998
|
+
"mov"
|
|
999
|
+
],
|
|
1000
|
+
"default": "mp4",
|
|
1001
|
+
"description": "Output format"
|
|
1002
|
+
},
|
|
1003
|
+
"access_level": {
|
|
1004
|
+
"type": "string",
|
|
1005
|
+
"enum": [
|
|
1006
|
+
"public",
|
|
1007
|
+
"private"
|
|
1008
|
+
],
|
|
1009
|
+
"default": "public",
|
|
1010
|
+
"description": "Access level for created file"
|
|
1011
|
+
}
|
|
1012
|
+
},
|
|
1013
|
+
"required": [
|
|
1014
|
+
"file_id"
|
|
1015
|
+
]
|
|
1016
|
+
}
|
|
1017
|
+
},
|
|
1018
|
+
{
|
|
1019
|
+
"name": "create_grid",
|
|
1020
|
+
"description": "Combine multiple videos into a single layout (side-by-side, grid, picture-in-picture)",
|
|
1021
|
+
"method": "POST",
|
|
1022
|
+
"path": "/media/create-video-grid",
|
|
1023
|
+
"input_schema": {
|
|
1024
|
+
"type": "object",
|
|
1025
|
+
"properties": {
|
|
1026
|
+
"file_ids": {
|
|
1027
|
+
"type": "array",
|
|
1028
|
+
"items": {
|
|
1029
|
+
"type": "integer"
|
|
1030
|
+
},
|
|
1031
|
+
"description": "Array of video file IDs to combine"
|
|
1032
|
+
},
|
|
1033
|
+
"layout": {
|
|
1034
|
+
"type": "string",
|
|
1035
|
+
"enum": [
|
|
1036
|
+
"2x1",
|
|
1037
|
+
"1x2",
|
|
1038
|
+
"2x2",
|
|
1039
|
+
"3x3",
|
|
1040
|
+
"pip"
|
|
1041
|
+
],
|
|
1042
|
+
"default": "2x2",
|
|
1043
|
+
"description": "Grid layout: 2x1 (side-by-side), 1x2 (stacked), 2x2 (quad), pip (picture-in-picture)"
|
|
1044
|
+
},
|
|
1045
|
+
"output_resolution": {
|
|
1046
|
+
"type": "string",
|
|
1047
|
+
"default": "1920x1080",
|
|
1048
|
+
"description": "Output resolution (e.g., '1920x1080', '1280x720')"
|
|
1049
|
+
},
|
|
1050
|
+
"pip_position": {
|
|
1051
|
+
"type": "string",
|
|
1052
|
+
"enum": [
|
|
1053
|
+
"top-left",
|
|
1054
|
+
"top-right",
|
|
1055
|
+
"bottom-left",
|
|
1056
|
+
"bottom-right"
|
|
1057
|
+
],
|
|
1058
|
+
"default": "bottom-right",
|
|
1059
|
+
"description": "Position of PiP overlay (only for pip layout)"
|
|
1060
|
+
},
|
|
1061
|
+
"pip_size": {
|
|
1062
|
+
"type": "number",
|
|
1063
|
+
"default": 0.25,
|
|
1064
|
+
"description": "Size of PiP as fraction of main video (0.1-0.5)"
|
|
1065
|
+
},
|
|
1066
|
+
"output_format": {
|
|
1067
|
+
"type": "string",
|
|
1068
|
+
"enum": [
|
|
1069
|
+
"mp4",
|
|
1070
|
+
"webm"
|
|
1071
|
+
],
|
|
1072
|
+
"default": "mp4",
|
|
1073
|
+
"description": "Output format"
|
|
1074
|
+
},
|
|
1075
|
+
"access_level": {
|
|
1076
|
+
"type": "string",
|
|
1077
|
+
"enum": [
|
|
1078
|
+
"public",
|
|
1079
|
+
"private"
|
|
1080
|
+
],
|
|
1081
|
+
"default": "public",
|
|
1082
|
+
"description": "Access level for created file"
|
|
1083
|
+
}
|
|
1084
|
+
},
|
|
1085
|
+
"required": [
|
|
1086
|
+
"file_ids"
|
|
1087
|
+
]
|
|
1088
|
+
}
|
|
1089
|
+
},
|
|
1090
|
+
{
|
|
1091
|
+
"name": "probe",
|
|
1092
|
+
"description": "Extract detailed metadata from a media file (duration, resolution, codec, bitrate, frame rate, audio channels, etc.)",
|
|
1093
|
+
"method": "POST",
|
|
1094
|
+
"path": "/media/probe-media",
|
|
1095
|
+
"input_schema": {
|
|
1096
|
+
"type": "object",
|
|
1097
|
+
"properties": {
|
|
1098
|
+
"file_id": {
|
|
1099
|
+
"type": "integer",
|
|
1100
|
+
"description": "ID of the file to probe"
|
|
1101
|
+
}
|
|
1102
|
+
},
|
|
1103
|
+
"required": [
|
|
1104
|
+
"file_id"
|
|
1105
|
+
]
|
|
1106
|
+
}
|
|
1107
|
+
},
|
|
1108
|
+
{
|
|
1109
|
+
"name": "download_media",
|
|
1110
|
+
"description": "Download video or audio from any platform (YouTube, Vimeo, TikTok, Twitter, Instagram, Soundgasm, etc.) and save directly to storage",
|
|
1111
|
+
"method": "POST",
|
|
1112
|
+
"path": "/media/download-media",
|
|
1113
|
+
"input_schema": {
|
|
1114
|
+
"type": "object",
|
|
1115
|
+
"properties": {
|
|
1116
|
+
"url": {
|
|
1117
|
+
"type": "string",
|
|
1118
|
+
"description": "URL of the video or audio to download"
|
|
1119
|
+
},
|
|
1120
|
+
"folder_id": {
|
|
1121
|
+
"type": "integer",
|
|
1122
|
+
"description": "Optional folder ID to organize the downloaded file"
|
|
1123
|
+
},
|
|
1124
|
+
"bucket_id": {
|
|
1125
|
+
"type": "integer",
|
|
1126
|
+
"description": "Optional storage bucket ID (uses default if not provided)"
|
|
1127
|
+
},
|
|
1128
|
+
"format_type": {
|
|
1129
|
+
"type": "string",
|
|
1130
|
+
"enum": [
|
|
1131
|
+
"audio",
|
|
1132
|
+
"video",
|
|
1133
|
+
"best"
|
|
1134
|
+
],
|
|
1135
|
+
"default": "best",
|
|
1136
|
+
"description": "Type of media to download: 'audio' extracts audio only, 'video' downloads video with audio, 'best' selects highest quality"
|
|
1137
|
+
},
|
|
1138
|
+
"quality": {
|
|
1139
|
+
"type": "string",
|
|
1140
|
+
"description": "Quality: '1080p', '720p', '480p' for video OR '320', '192', '128' (kbps) for audio"
|
|
1141
|
+
},
|
|
1142
|
+
"format_id": {
|
|
1143
|
+
"type": "string",
|
|
1144
|
+
"description": "Specific format ID from extract-media-info (overrides quality)"
|
|
1145
|
+
},
|
|
1146
|
+
"file_name": {
|
|
1147
|
+
"type": "string",
|
|
1148
|
+
"description": "Custom filename (uses video title if not provided)"
|
|
1149
|
+
},
|
|
1150
|
+
"access_level": {
|
|
1151
|
+
"type": "string",
|
|
1152
|
+
"enum": [
|
|
1153
|
+
"public",
|
|
1154
|
+
"private"
|
|
1155
|
+
],
|
|
1156
|
+
"default": "public",
|
|
1157
|
+
"description": "File access level"
|
|
1158
|
+
},
|
|
1159
|
+
"skip_thumbnails": {
|
|
1160
|
+
"type": "boolean",
|
|
1161
|
+
"default": false,
|
|
1162
|
+
"description": "Skip automatic thumbnail generation"
|
|
1163
|
+
},
|
|
1164
|
+
"auto_transcribe": {
|
|
1165
|
+
"type": "boolean",
|
|
1166
|
+
"default": true,
|
|
1167
|
+
"description": "Auto-generate transcripts for audio content"
|
|
1168
|
+
},
|
|
1169
|
+
"description": {
|
|
1170
|
+
"type": "string",
|
|
1171
|
+
"description": "File description"
|
|
1172
|
+
},
|
|
1173
|
+
"tags": {
|
|
1174
|
+
"type": "array",
|
|
1175
|
+
"items": {
|
|
1176
|
+
"type": "string"
|
|
1177
|
+
},
|
|
1178
|
+
"description": "Tags for file organization"
|
|
1179
|
+
}
|
|
1180
|
+
},
|
|
1181
|
+
"required": [
|
|
1182
|
+
"url"
|
|
1183
|
+
]
|
|
1184
|
+
}
|
|
1185
|
+
},
|
|
1186
|
+
{
|
|
1187
|
+
"name": "extract_media_info",
|
|
1188
|
+
"description": "Extract metadata and available formats from any video/audio URL without downloading. Returns title, duration, available qualities, and format details.",
|
|
1189
|
+
"method": "POST",
|
|
1190
|
+
"path": "/media/extract-media-info",
|
|
1191
|
+
"input_schema": {
|
|
1192
|
+
"type": "object",
|
|
1193
|
+
"properties": {
|
|
1194
|
+
"url": {
|
|
1195
|
+
"type": "string",
|
|
1196
|
+
"description": "URL of the video or audio to extract info from"
|
|
1197
|
+
},
|
|
1198
|
+
"format_type": {
|
|
1199
|
+
"type": "string",
|
|
1200
|
+
"enum": [
|
|
1201
|
+
"audio",
|
|
1202
|
+
"video",
|
|
1203
|
+
"all"
|
|
1204
|
+
],
|
|
1205
|
+
"default": "all",
|
|
1206
|
+
"description": "Type of formats to return"
|
|
1207
|
+
},
|
|
1208
|
+
"include_formats": {
|
|
1209
|
+
"type": "boolean",
|
|
1210
|
+
"default": true,
|
|
1211
|
+
"description": "Include detailed format information (codecs, bitrates, resolutions)"
|
|
1212
|
+
}
|
|
1213
|
+
},
|
|
1214
|
+
"required": [
|
|
1215
|
+
"url"
|
|
1216
|
+
]
|
|
1217
|
+
}
|
|
1218
|
+
},
|
|
1219
|
+
{
|
|
1220
|
+
"name": "extract_media_metadata",
|
|
1221
|
+
"description": "Extract and persist media metadata (duration, resolution, codec, bitrate) for a file already in storage. Updates the file record with extracted info.",
|
|
1222
|
+
"method": "POST",
|
|
1223
|
+
"path": "/media/extract-media-metadata",
|
|
1224
|
+
"input_schema": {
|
|
1225
|
+
"type": "object",
|
|
1226
|
+
"properties": {
|
|
1227
|
+
"file_id": {
|
|
1228
|
+
"type": "integer",
|
|
1229
|
+
"description": "ID of the file to extract metadata from"
|
|
1230
|
+
},
|
|
1231
|
+
"file_type": {
|
|
1232
|
+
"type": "string",
|
|
1233
|
+
"enum": [
|
|
1234
|
+
"video",
|
|
1235
|
+
"audio"
|
|
1236
|
+
],
|
|
1237
|
+
"description": "Type of file (video or audio)"
|
|
1238
|
+
}
|
|
1239
|
+
},
|
|
1240
|
+
"required": [
|
|
1241
|
+
"file_id"
|
|
1242
|
+
]
|
|
1243
|
+
}
|
|
1244
|
+
}
|
|
1245
|
+
]
|
|
1246
|
+
}
|