Skip to main content
Glama
764,286 tools. Updated 2026-11-10 18:04

"YouTube Shorts" matching MCP tools:

  • Takes a public post URL (TikTok video/photo, Instagram post/reel, YouTube video/short) and resolves it to the tracked post: the entry point when your input is a link. found:true returns the postId for get_post, request_transcript, download_post_media and remix_post. found:false tells you whether the whole profile is untracked (call crawl_profile) or just this post. Note that remix_post accepts an untracked URL directly and ingests it itself, so for a remix you can skip this lookup. TikTok/Instagram short links (vm.tiktok.com, /share/) must be expanded to the canonical URL first. Cost: 1 credit per call.
    ConnectorNo auth
  • Upload a video FILE (MP4 in the ADSAP creative library) to YouTube for use in Google Ads video slots, and get back a YouTube video asset. Use this when the user has a video file but NO YouTube channel — the video goes to a Google-managed 'ad storage' YouTube channel owned by the ad account, stays UNLISTED, and never appears on any public channel. If the user already has the video on YouTube, skip this tool and pass the YouTube id/asset directly to the campaign tool instead. TWO STEPS, always: (1) action 'upload' with the storage_path of the file — returns upload_resource_name immediately; (2) action 'status' with that upload_resource_name — YouTube processing usually takes a few MINUTES, so poll every ~30s; while it is still processing you get state UPLOADED and still_processing: true, and once it reaches PROCESSED the tool mints the video asset automatically and returns asset_id + video_id. Feed the result into a video slot: adsap_google_create_demand_gen_campaign uses the VIDEO ID (ad.youtube_video_ids), while adsap_google_create_display_campaign (youtube_video_asset_ids) and adsap_google_create_app_campaign (video_asset_ids) use the ASSET ID. The video title CANNOT be changed after upload (Google marks it immutable) — set it correctly on the upload call. Max 256 MB. ad_account_id is the bare 10-digit customer ID. For Meta video uploads use adsap_upload_creative instead.
    ConnectorAPI key
  • Create a complete Google Ads Demand Gen campaign (YouTube, Discover, Gmail, Maps and the Google Display Network) in ONE atomic request: budget, campaign (ALWAYS created PAUSED — activate later with adsap_google_set_entity_status), a typeless ad group with channel controls, ad-group-level location/language targeting, and ONE ad. Use dry_run: true first — Google validates the whole chain without creating anything; show the plan, get confirmation, then execute. Two ad types (ad.ad_type): 'multi_asset' = image ad (1-5 headlines <=30 chars, 1-5 descriptions <=90, business name <=25, 1-5 logos, at least one landscape 1.91:1 or square 1:1 image from adsap_google_upload_asset, optional portrait 4:5 and tall-portrait 9:16, combined images <=20); 'video_responsive' = YouTube video ad (1-5 YouTube video ids, 1-5 headlines <=40, 1-5 long headlines <=90 REQUIRED, 1-5 descriptions <=90, 1-5 logos). Daily budget minimum is 5 (Google enforces a 5 USD local-currency-equivalent floor for Demand Gen). Channels: default ALL_CHANNELS; or channels.selected booleans (youtube_in_stream/youtube_in_feed/youtube_shorts/discover/gmail/display/maps — display: true is how you reach the Google Display Network). bidding_strategy 'auto' picks maximize_conversions when the account has conversion tracking, else maximize clicks; target_roas needs conversion history (Google rejects otherwise). ad_account_id is the bare 10-digit customer ID. For Search use adsap_google_create_search_campaign, for Performance Max adsap_google_create_pmax_campaign; for Meta use adsap_create_campaign.
    ConnectorAPI key
  • Create a complete Google App campaign in ONE atomic request: budget, campaign (ALWAYS created PAUSED — activate later with adsap_google_set_entity_status), location + language targeting, an ad group, and the app ad. App campaigns promote a mobile app across Google Search, Google Play, YouTube, Discover and the Display Network — Google mixes the ad from your text (and optional media) automatically. The ad links to the app's store listing AUTOMATICALLY: there is no URL input, ever. Any PUBLIC store app id works (no app ownership or Play/Firebase link is required to create): Android app_id is the package name (e.g. com.example.app), iOS app_id is the numeric App Store id (e.g. 570060128) with app_store 'apple_app_store'. v1 optimizes INSTALLS at your target_cpi (target cost per install, plain number in the account currency); Google recommends a daily_budget of roughly 50x target_cpi — lower is allowed but slows learning (a warning says so). Text: 2-5 headlines (max 30 chars) + 1-5 descriptions (max 90). Optional media: image_asset_ids / video_asset_ids from adsap_google_upload_asset (images 1.91:1, 4:5 or 1:1 up to 5MB; videos are YouTube assets 10-60s) — text-only is fully valid. In-app-action, value, engagement and pre-registration goals are NOT supported in v1. If the account has no conversion tracking a warning is returned — relay it (Android installs normally auto-track once a Google Play link exists). Use dry_run: true first — Google validates the whole chain without creating anything; show the plan, get confirmation, then execute. ad_account_id is the bare 10-digit customer ID. For website campaigns use adsap_google_create_search_campaign / adsap_google_create_pmax_campaign; for Meta app ads use adsap_create_campaign with an app objective.
    ConnectorAPI key
  • Use this when the user wants to see their finished clips or saved photos, or needs a clip_id: "show me my clips", "what shorts did you make", "find my latest highlight", "my photos". Returns up to 50 per page (limit 1-50; pass next_cursor as cursor for the next page) with each item's id, title, kind, source project and start/end seconds in the original video. kind: clips (default), photos, or all. Items past their retention date are not listed. A clip id works with get_download_link, edit_clip, style_clip, explain_clips, preview_frame and draft_post; a photo id with adjust_look, frame_clip, preview_frame and get_download_link. Not for: the long source videos (list_projects), a gallery with video players (show_clips), or why a clip was picked (explain_clips). Free and read only.
    ConnectorNo auth
  • Get transcripts for a YouTube channel's most recent videos (newest first) as timestamped markdown, one section per video. Use for research across a creator's recent output; for one known video use get_transcript. Read-only; requires an API key. Charges 1 credit per video that returns a transcript, including repeat calls; videos without captions are skipped free. A 10-video call typically costs up to 10 credits, so start with a small limit. Rate limit: 5 requests per 10 seconds.
    ConnectorNo auth

