@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,861 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "youtube-api",
|
|
3
|
+
"name": "YouTube",
|
|
4
|
+
"description": "YouTube Data API v3 — manage videos, channels, playlists, search, analytics, and content publishing via OAuth2",
|
|
5
|
+
"logo": "https://www.youtube.com/s/desktop/28b0985e/img/favicon_144x144.png",
|
|
6
|
+
"categories": [
|
|
7
|
+
"youtube",
|
|
8
|
+
"video",
|
|
9
|
+
"content",
|
|
10
|
+
"analytics",
|
|
11
|
+
"social-media",
|
|
12
|
+
"google"
|
|
13
|
+
],
|
|
14
|
+
"base_url": "https://www.googleapis.com/youtube/v3",
|
|
15
|
+
"auth": {
|
|
16
|
+
"types": [
|
|
17
|
+
"bearer"
|
|
18
|
+
],
|
|
19
|
+
"headers": {
|
|
20
|
+
"Authorization": "Bearer {{token}}"
|
|
21
|
+
},
|
|
22
|
+
"credential_fields": [
|
|
23
|
+
{
|
|
24
|
+
"name": "token",
|
|
25
|
+
"label": "API Key"
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
"tools": [
|
|
30
|
+
{
|
|
31
|
+
"name": "get_my_channel",
|
|
32
|
+
"description": "Get the authenticated user's YouTube channel info including subscriber count, video count, uploads playlist ID, branding, and description",
|
|
33
|
+
"method": "GET",
|
|
34
|
+
"path": "/channels",
|
|
35
|
+
"input_schema": {
|
|
36
|
+
"type": "object",
|
|
37
|
+
"properties": {
|
|
38
|
+
"part": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"description": "Comma-separated parts to include",
|
|
41
|
+
"default": "snippet,contentDetails,statistics,brandingSettings"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"name": "get_channel",
|
|
48
|
+
"description": "Get detailed info about a YouTube channel by ID. Returns statistics (subscribers, views, videos), branding, description, and content details including uploads playlist ID",
|
|
49
|
+
"method": "GET",
|
|
50
|
+
"path": "/channels",
|
|
51
|
+
"input_schema": {
|
|
52
|
+
"type": "object",
|
|
53
|
+
"properties": {
|
|
54
|
+
"id": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"description": "Channel ID (e.g. UCxxxxxx)"
|
|
57
|
+
},
|
|
58
|
+
"part": {
|
|
59
|
+
"type": "string",
|
|
60
|
+
"description": "Comma-separated parts to include",
|
|
61
|
+
"default": "snippet,contentDetails,statistics,brandingSettings"
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"required": [
|
|
65
|
+
"id"
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"name": "update_channel",
|
|
71
|
+
"description": "Update YouTube channel branding settings (title, description, keywords). Provide the full brandingSettings object.",
|
|
72
|
+
"method": "PUT",
|
|
73
|
+
"path": "/channels",
|
|
74
|
+
"input_schema": {
|
|
75
|
+
"type": "object",
|
|
76
|
+
"properties": {
|
|
77
|
+
"id": {
|
|
78
|
+
"type": "string",
|
|
79
|
+
"description": "Channel ID to update"
|
|
80
|
+
},
|
|
81
|
+
"brandingSettings": {
|
|
82
|
+
"type": "object",
|
|
83
|
+
"description": "Branding settings object with 'channel' sub-object containing title, description, keywords, etc.",
|
|
84
|
+
"properties": {
|
|
85
|
+
"channel": {
|
|
86
|
+
"type": "object",
|
|
87
|
+
"properties": {
|
|
88
|
+
"title": {
|
|
89
|
+
"type": "string"
|
|
90
|
+
},
|
|
91
|
+
"description": {
|
|
92
|
+
"type": "string"
|
|
93
|
+
},
|
|
94
|
+
"keywords": {
|
|
95
|
+
"type": "string"
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"required": [
|
|
103
|
+
"id",
|
|
104
|
+
"brandingSettings"
|
|
105
|
+
]
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"name": "search",
|
|
110
|
+
"description": "Search for videos, channels, or playlists on YouTube. Supports filtering by duration, date range, channel, category, and sort order.",
|
|
111
|
+
"method": "GET",
|
|
112
|
+
"path": "/search",
|
|
113
|
+
"input_schema": {
|
|
114
|
+
"type": "object",
|
|
115
|
+
"properties": {
|
|
116
|
+
"q": {
|
|
117
|
+
"type": "string",
|
|
118
|
+
"description": "Search query keywords"
|
|
119
|
+
},
|
|
120
|
+
"type": {
|
|
121
|
+
"type": "string",
|
|
122
|
+
"description": "Resource type to search for",
|
|
123
|
+
"enum": [
|
|
124
|
+
"video",
|
|
125
|
+
"channel",
|
|
126
|
+
"playlist"
|
|
127
|
+
],
|
|
128
|
+
"default": "video"
|
|
129
|
+
},
|
|
130
|
+
"maxResults": {
|
|
131
|
+
"type": "integer",
|
|
132
|
+
"description": "Max results (1-50)",
|
|
133
|
+
"default": 25
|
|
134
|
+
},
|
|
135
|
+
"order": {
|
|
136
|
+
"type": "string",
|
|
137
|
+
"description": "Sort order",
|
|
138
|
+
"enum": [
|
|
139
|
+
"relevance",
|
|
140
|
+
"date",
|
|
141
|
+
"viewCount",
|
|
142
|
+
"rating",
|
|
143
|
+
"title"
|
|
144
|
+
],
|
|
145
|
+
"default": "relevance"
|
|
146
|
+
},
|
|
147
|
+
"videoDuration": {
|
|
148
|
+
"type": "string",
|
|
149
|
+
"description": "Filter by duration",
|
|
150
|
+
"enum": [
|
|
151
|
+
"short",
|
|
152
|
+
"medium",
|
|
153
|
+
"long"
|
|
154
|
+
]
|
|
155
|
+
},
|
|
156
|
+
"channelId": {
|
|
157
|
+
"type": "string",
|
|
158
|
+
"description": "Limit search to a specific channel"
|
|
159
|
+
},
|
|
160
|
+
"publishedAfter": {
|
|
161
|
+
"type": "string",
|
|
162
|
+
"description": "Filter videos published after this date (ISO 8601, e.g. 2024-01-01T00:00:00Z)"
|
|
163
|
+
},
|
|
164
|
+
"publishedBefore": {
|
|
165
|
+
"type": "string",
|
|
166
|
+
"description": "Filter videos published before this date (ISO 8601)"
|
|
167
|
+
},
|
|
168
|
+
"safeSearch": {
|
|
169
|
+
"type": "string",
|
|
170
|
+
"description": "Safe search filtering",
|
|
171
|
+
"enum": [
|
|
172
|
+
"none",
|
|
173
|
+
"moderate",
|
|
174
|
+
"strict"
|
|
175
|
+
],
|
|
176
|
+
"default": "moderate"
|
|
177
|
+
},
|
|
178
|
+
"pageToken": {
|
|
179
|
+
"type": "string",
|
|
180
|
+
"description": "Page token for pagination"
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
"required": [
|
|
184
|
+
"q"
|
|
185
|
+
]
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"name": "get_trending",
|
|
190
|
+
"description": "Get the most popular/trending videos on YouTube for a specific region",
|
|
191
|
+
"method": "GET",
|
|
192
|
+
"path": "/videos",
|
|
193
|
+
"input_schema": {
|
|
194
|
+
"type": "object",
|
|
195
|
+
"properties": {
|
|
196
|
+
"regionCode": {
|
|
197
|
+
"type": "string",
|
|
198
|
+
"description": "ISO 3166-1 alpha-2 country code (e.g. US, GB, DE, JP)",
|
|
199
|
+
"default": "US"
|
|
200
|
+
},
|
|
201
|
+
"videoCategoryId": {
|
|
202
|
+
"type": "string",
|
|
203
|
+
"description": "Filter by category (e.g. 10=Music, 20=Gaming, 24=Entertainment, 25=News)"
|
|
204
|
+
},
|
|
205
|
+
"maxResults": {
|
|
206
|
+
"type": "integer",
|
|
207
|
+
"description": "Max results (1-50)",
|
|
208
|
+
"default": 25
|
|
209
|
+
},
|
|
210
|
+
"pageToken": {
|
|
211
|
+
"type": "string",
|
|
212
|
+
"description": "Page token for pagination"
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"name": "get_video",
|
|
219
|
+
"description": "Get detailed info about one or more YouTube videos including title, description, statistics (views, likes, comments), duration, publish date, and status",
|
|
220
|
+
"method": "GET",
|
|
221
|
+
"path": "/videos",
|
|
222
|
+
"input_schema": {
|
|
223
|
+
"type": "object",
|
|
224
|
+
"properties": {
|
|
225
|
+
"id": {
|
|
226
|
+
"type": "string",
|
|
227
|
+
"description": "Video ID(s), comma-separated for multiple (max 50)"
|
|
228
|
+
},
|
|
229
|
+
"part": {
|
|
230
|
+
"type": "string",
|
|
231
|
+
"description": "Comma-separated parts to include",
|
|
232
|
+
"default": "snippet,statistics,contentDetails,status"
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
"required": [
|
|
236
|
+
"id"
|
|
237
|
+
]
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
"name": "update_video",
|
|
242
|
+
"description": "Update video metadata (title, description, tags, privacy, category, schedule). IMPORTANT: To schedule a video for future publish, you MUST set privacyStatus to 'private' AND provide publishAt as ISO 8601 datetime. Scheduling does NOT work with 'unlisted' or 'public' status — YouTube requires the video to be 'private' first. You must provide the full snippet and/or status objects.",
|
|
243
|
+
"method": "PUT",
|
|
244
|
+
"path": "/videos",
|
|
245
|
+
"input_schema": {
|
|
246
|
+
"type": "object",
|
|
247
|
+
"properties": {
|
|
248
|
+
"id": {
|
|
249
|
+
"type": "string",
|
|
250
|
+
"description": "Video ID to update"
|
|
251
|
+
},
|
|
252
|
+
"snippet": {
|
|
253
|
+
"type": "object",
|
|
254
|
+
"description": "Video snippet with title, description, tags, categoryId",
|
|
255
|
+
"properties": {
|
|
256
|
+
"title": {
|
|
257
|
+
"type": "string"
|
|
258
|
+
},
|
|
259
|
+
"description": {
|
|
260
|
+
"type": "string"
|
|
261
|
+
},
|
|
262
|
+
"tags": {
|
|
263
|
+
"type": "array",
|
|
264
|
+
"items": {
|
|
265
|
+
"type": "string"
|
|
266
|
+
}
|
|
267
|
+
},
|
|
268
|
+
"categoryId": {
|
|
269
|
+
"type": "string"
|
|
270
|
+
},
|
|
271
|
+
"defaultLanguage": {
|
|
272
|
+
"type": "string"
|
|
273
|
+
},
|
|
274
|
+
"defaultAudioLanguage": {
|
|
275
|
+
"type": "string"
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
},
|
|
279
|
+
"status": {
|
|
280
|
+
"type": "object",
|
|
281
|
+
"description": "Video status with privacyStatus, publishAt, license, embeddable, madeForKids",
|
|
282
|
+
"properties": {
|
|
283
|
+
"privacyStatus": {
|
|
284
|
+
"type": "string",
|
|
285
|
+
"enum": [
|
|
286
|
+
"private",
|
|
287
|
+
"public",
|
|
288
|
+
"unlisted"
|
|
289
|
+
]
|
|
290
|
+
},
|
|
291
|
+
"publishAt": {
|
|
292
|
+
"type": "string",
|
|
293
|
+
"description": "ISO 8601 datetime for scheduled publish. ONLY works when privacyStatus is 'private'. To schedule: set privacyStatus='private' and publishAt to the desired time."
|
|
294
|
+
},
|
|
295
|
+
"license": {
|
|
296
|
+
"type": "string",
|
|
297
|
+
"enum": [
|
|
298
|
+
"youtube",
|
|
299
|
+
"creativeCommon"
|
|
300
|
+
]
|
|
301
|
+
},
|
|
302
|
+
"embeddable": {
|
|
303
|
+
"type": "boolean"
|
|
304
|
+
},
|
|
305
|
+
"publicStatsViewable": {
|
|
306
|
+
"type": "boolean"
|
|
307
|
+
},
|
|
308
|
+
"selfDeclaredMadeForKids": {
|
|
309
|
+
"type": "boolean"
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
},
|
|
314
|
+
"required": [
|
|
315
|
+
"id"
|
|
316
|
+
]
|
|
317
|
+
}
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
"name": "delete_video",
|
|
321
|
+
"description": "Permanently delete a video from YouTube. This cannot be undone.",
|
|
322
|
+
"method": "DELETE",
|
|
323
|
+
"path": "/videos",
|
|
324
|
+
"input_schema": {
|
|
325
|
+
"type": "object",
|
|
326
|
+
"properties": {
|
|
327
|
+
"id": {
|
|
328
|
+
"type": "string",
|
|
329
|
+
"description": "Video ID to delete"
|
|
330
|
+
}
|
|
331
|
+
},
|
|
332
|
+
"required": [
|
|
333
|
+
"id"
|
|
334
|
+
]
|
|
335
|
+
}
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
"name": "rate_video",
|
|
339
|
+
"description": "Like, dislike, or remove rating from a YouTube video",
|
|
340
|
+
"method": "POST",
|
|
341
|
+
"path": "/videos/rate",
|
|
342
|
+
"input_schema": {
|
|
343
|
+
"type": "object",
|
|
344
|
+
"properties": {
|
|
345
|
+
"id": {
|
|
346
|
+
"type": "string",
|
|
347
|
+
"description": "Video ID to rate"
|
|
348
|
+
},
|
|
349
|
+
"rating": {
|
|
350
|
+
"type": "string",
|
|
351
|
+
"description": "Rating to apply",
|
|
352
|
+
"enum": [
|
|
353
|
+
"like",
|
|
354
|
+
"dislike",
|
|
355
|
+
"none"
|
|
356
|
+
]
|
|
357
|
+
}
|
|
358
|
+
},
|
|
359
|
+
"required": [
|
|
360
|
+
"id",
|
|
361
|
+
"rating"
|
|
362
|
+
]
|
|
363
|
+
}
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
"name": "upload_video",
|
|
367
|
+
"description": "Upload a video to YouTube from a URL using resumable upload. Video is downloaded from the URL and uploaded to YouTube.",
|
|
368
|
+
"method": "POST",
|
|
369
|
+
"path": "/upload-video",
|
|
370
|
+
"input_schema": {
|
|
371
|
+
"type": "object",
|
|
372
|
+
"properties": {
|
|
373
|
+
"videoUrl": {
|
|
374
|
+
"type": "string",
|
|
375
|
+
"description": "URL of the video file to upload"
|
|
376
|
+
},
|
|
377
|
+
"title": {
|
|
378
|
+
"type": "string",
|
|
379
|
+
"description": "Video title"
|
|
380
|
+
},
|
|
381
|
+
"description": {
|
|
382
|
+
"type": "string",
|
|
383
|
+
"description": "Video description"
|
|
384
|
+
},
|
|
385
|
+
"tags": {
|
|
386
|
+
"type": "array",
|
|
387
|
+
"items": {
|
|
388
|
+
"type": "string"
|
|
389
|
+
},
|
|
390
|
+
"description": "Video tags"
|
|
391
|
+
},
|
|
392
|
+
"categoryId": {
|
|
393
|
+
"type": "string",
|
|
394
|
+
"description": "Video category ID",
|
|
395
|
+
"default": "22"
|
|
396
|
+
},
|
|
397
|
+
"privacyStatus": {
|
|
398
|
+
"type": "string",
|
|
399
|
+
"enum": [
|
|
400
|
+
"private",
|
|
401
|
+
"public",
|
|
402
|
+
"unlisted"
|
|
403
|
+
],
|
|
404
|
+
"default": "private"
|
|
405
|
+
},
|
|
406
|
+
"madeForKids": {
|
|
407
|
+
"type": "boolean",
|
|
408
|
+
"default": false
|
|
409
|
+
}
|
|
410
|
+
},
|
|
411
|
+
"required": [
|
|
412
|
+
"videoUrl",
|
|
413
|
+
"title"
|
|
414
|
+
]
|
|
415
|
+
}
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
"name": "set_thumbnail",
|
|
419
|
+
"description": "Set a custom thumbnail for a YouTube video from an image URL",
|
|
420
|
+
"method": "GET",
|
|
421
|
+
"path": "/set-thumbnail",
|
|
422
|
+
"input_schema": {
|
|
423
|
+
"type": "object",
|
|
424
|
+
"properties": {
|
|
425
|
+
"videoId": {
|
|
426
|
+
"type": "string",
|
|
427
|
+
"description": "YouTube video ID"
|
|
428
|
+
},
|
|
429
|
+
"thumbnailUrl": {
|
|
430
|
+
"type": "string",
|
|
431
|
+
"description": "URL of thumbnail image to upload"
|
|
432
|
+
}
|
|
433
|
+
},
|
|
434
|
+
"required": [
|
|
435
|
+
"videoId",
|
|
436
|
+
"thumbnailUrl"
|
|
437
|
+
]
|
|
438
|
+
}
|
|
439
|
+
},
|
|
440
|
+
{
|
|
441
|
+
"name": "list_playlists",
|
|
442
|
+
"description": "List playlists for a channel or the authenticated user. Returns playlist titles, descriptions, item counts, and thumbnails.",
|
|
443
|
+
"method": "GET",
|
|
444
|
+
"path": "/playlists",
|
|
445
|
+
"input_schema": {
|
|
446
|
+
"type": "object",
|
|
447
|
+
"properties": {
|
|
448
|
+
"channelId": {
|
|
449
|
+
"type": "string",
|
|
450
|
+
"description": "Channel ID to list playlists for"
|
|
451
|
+
},
|
|
452
|
+
"mine": {
|
|
453
|
+
"type": "boolean",
|
|
454
|
+
"description": "List authenticated user's playlists (use instead of channelId)"
|
|
455
|
+
},
|
|
456
|
+
"maxResults": {
|
|
457
|
+
"type": "integer",
|
|
458
|
+
"description": "Max results (1-50)",
|
|
459
|
+
"default": 25
|
|
460
|
+
},
|
|
461
|
+
"pageToken": {
|
|
462
|
+
"type": "string",
|
|
463
|
+
"description": "Page token for pagination"
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
"name": "get_playlist",
|
|
470
|
+
"description": "Get details of a specific YouTube playlist by ID",
|
|
471
|
+
"method": "GET",
|
|
472
|
+
"path": "/playlists",
|
|
473
|
+
"input_schema": {
|
|
474
|
+
"type": "object",
|
|
475
|
+
"properties": {
|
|
476
|
+
"id": {
|
|
477
|
+
"type": "string",
|
|
478
|
+
"description": "Playlist ID"
|
|
479
|
+
},
|
|
480
|
+
"part": {
|
|
481
|
+
"type": "string",
|
|
482
|
+
"description": "Comma-separated parts",
|
|
483
|
+
"default": "snippet,contentDetails,status"
|
|
484
|
+
}
|
|
485
|
+
},
|
|
486
|
+
"required": [
|
|
487
|
+
"id"
|
|
488
|
+
]
|
|
489
|
+
}
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
"name": "create_playlist",
|
|
493
|
+
"description": "Create a new YouTube playlist",
|
|
494
|
+
"method": "POST",
|
|
495
|
+
"path": "/playlists",
|
|
496
|
+
"input_schema": {
|
|
497
|
+
"type": "object",
|
|
498
|
+
"properties": {
|
|
499
|
+
"snippet": {
|
|
500
|
+
"type": "object",
|
|
501
|
+
"description": "Playlist snippet",
|
|
502
|
+
"properties": {
|
|
503
|
+
"title": {
|
|
504
|
+
"type": "string",
|
|
505
|
+
"description": "Playlist title"
|
|
506
|
+
},
|
|
507
|
+
"description": {
|
|
508
|
+
"type": "string",
|
|
509
|
+
"description": "Playlist description"
|
|
510
|
+
}
|
|
511
|
+
},
|
|
512
|
+
"required": [
|
|
513
|
+
"title"
|
|
514
|
+
]
|
|
515
|
+
},
|
|
516
|
+
"status": {
|
|
517
|
+
"type": "object",
|
|
518
|
+
"description": "Playlist status",
|
|
519
|
+
"properties": {
|
|
520
|
+
"privacyStatus": {
|
|
521
|
+
"type": "string",
|
|
522
|
+
"enum": [
|
|
523
|
+
"private",
|
|
524
|
+
"public",
|
|
525
|
+
"unlisted"
|
|
526
|
+
],
|
|
527
|
+
"default": "private"
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
},
|
|
532
|
+
"required": [
|
|
533
|
+
"snippet"
|
|
534
|
+
]
|
|
535
|
+
}
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
"name": "update_playlist",
|
|
539
|
+
"description": "Update a YouTube playlist's title, description, or privacy status",
|
|
540
|
+
"method": "PUT",
|
|
541
|
+
"path": "/playlists",
|
|
542
|
+
"input_schema": {
|
|
543
|
+
"type": "object",
|
|
544
|
+
"properties": {
|
|
545
|
+
"id": {
|
|
546
|
+
"type": "string",
|
|
547
|
+
"description": "Playlist ID to update"
|
|
548
|
+
},
|
|
549
|
+
"snippet": {
|
|
550
|
+
"type": "object",
|
|
551
|
+
"description": "Updated snippet",
|
|
552
|
+
"properties": {
|
|
553
|
+
"title": {
|
|
554
|
+
"type": "string"
|
|
555
|
+
},
|
|
556
|
+
"description": {
|
|
557
|
+
"type": "string"
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
},
|
|
561
|
+
"status": {
|
|
562
|
+
"type": "object",
|
|
563
|
+
"description": "Updated status",
|
|
564
|
+
"properties": {
|
|
565
|
+
"privacyStatus": {
|
|
566
|
+
"type": "string",
|
|
567
|
+
"enum": [
|
|
568
|
+
"private",
|
|
569
|
+
"public",
|
|
570
|
+
"unlisted"
|
|
571
|
+
]
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
},
|
|
576
|
+
"required": [
|
|
577
|
+
"id"
|
|
578
|
+
]
|
|
579
|
+
}
|
|
580
|
+
},
|
|
581
|
+
{
|
|
582
|
+
"name": "delete_playlist",
|
|
583
|
+
"description": "Permanently delete a YouTube playlist. This cannot be undone.",
|
|
584
|
+
"method": "DELETE",
|
|
585
|
+
"path": "/playlists",
|
|
586
|
+
"input_schema": {
|
|
587
|
+
"type": "object",
|
|
588
|
+
"properties": {
|
|
589
|
+
"id": {
|
|
590
|
+
"type": "string",
|
|
591
|
+
"description": "Playlist ID to delete"
|
|
592
|
+
}
|
|
593
|
+
},
|
|
594
|
+
"required": [
|
|
595
|
+
"id"
|
|
596
|
+
]
|
|
597
|
+
}
|
|
598
|
+
},
|
|
599
|
+
{
|
|
600
|
+
"name": "list_playlist_items",
|
|
601
|
+
"description": "List videos in a playlist. Works with any playlist ID including a channel's uploads playlist (from Get My Channel → contentDetails.relatedPlaylists.uploads). Returns video IDs, titles, thumbnails, and positions.",
|
|
602
|
+
"method": "GET",
|
|
603
|
+
"path": "/playlistItems",
|
|
604
|
+
"input_schema": {
|
|
605
|
+
"type": "object",
|
|
606
|
+
"properties": {
|
|
607
|
+
"playlistId": {
|
|
608
|
+
"type": "string",
|
|
609
|
+
"description": "Playlist ID"
|
|
610
|
+
},
|
|
611
|
+
"maxResults": {
|
|
612
|
+
"type": "integer",
|
|
613
|
+
"description": "Max results (1-50)",
|
|
614
|
+
"default": 25
|
|
615
|
+
},
|
|
616
|
+
"pageToken": {
|
|
617
|
+
"type": "string",
|
|
618
|
+
"description": "Page token for pagination"
|
|
619
|
+
}
|
|
620
|
+
},
|
|
621
|
+
"required": [
|
|
622
|
+
"playlistId"
|
|
623
|
+
]
|
|
624
|
+
}
|
|
625
|
+
},
|
|
626
|
+
{
|
|
627
|
+
"name": "add_to_playlist",
|
|
628
|
+
"description": "Add a video to a YouTube playlist at an optional position",
|
|
629
|
+
"method": "POST",
|
|
630
|
+
"path": "/playlistItems",
|
|
631
|
+
"input_schema": {
|
|
632
|
+
"type": "object",
|
|
633
|
+
"properties": {
|
|
634
|
+
"snippet": {
|
|
635
|
+
"type": "object",
|
|
636
|
+
"description": "Playlist item snippet",
|
|
637
|
+
"properties": {
|
|
638
|
+
"playlistId": {
|
|
639
|
+
"type": "string",
|
|
640
|
+
"description": "Playlist ID"
|
|
641
|
+
},
|
|
642
|
+
"resourceId": {
|
|
643
|
+
"type": "object",
|
|
644
|
+
"description": "Resource to add",
|
|
645
|
+
"properties": {
|
|
646
|
+
"kind": {
|
|
647
|
+
"type": "string",
|
|
648
|
+
"default": "youtube#video"
|
|
649
|
+
},
|
|
650
|
+
"videoId": {
|
|
651
|
+
"type": "string",
|
|
652
|
+
"description": "Video ID to add"
|
|
653
|
+
}
|
|
654
|
+
},
|
|
655
|
+
"required": [
|
|
656
|
+
"videoId"
|
|
657
|
+
]
|
|
658
|
+
},
|
|
659
|
+
"position": {
|
|
660
|
+
"type": "integer",
|
|
661
|
+
"description": "Position in playlist (0-based)"
|
|
662
|
+
}
|
|
663
|
+
},
|
|
664
|
+
"required": [
|
|
665
|
+
"playlistId",
|
|
666
|
+
"resourceId"
|
|
667
|
+
]
|
|
668
|
+
}
|
|
669
|
+
},
|
|
670
|
+
"required": [
|
|
671
|
+
"snippet"
|
|
672
|
+
]
|
|
673
|
+
}
|
|
674
|
+
},
|
|
675
|
+
{
|
|
676
|
+
"name": "remove_from_playlist",
|
|
677
|
+
"description": "Remove an item from a YouTube playlist. Use the playlistItemId (not video ID) from List Playlist Items.",
|
|
678
|
+
"method": "DELETE",
|
|
679
|
+
"path": "/playlistItems",
|
|
680
|
+
"input_schema": {
|
|
681
|
+
"type": "object",
|
|
682
|
+
"properties": {
|
|
683
|
+
"id": {
|
|
684
|
+
"type": "string",
|
|
685
|
+
"description": "Playlist item ID (from list-playlist-items, not the video ID)"
|
|
686
|
+
}
|
|
687
|
+
},
|
|
688
|
+
"required": [
|
|
689
|
+
"id"
|
|
690
|
+
]
|
|
691
|
+
}
|
|
692
|
+
},
|
|
693
|
+
{
|
|
694
|
+
"name": "get_comments",
|
|
695
|
+
"description": "Get comment threads for a YouTube video. Returns top-level comments with reply counts.",
|
|
696
|
+
"method": "GET",
|
|
697
|
+
"path": "/commentThreads",
|
|
698
|
+
"input_schema": {
|
|
699
|
+
"type": "object",
|
|
700
|
+
"properties": {
|
|
701
|
+
"videoId": {
|
|
702
|
+
"type": "string",
|
|
703
|
+
"description": "Video ID to get comments for"
|
|
704
|
+
},
|
|
705
|
+
"maxResults": {
|
|
706
|
+
"type": "integer",
|
|
707
|
+
"description": "Max results (1-100)",
|
|
708
|
+
"default": 20
|
|
709
|
+
},
|
|
710
|
+
"order": {
|
|
711
|
+
"type": "string",
|
|
712
|
+
"description": "Sort order",
|
|
713
|
+
"enum": [
|
|
714
|
+
"relevance",
|
|
715
|
+
"time"
|
|
716
|
+
],
|
|
717
|
+
"default": "relevance"
|
|
718
|
+
},
|
|
719
|
+
"pageToken": {
|
|
720
|
+
"type": "string",
|
|
721
|
+
"description": "Page token for pagination"
|
|
722
|
+
}
|
|
723
|
+
},
|
|
724
|
+
"required": [
|
|
725
|
+
"videoId"
|
|
726
|
+
]
|
|
727
|
+
}
|
|
728
|
+
},
|
|
729
|
+
{
|
|
730
|
+
"name": "post_comment",
|
|
731
|
+
"description": "Post a top-level comment on a YouTube video",
|
|
732
|
+
"method": "POST",
|
|
733
|
+
"path": "/commentThreads",
|
|
734
|
+
"input_schema": {
|
|
735
|
+
"type": "object",
|
|
736
|
+
"properties": {
|
|
737
|
+
"snippet": {
|
|
738
|
+
"type": "object",
|
|
739
|
+
"properties": {
|
|
740
|
+
"videoId": {
|
|
741
|
+
"type": "string",
|
|
742
|
+
"description": "Video ID to comment on"
|
|
743
|
+
},
|
|
744
|
+
"topLevelComment": {
|
|
745
|
+
"type": "object",
|
|
746
|
+
"properties": {
|
|
747
|
+
"snippet": {
|
|
748
|
+
"type": "object",
|
|
749
|
+
"properties": {
|
|
750
|
+
"textOriginal": {
|
|
751
|
+
"type": "string",
|
|
752
|
+
"description": "Comment text"
|
|
753
|
+
}
|
|
754
|
+
},
|
|
755
|
+
"required": [
|
|
756
|
+
"textOriginal"
|
|
757
|
+
]
|
|
758
|
+
}
|
|
759
|
+
},
|
|
760
|
+
"required": [
|
|
761
|
+
"snippet"
|
|
762
|
+
]
|
|
763
|
+
}
|
|
764
|
+
},
|
|
765
|
+
"required": [
|
|
766
|
+
"videoId",
|
|
767
|
+
"topLevelComment"
|
|
768
|
+
]
|
|
769
|
+
}
|
|
770
|
+
},
|
|
771
|
+
"required": [
|
|
772
|
+
"snippet"
|
|
773
|
+
]
|
|
774
|
+
}
|
|
775
|
+
},
|
|
776
|
+
{
|
|
777
|
+
"name": "get_analytics",
|
|
778
|
+
"description": "Get YouTube Analytics data for your channel. Query views, watch time, subscribers, revenue, and more with date ranges and dimensions.\n\nCommon metrics: views, estimatedMinutesWatched, averageViewDuration, likes, comments, shares, subscribersGained, subscribersLost\n\nDimensions: day, month, video, country, ageGroup, gender",
|
|
779
|
+
"method": "GET",
|
|
780
|
+
"path": "/v2/reports",
|
|
781
|
+
"input_schema": {
|
|
782
|
+
"type": "object",
|
|
783
|
+
"properties": {
|
|
784
|
+
"startDate": {
|
|
785
|
+
"type": "string",
|
|
786
|
+
"description": "Start date (YYYY-MM-DD)"
|
|
787
|
+
},
|
|
788
|
+
"endDate": {
|
|
789
|
+
"type": "string",
|
|
790
|
+
"description": "End date (YYYY-MM-DD)"
|
|
791
|
+
},
|
|
792
|
+
"metrics": {
|
|
793
|
+
"type": "string",
|
|
794
|
+
"description": "Comma-separated metrics",
|
|
795
|
+
"default": "views,estimatedMinutesWatched,averageViewDuration,likes,comments,shares"
|
|
796
|
+
},
|
|
797
|
+
"dimensions": {
|
|
798
|
+
"type": "string",
|
|
799
|
+
"description": "Dimension for grouping (e.g. day, video, country)"
|
|
800
|
+
},
|
|
801
|
+
"filters": {
|
|
802
|
+
"type": "string",
|
|
803
|
+
"description": "Filter expression (e.g. video==VIDEO_ID)"
|
|
804
|
+
},
|
|
805
|
+
"sort": {
|
|
806
|
+
"type": "string",
|
|
807
|
+
"description": "Sort order (e.g. -views for descending)"
|
|
808
|
+
},
|
|
809
|
+
"maxResults": {
|
|
810
|
+
"type": "integer",
|
|
811
|
+
"description": "Max results",
|
|
812
|
+
"default": 25
|
|
813
|
+
}
|
|
814
|
+
},
|
|
815
|
+
"required": [
|
|
816
|
+
"startDate",
|
|
817
|
+
"endDate"
|
|
818
|
+
]
|
|
819
|
+
}
|
|
820
|
+
},
|
|
821
|
+
{
|
|
822
|
+
"name": "list_subscriptions",
|
|
823
|
+
"description": "List the authenticated user's YouTube subscriptions or subscriptions to a specific channel",
|
|
824
|
+
"method": "GET",
|
|
825
|
+
"path": "/subscriptions",
|
|
826
|
+
"input_schema": {
|
|
827
|
+
"type": "object",
|
|
828
|
+
"properties": {
|
|
829
|
+
"mine": {
|
|
830
|
+
"type": "boolean",
|
|
831
|
+
"description": "List my subscriptions",
|
|
832
|
+
"default": true
|
|
833
|
+
},
|
|
834
|
+
"channelId": {
|
|
835
|
+
"type": "string",
|
|
836
|
+
"description": "List subscriptions of this channel instead"
|
|
837
|
+
},
|
|
838
|
+
"maxResults": {
|
|
839
|
+
"type": "integer",
|
|
840
|
+
"description": "Max results (1-50)",
|
|
841
|
+
"default": 25
|
|
842
|
+
},
|
|
843
|
+
"order": {
|
|
844
|
+
"type": "string",
|
|
845
|
+
"description": "Sort order",
|
|
846
|
+
"enum": [
|
|
847
|
+
"alphabetical",
|
|
848
|
+
"relevance",
|
|
849
|
+
"unread"
|
|
850
|
+
],
|
|
851
|
+
"default": "relevance"
|
|
852
|
+
},
|
|
853
|
+
"pageToken": {
|
|
854
|
+
"type": "string",
|
|
855
|
+
"description": "Page token for pagination"
|
|
856
|
+
}
|
|
857
|
+
}
|
|
858
|
+
}
|
|
859
|
+
}
|
|
860
|
+
]
|
|
861
|
+
}
|