Arcadium Data Scrapers
Home / Switch / YouTube Scraper

Switching from YouTube Scraper to YouTube Scraper

YouTube Scraper (arcadium/youtube-videos) reads input written for streamers/youtube-scraper: 20 of its 29 input fields work as they are. Field list from its public input schema (build 0.0.322, 2026-10-31); prices and run results from the public Apify API, 2026-10-31.

Their fields that work as they are

Their fieldTypeNote
searchQueriesarrayAs is
maxResultsintegerAs is
maxResultsShortsintegerAs is
maxResultStreamsintegerAs is
startUrlsarrayAs is
sortingOrderstringAs is
dateFilterstringAs is
lengthFilterstringAs is
isHDbooleanAs is
hasSubtitlesbooleanAs is
hasCCbooleanAs is
is3DbooleanAs is
isLivebooleanAs is
is4KbooleanAs is
is360booleanAs is
hasLocationbooleanAs is
isHDRbooleanAs is
isVR180booleanAs is
oldestPostDatestringAs is
sortVideosBystringAs is

Accepted without effect

These fields do not stop the run, but they change nothing here.

Their fieldTypeNote
videoTypestring"video" is accepted (videos are the default); "movie" is not.

Their fields this actor does not read

transcriptionAndSubtitle, subtitlesLanguage, subtitlesFormat, isBought, aiVideoDescription, aiVideoSummary, saveSubsToKVS, preferAutoGeneratedSubtitles. Leave them out of the input; the actor’s own options are in the guide.

Side by side: their input, our rows

Input written for streamers/youtube-scraper, pasted unchanged:

{
  "searchQueries": [
    "web scraping"
  ],
  "maxResults": 20,
  "maxResultsShorts": 5,
  "startUrls": [
    {
      "url": "https://www.youtube.com/@Apify"
    }
  ],
  "oldestPostDate": "2026-01-01",
  "sortVideosBy": "POPULAR"
}

One row from arcadium/youtube-videos (README example; long text shortened):

{
  "rowType": "video",
  "platform": "youtube",
  "videoId": "dQw4w9WgXcQ",
  "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
  "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
  "channelName": "Rick Astley",
  "channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
  "channelHandle": "@RickAstleyYT",
  "channelUrl": "https://www.youtube.com/channel/UCuAXFkgsw1L7xaCfnd5JJOw",
  "publishDate": "2009-10-24T23:57:33-07:00",
  "publishDateIsApprox": false,
  "publishedText": null,
  "durationSeconds": 213,
  "viewCount": 1829080503,
  "likeCount": 19491607,
  "commentCount": null,
  "category": "Music",
  "isShort": false,
  "isLive": false,
  "isLiveContent": false,
  "isUpcoming": false,
  "isUnlisted": false,
  "isFamilySafe": true,
  "keywords": [
    "rick astley",
    "Never Gonna Give You Up"
  ],
  "hashtags": [
    "rickastley"
  ],
  "soundTitle": null,
  "soundArtist": null,
  "description": "The official video for “Never Gonna Give You Up” by Rick Astley. ...",
  "thumbnailUrl": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg",
  "thumbnailMaxUrl": "https://i.ytimg.com/vi_webp/dQw4w9WgXcQ/maxresdefault.webp",
  "captionLanguages": [
    {
      "code": "en",
      "name": "English",
      "isAutoGenerated": false
    },
    {
      "code": "en",
      "name": "English",
      "isAutoGenerated": true
    }
  ],
  "hasCaptions": true,
  "detailLevel": "full",
  "source": null,
  "sourceType": "video",
  "position": null,
  "scrapedAt": "2026-10-22T08:00:00.000Z"
}

Output fields: rowType, platform, videoId, url, title, channelName, channelId, channelHandle, channelUrl, publishDate, publishDateIsApprox, publishedText, durationSeconds, viewCount, likeCount, commentCount, category, isShort, isLive, isLiveContent, isUpcoming, isUnlisted, isFamilySafe, keywords, hashtags, soundTitle, soundArtist, description, thumbnailUrl, thumbnailMaxUrl, captionLanguages, hasCaptions, detailLevel, source, sourceType, position, scrapedAt, input, code, message. The rows use these names, not the other actor’s.

Price

ActorPricing modelCharged perPer 1,000, Free planPer 1,000, lowest plan
arcadium/youtube-videosPay per eventVideo$3.60$2.16
streamers/youtube-scraperPay per eventVideo$4.00$1.00

Live Apify prices on 2026-10-31, in USD, for each actor’s main charged event. Start fees and platform usage are not included. Units differ: compare what one charged row contains. The Store page of each actor is the current source.

Common issues: failed or timed-out runs

ActorRuns, last 30 daysFailedTimed out
arcadium/youtube-videosunder 50 runs (3 runs)--
streamers/youtube-scraper2,926,0790.4%0.3%

Apify’s public run statistics for each actor, last 30 days to 2026-10-31: FAILED and TIMED-OUT runs as a share of all runs. Shown from 50 runs. A failed run can also come from a bad input. Here an input that cannot be read comes back as a free error row with a code, and the other inputs still arrive.

How to switch

In the Apify Store

  1. Open arcadium/youtube-videos and sign in to Apify.
  2. On the Input tab, switch the editor to JSON and paste the input you used for streamers/youtube-scraper, without the fields listed above as not read.
  3. Start the run. Set a maximum cost per run in the run options if you want a hard cap.

Over the API

Change the actor ID in the URL from streamers~youtube-scraper to arcadium~youtube-videos; the body stays the same apart from the fields this actor does not read.

curl -X POST "https://api.apify.com/v2/acts/arcadium~youtube-videos/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"searchQueries":["web scraping"],"maxResults":20,"maxResultsShorts":5,"startUrls":[{"url":"https://www.youtube.com/@Apify"}],"oldestPostDate":"2026-01-01","sortVideosBy":"POPULAR"}'

In n8n

In the Apify node, change the actor to arcadium/youtube-videos and keep the input JSON. With an HTTP Request node:

{
  "nodes": [
    {
      "name": "Run arcadium/youtube-videos",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [
        0,
        0
      ],
      "parameters": {
        "method": "POST",
        "url": "https://api.apify.com/v2/acts/arcadium~youtube-videos/run-sync-get-dataset-items",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "{\"searchQueries\":[\"web scraping\"],\"maxResults\":20,\"maxResultsShorts\":5,\"startUrls\":[{\"url\":\"https://www.youtube.com/@Apify\"}],\"oldestPostDate\":\"2026-01-01\",\"sortVideosBy\":\"POPULAR\"}",
        "options": {
          "timeout": 300000
        }
      }
    }
  ],
  "connections": {}
}

From an AI assistant (MCP)

Add the actor as a tool on Apify’s MCP server; an agent can pass the same input fields.

{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com/?tools=arcadium/youtube-videos",
      "headers": {
        "Authorization": "Bearer <APIFY_TOKEN>"
      }
    }
  }
}

All switching guides