Matching MCP Servers

Matching MCP Connectors

  • YouTube Shorts from a channel with views, likes and hashtags. Paid, on Apify's hosted MCP.

  • Upload and schedule YouTube Shorts from your AI assistant.

  • Get transcripts for the videos in a YouTube playlist (in playlist order) as timestamped markdown, one section per video. Use for working through a course, series, or curated list; for one known video use get_transcript. Read-only; requires an API key. Charges 1 credit per video that returns a transcript, including repeat calls; videos without captions are skipped free. A 10-video call typically costs up to 10 credits, so start with a small limit. Rate limit: 5 requests per 10 seconds.
    ConnectorNo auth
  • Get transcripts for a YouTube channel's most recent videos (newest first) as timestamped markdown, one section per video. Use for research across a creator's recent output; for one known video use get_transcript. Read-only; requires an API key. Charges 1 credit per video that returns a transcript, including repeat calls; videos without captions are skipped free. A 10-video call typically costs up to 10 credits, so start with a small limit. Rate limit: 5 requests per 10 seconds.
    ConnectorNo auth
  • Get transcripts for the videos in a YouTube playlist (in playlist order) as timestamped markdown, one section per video. Use for working through a course, series, or curated list; for one known video use get_transcript. Read-only; requires an API key. Charges 1 credit per video that returns a transcript, including repeat calls; videos without captions are skipped free. A 10-video call typically costs up to 10 credits, so start with a small limit. Rate limit: 5 requests per 10 seconds.
    ConnectorNo auth
  • Search a single network for posts matching a query, returned as the unified Post[] schema and tagged with its platform. Keyless on TikTok, YouTube, and Pinterest. Instagram, Twitter/X, Reddit, and Facebook need operator-side credentials (returns credentials_required until set). Snapchat and Threads do not support keyless search (returns not_supported); LinkedIn is quarantined. To fan one query across every network at once, use search_all.
    ConnectorNo auth
  • Get the transcript (subtitles) of a YouTube video. Accepts a video id or any YouTube URL. Set video_metadata=true to get the title, channel and duration in the SAME call — do not call get_video_info first, that is a second billed call for data this one already returns. format=text returns plain readable text (default, cheapest to read); format=json returns timed segments with start/duration in seconds; srt/vtt return ready subtitle file bodies and srv3 the raw YouTube XML. Prefer text unless you need timestamps or a file. Costs 1 credit.
    ConnectorNo auth
  • Fetch clean, source-grounded text for a public article or YouTube URL, budgeted to a token limit and addressable by paragraph anchor. Returns an outline of headings (empty when the source has none), the requested window, and a next_cursor when more remains. Prefer search_article when you have a specific question rather than needing the whole text.
    ConnectorNo auth
  • Resize the ACTIVE page's canvas to width × height pixels. The composition is scaled UNIFORMLY to fit the new frame (a single factor s = min(newW/oldW, newH/oldH), so nothing distorts — a circle stays a circle) and then re-centred so the old composition centre maps to the new canvas centre. Every layer's position, size, group pivots, and x/y/width/height keyframes follow this fit+recentre; same-aspect resizes scale exactly, aspect changes letterbox the content centred. Each page owns its size, so this leaves sibling pages untouched — select_page then set_canvas_size again to resize another one. Common sizes: 1080×1920 (9:16 Reels/TikTok/Shorts), 1080×1350 (4:5 Instagram), 1080×1080 (1:1 square), 1920×1080 (16:9 YouTube).
    Connector
    Destructive
    No auth
  • Get Google Ads performance insights for an account, at campaign, ad-group, or keyword level (cache-first with auto-refresh from Google). Returns an account summary with previous-period comparison, a sortable per-entity table, and an optional daily timeseries. Metrics on both the summary and every row: cost, impressions, clicks, conversions, conversions_value + derived roas/ctr/cpc/cpm/cost_per_conversion/cvr; all_conversions, all_conversions_value, cost_per_all_conversion, view_through_conversions, cross_device_conversions (all_* counts EVERY conversion action, `conversions` counts only the ones included in bidding); engagements, engagement_rate, interactions, interaction_rate; video_views (TrueView/YouTube), video_view_rate, avg_cpv, video_p25/p50/p75/p100_rate; youtube_comments, youtube_likes, youtube_shares (v25 social engagement on Shorts ads on YouTube — 0 outside YouTube/Shorts delivery); and the competitive set search_impression_share, search_lost_is_budget, search_lost_is_rank, top_impression_pct, abs_top_impression_pct. The competitive metrics are Search-network only and read 0 for Display/PMax/Video delivery. search_lost_is_budget is CAMPAIGN LEVEL ONLY (the Google API does not report it for ad groups or keywords) so the key is ABSENT at the other levels rather than 0; at campaign level impression share plus the two lost shares add up to 100%. quality_score (1-10, null when Google reports none) appears only at keyword level. When Google capped most days in range, meta.share_metrics_note is set and rows carry search_share_is_approximate: report those three share figures as estimates. ad_account_id is the bare 10-digit customer ID from adsap_google_list_ad_accounts. Keyword-level row ids are "<ad_group_id>:<criterion_id>" — pass them as-is to adsap_google_set_entity_status / adsap_google_update_entity (entity_type keyword). Only entities with impressions in range appear (PMax has no ad groups/keywords by design). Note: Google reports plain Clicks/CTR/CPC (no Meta-style link-click split). For Meta insights use adsap_get_insights.
    ConnectorAPI key
  • Fetch a YouTube video's transcript with language, translation, JSON/text/SRT/VTT format, and timestamp options; no captions return 404 and a temporary block or rate limit returns 503. Use youtube_transcript_languages to discover available languages first.
    ConnectorNo auth
  • Publish to Instagram, Facebook, TikTok, YouTube, X, Bluesky or LinkedIn (a personal profile or an organization Page). This posts publicly unless the platform's privacy setting says otherwise, so confirm the content with the user first. `post` is exactly the JSON body of POST /api/v1/posts: Instagram takes image, legacy image-only images, reel, story, or mixed image/video carousel. Instagram video can be base64 MP4 or {"url": "https://..."}; prefer staged upload references for media. Image altText and coordinate userTags, video username-only userTags, Reel shareToFeed, collaborators, and isAiGenerated are supported where Instagram allows them; hashtags go in caption. A fully staged Instagram request returns a durable job; poll get_instagram_post_status. Legacy URL/base64 requests remain synchronous. Stories expire after 24 hours and may have no permalink. Facebook takes image, images, reel or video (base64); TikTok takes video (prefer {"url": "https://..."} over base64) or photos, with music_usage_confirmed: true. Call get_tiktok_creator_info before a TikTok post. TikTok videos publish publicly (privacy_level PUBLIC_TO_EVERYONE or omitted); any other video privacy_level is refused. Photos take any level from get_tiktok_creator_info. post_mode MEDIA_UPLOAD sends a draft to the creator's TikTok inbox instead of publishing. YouTube takes video (prefer {"url": "https://..."}), title, privacy_status (public, unlisted or private) and made_for_kids, all required; ask the user for privacy_status and made_for_kids rather than choosing them. publish_at schedules a private video to go public. Until Adeli passes YouTube's API audit, YouTube keeps every upload private: the result says so with privacyRestricted. X takes text (280 characters, a link counts as 23) and media: up to 4 images, or 1 GIF, or 1 video, as base64 or a video {"url"}; thread is a list of further posts, each a reply to the one before. Every X post is billed at X's price ($0.015, or $0.20 with a link), and a thread that fails part-way returns 207 with the posts that went live. Bluesky takes text (300 characters; links, @mentions and #hashtags become links), and either up to 4 images as base64 with altText each (over 2 MB are resized) or one MP4 video (base64 or {"url"}, up to 100 MB), plus optional langs, and thread like X. Bluesky posting is free. LinkedIn takes commentary and at most one of: image (one JPEG, PNG or GIF as {upload_id, title?} or {content_type, base64, title?}), images (2 to 20 staged images as {upload_id, alt_text?}), video (one staged MP4, 3 seconds to 30 minutes, as {upload_id, title?}), or document (one staged PDF shown as swipeable slides, as {upload_id, title}). Stage files with create_media_uploads and platform linkedin first. mentions lists {urn, name, offset} entries, where name appears in commentary at offset and urn is urn:li:organization:<id> or urn:li:person:<id>. It publishes publicly as the connected personal profile or organization Page; LinkedIn can take a minute to show a new post. Adeli does not automatically retry ambiguous writes. Instagram staged media, TikTok, Facebook video, and YouTube publish asynchronously: poll the platform's status tool with the returned jobId or publishId. Multipart uploads are REST-only. To post the same content to several accounts at once, use create_publication instead.
    ConnectorAPI key
  • Fetch a YouTube video's transcript with language, translation, JSON/text/SRT/VTT format, and timestamp options; no captions return 404 and a temporary block or rate limit returns 503. Use youtube_transcript_languages to discover available languages first.
    ConnectorNo auth
  • Use this when the user asks which of a creator's, competitor's or their own posts performed best or beat the account's normal, or what works for an account before writing. Scores the latest 20, 30, 50 or 100 posts against that account's own median and says by how much each beat it. About 3-4 credits for 30 posts on Instagram or TikTok, none on YouTube, more on Facebook. Longer runs return a `job_id` for xcut_get_job. Do not use for a full metrics table (use xcut_profile_analytics) or for a topic across many accounts (use xcut_search_viral).
    ConnectorNo auth
  • Checks whether a name/handle is available on 70+ platforms at once: domain names (.com, .fr, .io, .app…), social networks (Instagram, TikTok, X, YouTube…), creative and dev platforms (GitHub, Behance…), e-commerce, freelance, gaming and company registries. Takes 5-15 s on first call (results cached 10 min). Statuses: available, likely_available, taken, manual (cannot be checked automatically), unknown (check failed). Never present manual/unknown results as available. Available domains come with a registration link. Each call is a full live search: to compare many name ideas, first use check_domains (up to 10 names per call), then check_name only on the shortlist.
    ConnectorNo auth
  • Import one public YouTube, Facebook or TikTok video (up to 10 minutes and 250 MB) into the Library. Returns an asynchronous import: poll get_video_import until ready, then use its upload_id. Import costs no credits and uses storage quota. analyze_after_import runs the app analyst for 5 credits; leave false to analyze with your own model using measure_video and save_video_analysis. Private videos, playlists and live streams are unsupported.
    ConnectorAPI key
  • Start transcribing a podcast episode, a YouTube or TikTok video, or a direct audio file. Pass a direct audio URL (.mp3/.m4a/.wav) OR a platform link. YouTube, TikTok, Spotify or Apple Podcasts, and it will be resolved for you; use lookup_podcast first only when you need to choose an episode from a show. Usually returns immediately with a transcription id and status "processing", and does NOT wait for the result: poll get_transcript until status is "completed". A YouTube video is the exception, it is read from the video's existing caption track, so it comes back already "completed" and there is nothing to poll. Everything except YouTube spends the account's credits.
    ConnectorAPI key