{
  "data": {
    "id": "CvVs0Gux7gi2jJKSK",
    "actId": "0MfeySD0gdL0g8yWT",
    "userId": "tnBVjt3CXmcUrEE3L",
    "startedAt": "2026-11-01T11:16:40.647Z",
    "finishedAt": "2026-11-01T11:16:44.745Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 4012,
      "runTimeSecs": 4.012,
      "computeUnits": 0.0044577777777777775,
      "imageSizeBytes": 319798272
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "F2Aeb3gE2syjqz9xC",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"Vimeo Scraper Input\",\n  \"description\": \"Scrape public Vimeo videos, creators, channels, comments and likers. Choose a mode, then fill the list field that mode uses.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"Mode\",\n      \"type\": \"string\",\n      \"description\": \"What to scrape from Vimeo. Each mode uses the matching list field below.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"byChannel\",\n        \"byUser\",\n        \"videoDetails\",\n        \"staffPicks\",\n        \"search\",\n        \"searchCreators\",\n        \"searchChannels\",\n        \"category\",\n        \"tag\",\n        \"showcase\",\n        \"videoComments\",\n        \"videoLikes\"\n      ],\n      \"enumTitles\": [\n        \"Channel videos\",\n        \"Creator uploads\",\n        \"Video details by URL or ID\",\n        \"Vimeo Staff Picks\",\n        \"Keyword video search\",\n        \"Creator search\",\n        \"Channel search\",\n        \"Browse a category\",\n        \"Browse a tag\",\n        \"Showcase (album) videos\",\n        \"Comments on videos\",\n        \"Likers of videos\"\n      ],\n      \"default\": \"byChannel\",\n      \"prefill\": \"byChannel\"\n    },\n    \"channelSlugs\": {\n      \"title\": \"Channel Slugs or URLs\",\n      \"type\": \"array\",\n      \"description\": \"Channels to scrape in byChannel mode. Paste a slug (staffpicks) or a channel URL. maxItems applies to each channel.\",\n      \"editor\": \"stringList\",\n      \"default\": [\n        \"staffpicks\"\n      ],\n      \"prefill\": [\n        \"staffpicks\"\n      ]\n    },\n    \"usernames\": {\n      \"title\": \"Creator Usernames or IDs\",\n      \"type\": \"array\",\n      \"description\": \"Creators to scrape in byUser mode. Paste a username, numeric user ID, user123 ID, or profile URL.\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"videoUrls\": {\n      \"title\": \"Video URLs or IDs\",\n      \"type\": \"array\",\n      \"description\": \"Videos for videoDetails, videoComments or videoLikes. Any public Vimeo URL form works (video, player, vanity, showcase, unlisted hash) or a numeric ID.\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"searchQueries\": {\n      \"title\": \"Search Queries\",\n      \"type\": \"array\",\n      \"description\": \"Keywords for search, searchCreators and searchChannels. Each query produces up to maxItems results.\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"categorySlugs\": {\n      \"title\": \"Category Slugs\",\n      \"type\": \"array\",\n      \"description\": \"Categories for category mode, e.g. documentary, animation, music, travel, 2d, vfx, food. Unknown slugs are skipped.\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"tagSlugs\": {\n      \"title\": \"Tags\",\n      \"type\": \"array\",\n      \"description\": \"Tags for tag mode. Enter them with or without '#', e.g. nature, timelapse, shortfilm.\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"showcaseUrls\": {\n      \"title\": \"Showcase URLs or IDs\",\n      \"type\": \"array\",\n      \"description\": \"Showcases (albums) for showcase mode. Paste a showcase URL, album URL or numeric showcase ID.\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"maxItems\": {\n      \"title\": \"Max Items\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum records to return per source (channel, creator, query, category, tag, showcase or video). Search and tag results are capped by Vimeo at 10,000.\",\n      \"minimum\": 1,\n      \"maximum\": 10000,\n      \"default\": 20,\n      \"prefill\": 20\n    },\n    \"sort\": {\n      \"title\": \"Sort Order\",\n      \"type\": \"string\",\n      \"description\": \"Result order. Unsupported combinations fall back to Vimeo's default order and appear in the run status.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"default\",\n        \"relevance\",\n        \"newest\",\n        \"oldest\",\n        \"mostViewed\",\n        \"mostLiked\",\n        \"mostCommented\",\n        \"longest\",\n        \"shortest\",\n        \"titleAZ\",\n        \"titleZA\"\n      ],\n      \"enumTitles\": [\n        \"Default (Vimeo order)\",\n        \"Relevance\",\n        \"Newest first\",\n        \"Oldest first\",\n        \"Most viewed\",\n        \"Most liked\",\n        \"Most commented\",\n        \"Longest first\",\n        \"Shortest first\",\n        \"Title A-Z\",\n        \"Title Z-A\"\n      ],\n      \"default\": \"default\",\n      \"prefill\": \"default\"\n    },\n    \"filterCategory\": {\n      \"title\": \"Search: Category\",\n      \"type\": \"string\",\n      \"description\": \"Only used in search mode. Restricts keyword results to one category.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"any\",\n        \"adsandcommercials\",\n        \"animation\",\n        \"brandedcontent\",\n        \"comedy\",\n        \"documentary\",\n        \"experimental\",\n        \"music\",\n        \"narrative\",\n        \"sports\",\n        \"travel\",\n        \"food\",\n        \"fashion\",\n        \"educational\"\n      ],\n      \"enumTitles\": [\n        \"Any category\",\n        \"Ads and Commercials\",\n        \"Animation\",\n        \"Branded Content\",\n        \"Comedy\",\n        \"Documentary\",\n        \"Experimental\",\n        \"Music\",\n        \"Narrative\",\n        \"Sports\",\n        \"Travel\",\n        \"Food\",\n        \"Fashion\",\n        \"Educational\"\n      ],\n      \"default\": \"any\",\n      \"prefill\": \"any\"\n    },\n    \"filterDuration\": {\n      \"title\": \"Search: Duration\",\n      \"type\": \"string\",\n      \"description\": \"Only used in search mode. Short is under 3 minutes, medium is 3-10 minutes, long is over 10 minutes.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"any\",\n        \"short\",\n        \"medium\",\n        \"long\"\n      ],\n      \"enumTitles\": [\n        \"Any duration\",\n        \"Short (under 3 minutes)\",\n        \"Medium (3-10 minutes)\",\n        \"Long (over 10 minutes)\"\n      ],\n      \"default\": \"any\",\n      \"prefill\": \"any\"\n    },\n    \"filterResolution\": {\n      \"title\": \"Search: Resolution\",\n      \"type\": \"string\",\n      \"description\": \"Only used in search mode. Restricts results to 4K and above.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"any\",\n        \"4k\"\n      ],\n      \"enumTitles\": [\n        \"Any resolution\",\n        \"4K and above\"\n      ],\n      \"default\": \"any\",\n      \"prefill\": \"any\"\n    },\n    \"filterPrice\": {\n      \"title\": \"Search: Price\",\n      \"type\": \"string\",\n      \"description\": \"Only used in search mode. Free or paid (Vimeo On Demand) videos.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"any\",\n        \"free\",\n        \"paid\"\n      ],\n      \"enumTitles\": [\n        \"Any price\",\n        \"Free\",\n        \"Paid\"\n      ],\n      \"default\": \"any\",\n      \"prefill\": \"any\"\n    },\n    \"filterLicense\": {\n      \"title\": \"Search: Creative Commons License\",\n      \"type\": \"string\",\n      \"description\": \"Only used in search mode. Restricts results to a Creative Commons license.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"any\",\n        \"cc0\",\n        \"cc-by\",\n        \"cc-by-sa\",\n        \"cc-by-nd\",\n        \"cc-by-nc\",\n        \"cc-by-nc-sa\",\n        \"cc-by-nc-nd\"\n      ],\n      \"enumTitles\": [\n        \"Any license\",\n        \"CC0 (public domain)\",\n        \"CC BY\",\n        \"CC BY-SA\",\n        \"CC BY-ND\",\n        \"CC BY-NC\",\n        \"CC BY-NC-SA\",\n        \"CC BY-NC-ND\"\n      ],\n      \"default\": \"any\",\n      \"prefill\": \"any\"\n    },\n    \"filterUploaded\": {\n      \"title\": \"Search: Upload Date\",\n      \"type\": \"string\",\n      \"description\": \"Only used in search mode. Restricts results to videos uploaded this week, this month or this year.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"any\",\n        \"this-week\",\n        \"this-month\",\n        \"this-year\"\n      ],\n      \"enumTitles\": [\n        \"Any time\",\n        \"Uploaded this week\",\n        \"Uploaded this month\",\n        \"Uploaded this year\"\n      ],\n      \"default\": \"any\",\n      \"prefill\": \"any\"\n    },\n    \"filterStaffPicked\": {\n      \"title\": \"Search: Staff Picks Only\",\n      \"type\": \"boolean\",\n      \"description\": \"Only used in search mode. Return only videos that Vimeo staff picked.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"filterHdr\": {\n      \"title\": \"Search: HDR\",\n      \"type\": \"string\",\n      \"description\": \"Only used in search mode. Restricts results to any HDR format, Dolby Vision or HDR10.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"any\",\n        \"anyHdr\",\n        \"dolbyVision\",\n        \"hdr10\"\n      ],\n      \"enumTitles\": [\n        \"Any\",\n        \"Any HDR\",\n        \"Dolby Vision\",\n        \"HDR10\"\n      ],\n      \"default\": \"any\",\n      \"prefill\": \"any\"\n    },\n    \"filterVimeo360\": {\n      \"title\": \"Search: 360 or Spatial\",\n      \"type\": \"string\",\n      \"description\": \"Only used in search mode. Restricts results to spatial or 360-degree videos.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"any\",\n        \"spatial\",\n        \"360\"\n      ],\n      \"enumTitles\": [\n        \"Any\",\n        \"Spatial video\",\n        \"360-degree video\"\n      ],\n      \"default\": \"any\",\n      \"prefill\": \"any\"\n    },\n    \"filterLive\": {\n      \"title\": \"Search: Live Videos Only\",\n      \"type\": \"boolean\",\n      \"description\": \"Only used in search mode. Return only currently live videos.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"includeCreatorProfile\": {\n      \"title\": \"Include Creator Profile Row\",\n      \"type\": \"boolean\",\n      \"description\": \"In byUser mode, emit one creator record (bio, links, followers, counts) before that creator's videos.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"includeChannelProfile\": {\n      \"title\": \"Include Channel Profile Row\",\n      \"type\": \"boolean\",\n      \"description\": \"In byChannel and staffPicks modes, emit one channel record (description, logo, header, tags, counts) before that channel's videos.\",\n      \"default\": false,\n      \"prefill\": false\n    }\n  },\n  \"required\": [\n    \"mode\"\n  ]\n}",
    "readme": "# Vimeo Channel, Creator & Video Metadata Extractor\n\nScrape **Vimeo** — public videos, creators, channels, comments and likers. Search by keyword with filters and sort orders, browse categories, tags and showcases, pull a channel or creator's uploads, or look up specific videos by any public URL. No account, API key or proxy setup is needed.\n\n## What this actor does\n\n- **Twelve modes:** `byChannel`, `byUser`, `videoDetails`, `staffPicks`, `search`, `searchCreators`, `searchChannels`, `category`, `tag`, `showcase`, `videoComments` and `videoLikes`\n- **Search that narrows:** duration, 4K, price, Creative Commons license, upload date, Staff Picks, HDR, 360/spatial, live status and category, plus relevance, date, views, likes, comments, duration and alphabetical sorts\n- **Rich video metadata:** views, likes, comments, tags, language, license, content rating, playability, download permission and Staff Pick / HDR / live / VOD badges\n- **Creator and channel profiles:** bios, links, locations, avatars, logos, headers, follower/video counts, tags and categories, emitted before their videos when enabled\n- **Conversations:** comments with authors, dates and reply totals; likers with profile links and join dates\n- **Empty fields are omitted** — a video with no tags simply has no `tags` field, and zero counts are kept as real data\n\n## Output per video\n\n- `videoId` — numeric Vimeo video ID\n- `title`, `description` — title and plain-text description\n- `url`, `embedUrl` — canonical video page and player embed URL\n- `thumbnailUrl` — largest available thumbnail\n- `uploaderId`, `uploaderName`, `uploaderUrl`, `uploaderAvatarUrl` — uploader identity\n- `publishedAt` — upload time in ISO 8601\n- `releasedAt`, `updatedAt` — release and last-modified times in ISO 8601\n- `duration` — length in seconds\n- `width`, `height`, `isHD` — resolution and whether it is 720p or higher\n- `viewCount` — public play count (omitted when the owner hides it)\n- `likeCount`, `commentCount` — engagement counts, including genuine zeros\n- `tags[]` — tag names, when the uploader set them\n- `language` — language code, when Vimeo reports one\n- `license` — Creative Commons license code, when set\n- `contentRating` — Vimeo content rating, e.g. `safe`, `unrated`\n- `privacy` — `public` or `unlisted`\n- `isEmbeddable`, `downloadAllowed`, `isPlayable`, `hasAudio`\n- `isStaffPick`, `isHdr`, `isLive`, `isVod` — Vimeo badges\n- `channelName`, `channelTotalVideos`, `channelTotalSubscribers` — channel context\n- `channelId`, `channelSlug`, `channelUrl`, `channelDescription`, `channelCreatedAt`, `channelFollowers`, `channelCreatorName`, `channelCreatorUrl` — fuller channel context\n- `sourceUrl` — the page used to discover the video\n- `recordType: \"video\"`, `scrapedAt`\n\n## Output per creator\n\nEmitted by `searchCreators`, or before a creator's videos with `includeCreatorProfile`.\n\n- `creatorId`, `username`, `displayName`, `url`\n- `bio`, `shortBio`, `location`, `createdAt`, `avatarUrl`\n- `isVerified`, `accountType`\n- `videoCount`, `followerCount`, `followingCount`, `likeCount`, `albumCount`\n- `websites[]` — profile links\n- `sourceUrl`, `recordType: \"creator\"`, `scrapedAt`\n\n## Output per channel\n\nEmitted by `searchChannels`, or before a channel's videos with `includeChannelProfile`.\n\n- `channelId`, `slug`, `name`, `url`\n- `description`, `createdAt`, `updatedAt`\n- `logoUrl`, `headerUrl`\n- `creatorId`, `creatorName`, `creatorUrl`\n- `videoCount`, `followerCount`\n- `tags[]`, `categories[]`, `privacy`\n- `sourceUrl`, `recordType: \"channel\"`, `scrapedAt`\n\n## Output per comment\n\nEmitted by `videoComments`.\n\n- `commentId`, `videoId`, `videoUrl`\n- `text`\n- `authorId`, `authorName`, `authorUrl`, `authorAvatarUrl`\n- `publishedAt`\n- `replyCount` — total replies, including zero\n- `sourceUrl`, `recordType: \"comment\"`, `scrapedAt`\n\n## Output per liker\n\nEmitted by `videoLikes`.\n\n- `videoId`, `videoUrl`\n- `userId`, `userName`, `userUrl`, `userAvatarUrl`\n- `userLocation`, `userCreatedAt`\n- `sourceUrl`, `recordType: \"like\"`, `scrapedAt`\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `byChannel` | `byChannel`, `byUser`, `videoDetails`, `staffPicks`, `search`, `searchCreators`, `searchChannels`, `category`, `tag`, `showcase`, `videoComments`, `videoLikes` |\n| `channelSlugs` | array | `[\"staffpicks\"]` | Channel slugs or URLs (mode=`byChannel`) |\n| `usernames` | array | – | Creator usernames, numeric IDs, `user123` IDs or profile URLs (mode=`byUser`) |\n| `videoUrls` | array | – | Vimeo video URLs or numeric IDs (mode=`videoDetails`, `videoComments`, `videoLikes`) |\n| `searchQueries` | array | – | Keywords (mode=`search`, `searchCreators`, `searchChannels`) |\n| `categorySlugs` | array | – | Category slugs such as `documentary`, `animation`, `music`, `2d`, `vfx`, `food` (mode=`category`) |\n| `tagSlugs` | array | – | Tags with or without `#`, e.g. `nature`, `timelapse` (mode=`tag`) |\n| `showcaseUrls` | array | – | Showcase or album URLs, or numeric showcase IDs (mode=`showcase`) |\n| `maxItems` | integer | `20` | Records per source (1–10,000) |\n| `sort` | string | `default` | `default`, `relevance`, `newest`, `oldest`, `mostViewed`, `mostLiked`, `mostCommented`, `longest`, `shortest`, `titleAZ`, `titleZA` |\n| `filterCategory` | string | `any` | Search only: any search-supported category |\n| `filterDuration` | string | `any` | Search only: `short`, `medium`, `long` |\n| `filterResolution` | string | `any` | Search only: `4k` |\n| `filterPrice` | string | `any` | Search only: `free`, `paid` |\n| `filterLicense` | string | `any` | Search only: `cc0`, `cc-by`, `cc-by-sa`, `cc-by-nd`, `cc-by-nc`, `cc-by-nc-sa`, `cc-by-nc-nd` |\n| `filterUploaded` | string | `any` | Search only: `this-week`, `this-month`, `this-year` |\n| `filterStaffPicked` | boolean | `false` | Search only: Staff Picks only |\n| `filterHdr` | string | `any` | Search only: `anyHdr`, `dolbyVision`, `hdr10` |\n| `filterVimeo360` | string | `any` | Search only: `spatial`, `360` |\n| `filterLive` | boolean | `false` | Search only: currently live videos |\n| `includeCreatorProfile` | boolean | `false` | Emit one creator record before their videos (mode=`byUser`) |\n| `includeChannelProfile` | boolean | `false` | Emit one channel record before its videos (mode=`byChannel`, `staffPicks`) |\n\n### Example: search with filters\n\n```json\n{\n  \"mode\": \"search\",\n  \"searchQueries\": [\"documentary\", \"short film\"],\n  \"filterDuration\": \"short\",\n  \"filterStaffPicked\": true,\n  \"filterUploaded\": \"this-year\",\n  \"sort\": \"mostViewed\",\n  \"maxItems\": 100\n}\n```\n\n### Example: a channel with its profile\n\n```json\n{\n  \"mode\": \"byChannel\",\n  \"channelSlugs\": [\"staffpicks\", \"https://vimeo.com/channels/animation/videos\"],\n  \"includeChannelProfile\": true,\n  \"sort\": \"newest\",\n  \"maxItems\": 50\n}\n```\n\n### Example: creator search and profile rows\n\n```json\n{\n  \"mode\": \"searchCreators\",\n  \"searchQueries\": [\"film\", \"animation studio\"],\n  \"maxItems\": 30\n}\n```\n\n### Example: comments and likers for specific videos\n\n```json\n{\n  \"mode\": \"videoComments\",\n  \"videoUrls\": [\"https://vimeo.com/22439234\", \"https://vimeo.com/showcase/6262886/video/1127880772\"],\n  \"maxItems\": 200\n}\n```\n\n## Use cases\n\n- **Content curation** — monitor Staff Picks, channels and categories for new films worth featuring\n- **Creator research** — compare a creator's upload history, follower counts and engagement\n- **Brand and agency monitoring** — find brand films by keyword, category, license or upload date\n- **Audience analysis** — export commenters and likers for community and influencer research\n- **Metadata archiving** — keep a structured catalog of titles, tags, licenses, dates and badges\n- **Embed sourcing** — collect player URLs and thumbnails for a curated video collection\n\n## FAQ\n\n**Do I need a Vimeo account, API key or proxy?**\nNo. Everything comes from public Vimeo pages and public video data. Fill in the input and run it.\n\n**Can I use any Vimeo URL in `videoUrls`?**\nYes. Plain video URLs, player URLs, channel paths, vanity URLs, showcase links, unlisted hash links and plain numeric IDs all resolve to the same video.\n\n**Why is `viewCount` missing on some videos?**\nSome owners hide their play count. Vimeo does not expose it publicly, so the field is omitted rather than reported as zero. Likes and comments still come through, including genuine zeros.\n\n**Why do some videos have no `tags` or `language`?**\nThose fields are optional on Vimeo. If the uploader did not set tags or Vimeo did not detect a language, the field is omitted. Older videos are more likely to have tags.\n\n**How many results can one run return?**\n`maxItems` supports up to 10,000 records per source. Vimeo itself caps keyword search and tag listings at 10,000 results; split a broad query into narrower filters to cover more.\n\n**Why are some comments missing?**\nVimeo hides comments it classifies as spam or that the owner has filtered. The actor returns the publicly visible comment set.\n\n**What is the difference between `byChannel` and `staffPicks`?**\n`staffPicks` is a shortcut for Vimeo's curated Staff Picks channel. `byChannel` accepts that slug too, plus any other public channel.\n\n**Can I scrape several creators, channels or queries in one run?**\nYes. Add multiple values to the matching list field; `maxItems` applies to each source, and duplicate videos are removed across sources.\n\n**Does `maxItems` apply to creator and channel searches?**\nYes, it caps each query's creator or channel results. Profile rows added by `includeCreatorProfile` or `includeChannelProfile` are extra context records, not part of the video count.\n\n**Is this affiliated with Vimeo?**\nNo. This is an independent, third-party actor that reads publicly available Vimeo data and is not operated by or affiliated with Vimeo.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "vimeo-channel-creator-and-video-metadata-extractor",
      "title": "Vimeo Channel, Creator & Video Metadata Extractor",
      "description": "Scrape public Vimeo videos, creators, channels, comments and likers: keyword search with filters, categories, tags, showcases, Staff Picks, plus views, likes, comments and badges.",
      "version": "1.0",
      "buildTag": "latest",
      "dockerfile": "./Dockerfile",
      "readme": "# Vimeo Channel, Creator & Video Metadata Extractor\n\nScrape **Vimeo** — public videos, creators, channels, comments and likers. Search by keyword with filters and sort orders, browse categories, tags and showcases, pull a channel or creator's uploads, or look up specific videos by any public URL. No account, API key or proxy setup is needed.\n\n## What this actor does\n\n- **Twelve modes:** `byChannel`, `byUser`, `videoDetails`, `staffPicks`, `search`, `searchCreators`, `searchChannels`, `category`, `tag`, `showcase`, `videoComments` and `videoLikes`\n- **Search that narrows:** duration, 4K, price, Creative Commons license, upload date, Staff Picks, HDR, 360/spatial, live status and category, plus relevance, date, views, likes, comments, duration and alphabetical sorts\n- **Rich video metadata:** views, likes, comments, tags, language, license, content rating, playability, download permission and Staff Pick / HDR / live / VOD badges\n- **Creator and channel profiles:** bios, links, locations, avatars, logos, headers, follower/video counts, tags and categories, emitted before their videos when enabled\n- **Conversations:** comments with authors, dates and reply totals; likers with profile links and join dates\n- **Empty fields are omitted** — a video with no tags simply has no `tags` field, and zero counts are kept as real data\n\n## Output per video\n\n- `videoId` — numeric Vimeo video ID\n- `title`, `description` — title and plain-text description\n- `url`, `embedUrl` — canonical video page and player embed URL\n- `thumbnailUrl` — largest available thumbnail\n- `uploaderId`, `uploaderName`, `uploaderUrl`, `uploaderAvatarUrl` — uploader identity\n- `publishedAt` — upload time in ISO 8601\n- `releasedAt`, `updatedAt` — release and last-modified times in ISO 8601\n- `duration` — length in seconds\n- `width`, `height`, `isHD` — resolution and whether it is 720p or higher\n- `viewCount` — public play count (omitted when the owner hides it)\n- `likeCount`, `commentCount` — engagement counts, including genuine zeros\n- `tags[]` — tag names, when the uploader set them\n- `language` — language code, when Vimeo reports one\n- `license` — Creative Commons license code, when set\n- `contentRating` — Vimeo content rating, e.g. `safe`, `unrated`\n- `privacy` — `public` or `unlisted`\n- `isEmbeddable`, `downloadAllowed`, `isPlayable`, `hasAudio`\n- `isStaffPick`, `isHdr`, `isLive`, `isVod` — Vimeo badges\n- `channelName`, `channelTotalVideos`, `channelTotalSubscribers` — channel context\n- `channelId`, `channelSlug`, `channelUrl`, `channelDescription`, `channelCreatedAt`, `channelFollowers`, `channelCreatorName`, `channelCreatorUrl` — fuller channel context\n- `sourceUrl` — the page used to discover the video\n- `recordType: \"video\"`, `scrapedAt`\n\n## Output per creator\n\nEmitted by `searchCreators`, or before a creator's videos with `includeCreatorProfile`.\n\n- `creatorId`, `username`, `displayName`, `url`\n- `bio`, `shortBio`, `location`, `createdAt`, `avatarUrl`\n- `isVerified`, `accountType`\n- `videoCount`, `followerCount`, `followingCount`, `likeCount`, `albumCount`\n- `websites[]` — profile links\n- `sourceUrl`, `recordType: \"creator\"`, `scrapedAt`\n\n## Output per channel\n\nEmitted by `searchChannels`, or before a channel's videos with `includeChannelProfile`.\n\n- `channelId`, `slug`, `name`, `url`\n- `description`, `createdAt`, `updatedAt`\n- `logoUrl`, `headerUrl`\n- `creatorId`, `creatorName`, `creatorUrl`\n- `videoCount`, `followerCount`\n- `tags[]`, `categories[]`, `privacy`\n- `sourceUrl`, `recordType: \"channel\"`, `scrapedAt`\n\n## Output per comment\n\nEmitted by `videoComments`.\n\n- `commentId`, `videoId`, `videoUrl`\n- `text`\n- `authorId`, `authorName`, `authorUrl`, `authorAvatarUrl`\n- `publishedAt`\n- `replyCount` — total replies, including zero\n- `sourceUrl`, `recordType: \"comment\"`, `scrapedAt`\n\n## Output per liker\n\nEmitted by `videoLikes`.\n\n- `videoId`, `videoUrl`\n- `userId`, `userName`, `userUrl`, `userAvatarUrl`\n- `userLocation`, `userCreatedAt`\n- `sourceUrl`, `recordType: \"like\"`, `scrapedAt`\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `byChannel` | `byChannel`, `byUser`, `videoDetails`, `staffPicks`, `search`, `searchCreators`, `searchChannels`, `category`, `tag`, `showcase`, `videoComments`, `videoLikes` |\n| `channelSlugs` | array | `[\"staffpicks\"]` | Channel slugs or URLs (mode=`byChannel`) |\n| `usernames` | array | – | Creator usernames, numeric IDs, `user123` IDs or profile URLs (mode=`byUser`) |\n| `videoUrls` | array | – | Vimeo video URLs or numeric IDs (mode=`videoDetails`, `videoComments`, `videoLikes`) |\n| `searchQueries` | array | – | Keywords (mode=`search`, `searchCreators`, `searchChannels`) |\n| `categorySlugs` | array | – | Category slugs such as `documentary`, `animation`, `music`, `2d`, `vfx`, `food` (mode=`category`) |\n| `tagSlugs` | array | – | Tags with or without `#`, e.g. `nature`, `timelapse` (mode=`tag`) |\n| `showcaseUrls` | array | – | Showcase or album URLs, or numeric showcase IDs (mode=`showcase`) |\n| `maxItems` | integer | `20` | Records per source (1–10,000) |\n| `sort` | string | `default` | `default`, `relevance`, `newest`, `oldest`, `mostViewed`, `mostLiked`, `mostCommented`, `longest`, `shortest`, `titleAZ`, `titleZA` |\n| `filterCategory` | string | `any` | Search only: any search-supported category |\n| `filterDuration` | string | `any` | Search only: `short`, `medium`, `long` |\n| `filterResolution` | string | `any` | Search only: `4k` |\n| `filterPrice` | string | `any` | Search only: `free`, `paid` |\n| `filterLicense` | string | `any` | Search only: `cc0`, `cc-by`, `cc-by-sa`, `cc-by-nd`, `cc-by-nc`, `cc-by-nc-sa`, `cc-by-nc-nd` |\n| `filterUploaded` | string | `any` | Search only: `this-week`, `this-month`, `this-year` |\n| `filterStaffPicked` | boolean | `false` | Search only: Staff Picks only |\n| `filterHdr` | string | `any` | Search only: `anyHdr`, `dolbyVision`, `hdr10` |\n| `filterVimeo360` | string | `any` | Search only: `spatial`, `360` |\n| `filterLive` | boolean | `false` | Search only: currently live videos |\n| `includeCreatorProfile` | boolean | `false` | Emit one creator record before their videos (mode=`byUser`) |\n| `includeChannelProfile` | boolean | `false` | Emit one channel record before its videos (mode=`byChannel`, `staffPicks`) |\n\n### Example: search with filters\n\n```json\n{\n  \"mode\": \"search\",\n  \"searchQueries\": [\"documentary\", \"short film\"],\n  \"filterDuration\": \"short\",\n  \"filterStaffPicked\": true,\n  \"filterUploaded\": \"this-year\",\n  \"sort\": \"mostViewed\",\n  \"maxItems\": 100\n}\n```\n\n### Example: a channel with its profile\n\n```json\n{\n  \"mode\": \"byChannel\",\n  \"channelSlugs\": [\"staffpicks\", \"https://vimeo.com/channels/animation/videos\"],\n  \"includeChannelProfile\": true,\n  \"sort\": \"newest\",\n  \"maxItems\": 50\n}\n```\n\n### Example: creator search and profile rows\n\n```json\n{\n  \"mode\": \"searchCreators\",\n  \"searchQueries\": [\"film\", \"animation studio\"],\n  \"maxItems\": 30\n}\n```\n\n### Example: comments and likers for specific videos\n\n```json\n{\n  \"mode\": \"videoComments\",\n  \"videoUrls\": [\"https://vimeo.com/22439234\", \"https://vimeo.com/showcase/6262886/video/1127880772\"],\n  \"maxItems\": 200\n}\n```\n\n## Use cases\n\n- **Content curation** — monitor Staff Picks, channels and categories for new films worth featuring\n- **Creator research** — compare a creator's upload history, follower counts and engagement\n- **Brand and agency monitoring** — find brand films by keyword, category, license or upload date\n- **Audience analysis** — export commenters and likers for community and influencer research\n- **Metadata archiving** — keep a structured catalog of titles, tags, licenses, dates and badges\n- **Embed sourcing** — collect player URLs and thumbnails for a curated video collection\n\n## FAQ\n\n**Do I need a Vimeo account, API key or proxy?**\nNo. Everything comes from public Vimeo pages and public video data. Fill in the input and run it.\n\n**Can I use any Vimeo URL in `videoUrls`?**\nYes. Plain video URLs, player URLs, channel paths, vanity URLs, showcase links, unlisted hash links and plain numeric IDs all resolve to the same video.\n\n**Why is `viewCount` missing on some videos?**\nSome owners hide their play count. Vimeo does not expose it publicly, so the field is omitted rather than reported as zero. Likes and comments still come through, including genuine zeros.\n\n**Why do some videos have no `tags` or `language`?**\nThose fields are optional on Vimeo. If the uploader did not set tags or Vimeo did not detect a language, the field is omitted. Older videos are more likely to have tags.\n\n**How many results can one run return?**\n`maxItems` supports up to 10,000 records per source. Vimeo itself caps keyword search and tag listings at 10,000 results; split a broad query into narrower filters to cover more.\n\n**Why are some comments missing?**\nVimeo hides comments it classifies as spam or that the owner has filtered. The actor returns the publicly visible comment set.\n\n**What is the difference between `byChannel` and `staffPicks`?**\n`staffPicks` is a shortcut for Vimeo's curated Staff Picks channel. `byChannel` accepts that slug too, plus any other public channel.\n\n**Can I scrape several creators, channels or queries in one run?**\nYes. Add multiple values to the matching list field; `maxItems` applies to each source, and duplicate videos are removed across sources.\n\n**Does `maxItems` apply to creator and channel searches?**\nYes, it caps each query's creator or channel results. Profile rows added by `includeCreatorProfile` or `includeChannelProfile` are extra context records, not part of the video count.\n\n**Is this affiliated with Vimeo?**\nNo. This is an independent, third-party actor that reads publicly available Vimeo data and is not operated by or affiliated with Vimeo.\n",
      "input": {
        "title": "Vimeo Scraper Input",
        "description": "Scrape public Vimeo videos, creators, channels, comments and likers. Choose a mode, then fill the list field that mode uses.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "Mode",
            "type": "string",
            "description": "What to scrape from Vimeo. Each mode uses the matching list field below.",
            "editor": "select",
            "enum": [
              "byChannel",
              "byUser",
              "videoDetails",
              "staffPicks",
              "search",
              "searchCreators",
              "searchChannels",
              "category",
              "tag",
              "showcase",
              "videoComments",
              "videoLikes"
            ],
            "enumTitles": [
              "Channel videos",
              "Creator uploads",
              "Video details by URL or ID",
              "Vimeo Staff Picks",
              "Keyword video search",
              "Creator search",
              "Channel search",
              "Browse a category",
              "Browse a tag",
              "Showcase (album) videos",
              "Comments on videos",
              "Likers of videos"
            ],
            "default": "byChannel",
            "prefill": "byChannel"
          },
          "channelSlugs": {
            "title": "Channel Slugs or URLs",
            "type": "array",
            "description": "Channels to scrape in byChannel mode. Paste a slug (staffpicks) or a channel URL. maxItems applies to each channel.",
            "editor": "stringList",
            "default": [
              "staffpicks"
            ],
            "prefill": [
              "staffpicks"
            ]
          },
          "usernames": {
            "title": "Creator Usernames or IDs",
            "type": "array",
            "description": "Creators to scrape in byUser mode. Paste a username, numeric user ID, user123 ID, or profile URL.",
            "editor": "stringList",
            "default": [],
            "prefill": []
          },
          "videoUrls": {
            "title": "Video URLs or IDs",
            "type": "array",
            "description": "Videos for videoDetails, videoComments or videoLikes. Any public Vimeo URL form works (video, player, vanity, showcase, unlisted hash) or a numeric ID.",
            "editor": "stringList",
            "default": [],
            "prefill": []
          },
          "searchQueries": {
            "title": "Search Queries",
            "type": "array",
            "description": "Keywords for search, searchCreators and searchChannels. Each query produces up to maxItems results.",
            "editor": "stringList",
            "default": [],
            "prefill": []
          },
          "categorySlugs": {
            "title": "Category Slugs",
            "type": "array",
            "description": "Categories for category mode, e.g. documentary, animation, music, travel, 2d, vfx, food. Unknown slugs are skipped.",
            "editor": "stringList",
            "default": [],
            "prefill": []
          },
          "tagSlugs": {
            "title": "Tags",
            "type": "array",
            "description": "Tags for tag mode. Enter them with or without '#', e.g. nature, timelapse, shortfilm.",
            "editor": "stringList",
            "default": [],
            "prefill": []
          },
          "showcaseUrls": {
            "title": "Showcase URLs or IDs",
            "type": "array",
            "description": "Showcases (albums) for showcase mode. Paste a showcase URL, album URL or numeric showcase ID.",
            "editor": "stringList",
            "default": [],
            "prefill": []
          },
          "maxItems": {
            "title": "Max Items",
            "type": "integer",
            "description": "Maximum records to return per source (channel, creator, query, category, tag, showcase or video). Search and tag results are capped by Vimeo at 10,000.",
            "minimum": 1,
            "maximum": 10000,
            "default": 20,
            "prefill": 20
          },
          "sort": {
            "title": "Sort Order",
            "type": "string",
            "description": "Result order. Unsupported combinations fall back to Vimeo's default order and appear in the run status.",
            "editor": "select",
            "enum": [
              "default",
              "relevance",
              "newest",
              "oldest",
              "mostViewed",
              "mostLiked",
              "mostCommented",
              "longest",
              "shortest",
              "titleAZ",
              "titleZA"
            ],
            "enumTitles": [
              "Default (Vimeo order)",
              "Relevance",
              "Newest first",
              "Oldest first",
              "Most viewed",
              "Most liked",
              "Most commented",
              "Longest first",
              "Shortest first",
              "Title A-Z",
              "Title Z-A"
            ],
            "default": "default",
            "prefill": "default"
          },
          "filterCategory": {
            "title": "Search: Category",
            "type": "string",
            "description": "Only used in search mode. Restricts keyword results to one category.",
            "editor": "select",
            "enum": [
              "any",
              "adsandcommercials",
              "animation",
              "brandedcontent",
              "comedy",
              "documentary",
              "experimental",
              "music",
              "narrative",
              "sports",
              "travel",
              "food",
              "fashion",
              "educational"
            ],
            "enumTitles": [
              "Any category",
              "Ads and Commercials",
              "Animation",
              "Branded Content",
              "Comedy",
              "Documentary",
              "Experimental",
              "Music",
              "Narrative",
              "Sports",
              "Travel",
              "Food",
              "Fashion",
              "Educational"
            ],
            "default": "any",
            "prefill": "any"
          },
          "filterDuration": {
            "title": "Search: Duration",
            "type": "string",
            "description": "Only used in search mode. Short is under 3 minutes, medium is 3-10 minutes, long is over 10 minutes.",
            "editor": "select",
            "enum": [
              "any",
              "short",
              "medium",
              "long"
            ],
            "enumTitles": [
              "Any duration",
              "Short (under 3 minutes)",
              "Medium (3-10 minutes)",
              "Long (over 10 minutes)"
            ],
            "default": "any",
            "prefill": "any"
          },
          "filterResolution": {
            "title": "Search: Resolution",
            "type": "string",
            "description": "Only used in search mode. Restricts results to 4K and above.",
            "editor": "select",
            "enum": [
              "any",
              "4k"
            ],
            "enumTitles": [
              "Any resolution",
              "4K and above"
            ],
            "default": "any",
            "prefill": "any"
          },
          "filterPrice": {
            "title": "Search: Price",
            "type": "string",
            "description": "Only used in search mode. Free or paid (Vimeo On Demand) videos.",
            "editor": "select",
            "enum": [
              "any",
              "free",
              "paid"
            ],
            "enumTitles": [
              "Any price",
              "Free",
              "Paid"
            ],
            "default": "any",
            "prefill": "any"
          },
          "filterLicense": {
            "title": "Search: Creative Commons License",
            "type": "string",
            "description": "Only used in search mode. Restricts results to a Creative Commons license.",
            "editor": "select",
            "enum": [
              "any",
              "cc0",
              "cc-by",
              "cc-by-sa",
              "cc-by-nd",
              "cc-by-nc",
              "cc-by-nc-sa",
              "cc-by-nc-nd"
            ],
            "enumTitles": [
              "Any license",
              "CC0 (public domain)",
              "CC BY",
              "CC BY-SA",
              "CC BY-ND",
              "CC BY-NC",
              "CC BY-NC-SA",
              "CC BY-NC-ND"
            ],
            "default": "any",
            "prefill": "any"
          },
          "filterUploaded": {
            "title": "Search: Upload Date",
            "type": "string",
            "description": "Only used in search mode. Restricts results to videos uploaded this week, this month or this year.",
            "editor": "select",
            "enum": [
              "any",
              "this-week",
              "this-month",
              "this-year"
            ],
            "enumTitles": [
              "Any time",
              "Uploaded this week",
              "Uploaded this month",
              "Uploaded this year"
            ],
            "default": "any",
            "prefill": "any"
          },
          "filterStaffPicked": {
            "title": "Search: Staff Picks Only",
            "type": "boolean",
            "description": "Only used in search mode. Return only videos that Vimeo staff picked.",
            "default": false,
            "prefill": false
          },
          "filterHdr": {
            "title": "Search: HDR",
            "type": "string",
            "description": "Only used in search mode. Restricts results to any HDR format, Dolby Vision or HDR10.",
            "editor": "select",
            "enum": [
              "any",
              "anyHdr",
              "dolbyVision",
              "hdr10"
            ],
            "enumTitles": [
              "Any",
              "Any HDR",
              "Dolby Vision",
              "HDR10"
            ],
            "default": "any",
            "prefill": "any"
          },
          "filterVimeo360": {
            "title": "Search: 360 or Spatial",
            "type": "string",
            "description": "Only used in search mode. Restricts results to spatial or 360-degree videos.",
            "editor": "select",
            "enum": [
              "any",
              "spatial",
              "360"
            ],
            "enumTitles": [
              "Any",
              "Spatial video",
              "360-degree video"
            ],
            "default": "any",
            "prefill": "any"
          },
          "filterLive": {
            "title": "Search: Live Videos Only",
            "type": "boolean",
            "description": "Only used in search mode. Return only currently live videos.",
            "default": false,
            "prefill": false
          },
          "includeCreatorProfile": {
            "title": "Include Creator Profile Row",
            "type": "boolean",
            "description": "In byUser mode, emit one creator record (bio, links, followers, counts) before that creator's videos.",
            "default": false,
            "prefill": false
          },
          "includeChannelProfile": {
            "title": "Include Channel Profile Row",
            "type": "boolean",
            "description": "In byChannel and staffPicks modes, emit one channel record (description, logo, header, tags, counts) before that channel's videos.",
            "default": false,
            "prefill": false
          }
        },
        "required": [
          "mode"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "Vimeo Channel, Creator & Video Metadata Extractor Output",
        "description": "Public Vimeo records: videos, creators, channels, comments and likers. Every record has a recordType field so mixed runs can be filtered.",
        "properties": {
          "records": {
            "type": "string",
            "title": "Records",
            "description": "Dataset containing video, creator, channel, comment and like records.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "defaultMemoryMbytes": 1024,
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "Records",
              "transformation": {
                "fields": [
                  "recordType",
                  "title",
                  "name",
                  "displayName",
                  "uploaderName",
                  "publishedAt",
                  "duration",
                  "viewCount",
                  "likeCount",
                  "commentCount",
                  "url"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            },
            "creators": {
              "title": "Creators",
              "transformation": {
                "fields": [
                  "creatorId",
                  "username",
                  "displayName",
                  "videoCount",
                  "followerCount",
                  "location",
                  "url"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            },
            "channels": {
              "title": "Channels",
              "transformation": {
                "fields": [
                  "channelId",
                  "slug",
                  "name",
                  "videoCount",
                  "followerCount",
                  "creatorName",
                  "url"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            },
            "comments": {
              "title": "Comments",
              "transformation": {
                "fields": [
                  "commentId",
                  "videoId",
                  "authorName",
                  "text",
                  "publishedAt",
                  "replyCount"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            },
            "likes": {
              "title": "Likers",
              "transformation": {
                "fields": [
                  "videoId",
                  "userId",
                  "userName",
                  "userLocation",
                  "userCreatedAt"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            }
          }
        }
      },
      "environmentVariables": {}
    },
    "buildNumber": "1.0.2",
    "imageDigest": "d9e5674f2a4ed536443f31d0b10a9f39bdc0f37a8345e4ab4e3daa31dfe891ba",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.0044577777777777775
    }
  }
}