Paste YouTube channel URLs or @handles — get one row per video with titles, video IDs, dates, and descriptions in one dataset. Full public upload history, not just recent items.
Store / README copy: Shorter outcome-first English — URLs and @handles, one row per video (titles, IDs, dates, descriptions), full public upload history called out plainly.
Apify actor version: 1.37
[1.7.0] - 2026-04-28
Removed
YouTube Data API mode — listingMethod, youtubeApiKey, and YOUTUBE_API_KEY are no longer supported. Listing runs exclusively via InnerTube (built-in client). Removed src/lib/officialApiList.js and related code paths.
Changed
youtubeShortDetect.js — kept InnerTube helpers only (removed Data API helpers).
Apify actor version: 1.36
[1.6.7] - 2026-04-28
Fixed
Dataset schema validation: Nullable fields (durationSeconds, viewsCount, description, publishedDisplay, publishedAtUtcPlus2) — Apify rejects null when the schema only allows integer / string. Types updated to ["integer","null"] or ["string","null"] where rows omit values.
Apify actor version: 1.35
[1.6.6] - 2026-04-28
Changed
README: Benefit-led rewrite — audience & outcomes first; Console steps minimal; optional JSON framed as “if you want…”; plain-language limitation & field cheat sheet; developer/local notes last.
Apify actor version: 1.34
[1.6.5] - 2026-04-28
Changed
Store / Console copy: Simplified input_schema and actor.json blurbs — outcome-first (paste links → titles, IDs, dates, descriptions), full-catalog framing aligned with marketplace guidance.
Apify actor version: 1.33
[1.6.4] - 2026-04-28
Changed
Console input: Removed Optional limit / Stop after N videos — exports are unlimited by default (full uploads catalog). Use maxVideos in JSON/API only when you need a global cap (10 recommended for Apify scheduled smoke tests).
Apify actor version: 1.32
[1.6.3] - 2026-04-28
Changed
Console input: Removed What to include / Include video descriptions — descriptions now load by default. Turn off per run via fetchDescriptions: false in JSON/API only.
Apify actor version: 1.31
[1.6.2] - 2026-04-28
Added
durationSeconds — integer seconds per row (null when unparseable): InnerTube uses the same listing duration overlay / lengthSeconds parsing as videoKind; Official API uses videos.listcontentDetails.duration.
Apify actor version: 1.30
[1.6.1] - 2026-04-28
Fixed
videoKind (InnerTube): uploads playlist rows are PlaylistVideo with watch?v= links and horizontal thumbnails (~336×188) even for Shorts — badges/reel URLs were almost never present. Classification now treats duration ≤ 180s (excluding LIVE/upcoming overlays) as short, matching real-world uploads feeds (e.g. @handle URLs).
Apify actor version: 1.29
[1.6.0] - 2026-04-28
Added
videoKind dataset / CSV column: short, long, or unknown. InnerTube uses listing render types (Reel / Shorts layout), SHORTS badges, and reelWatchEndpoint / /shorts/ URLs. Official API adds one videos.list batch per playlist page (snippet thumbnails + contentDetails.duration) — portrait thumbnail + duration ≤ 3 min ⇒ short (API does not expose an official Short flag).
Apify actor version: 1.28
[1.5.0] - 2026-04-28
Removed
Transcripts / captions text:fetchTranscripts, transcriptLanguage, and dataset columns transcript / transcriptLanguage — InnerTube transcript fetching was unreliable (blocked or empty). Output schema and CSV match the remaining fields only.
Apify actor version: 1.27
[1.4.6] - 2026-04-28
Changed
Transcripts (fetchTranscripts):getTranscript() is retried up to 4 times with backoff — YouTube often returns HTTP 400 on the transcript InnerTube endpoint intermittently (upstream discussion ).
Transcript parsing: segment text is collected from any snippet node (not only strict TranscriptSegment typing).
Known limitation
Even with retries, transcripts can stay empty when YouTube blocks the transcript endpoint or the video has no captions. Plain timedtext requests often return empty bodies from datacenter IPs without a full browser cookie flow — retries help only when the InnerTube get_transcript call intermittently succeeds.
Apify actor version: 1.26
[1.4.5] - 2026-04-28
Fixed
Listing stats: InnerTube often sends 8.4K • 1h ago without the word views. We now treat the left segment as viewsDisplay when it looks like a compact count, so viewsCount fills and publishedRelative stays parsable.
publishedAtUtcPlus2: added English short forms (1h ago, 2d ago, 3w ago, including after Streamed) so approximate ISO timestamps work again on compact rows.
Apify actor version: 1.25
[1.4.4] - 2026-04-28
Fixed
Console input: one What to include block — fetchTranscripts no longer sets sectionCaption (Apify closes a section when the next field defines a new caption; duplicating it opened a second identical section).
Apify actor version: 1.24
[1.4.3] - 2026-04-28
Changed
fetchDescriptions default is now false, aligned with fetchTranscripts — lighter Console/API runs unless descriptions are explicitly enabled.
Apify actor version: 1.23
[1.4.2] - 2026-04-28
Changed
Branding / copy: removed the third-party client package name from README, CHANGELOG, and source comments. Runtime import uses the dependency alias innertube-client.
package.json: depend on innertube-client (npm alias to the upstream InnerTube package). The lockfile still resolves the upstream tarball for installs.
Apify actor version: 1.22
[1.4.1] - 2026-04-28
Changed
Console input: removed Listing method and YouTube Data API key — default listing stays built-in (innertube). listingMethod / youtubeApiKey were later available via JSON / API only until removal in 1.7.0.
Apify actor version: 1.21
[1.4.0] - 2026-04-28
Added
Optional transcript and transcriptLanguage (recommended mode): spoken captions via getInfo → getTranscript() on the InnerTube client. Console fetchTranscripts (default off); optional JSON transcriptLanguage (API-only). Official API rows stay null for transcript fields.
Apify actor version: 1.20
[1.3.2] - 2026-04-28
Changed
Store listing (actor.json):title and description aligned with seoTitle / seoDescription — outcomes-first copy; no InnerTube jargon on the storefront.
Apify actor version: 1.19
[1.3.1] - 2026-04-28
Changed
Console input simplified: fewer fields in the form — advanced options (descriptionConcurrency, verboseLogs, writeOutputCsv) remain available via API / JSON (see README).
maxVideos prefill 10 in the platform form (cheap scheduled / smoke runs); empty the field for a full catalog run.
InnerTube description requests run in parallel batches (default concurrency 24 in code).
Local output.csv: semicolon-separated fields; long text normalized to single-line cells for Excel-style tools.
Apify actor version: 1.18
[1.3.0] - 2026-04-29
Added
description column. YouTube Data API: from snippet.description on playlist items (same quota). Listing without API key: optional input fetchDescriptions — calls getBasicInfo per video (short_description); slow on huge channels.
Apify actor version: 1.17
[1.2.3] - 2026-04-29
Added
publishedAtUtcPlus2 — ISO datetime string with fixed offset +02:00 (IANA Etc/GMT-2). Listing: derived from publishedRelative English phrases (minutes/days/weeks/months…) minus Date.now() at row emit time — inherently approximate for vague labels. Data API: exact reformatted wall time from snippet.publishedAt.
Apify actor version: 1.16
[1.2.1] - 2026-04-29
Added
viewsCount — integer (rounded) parsed from viewsDisplay (K/M/B, comma thousands, decimal like 5.1K). null when parsing fails or Data API rows.
Apify actor version: 1.14
[1.2.0] - 2026-04-29
Added
Dataset / CSV: viewsDisplay and publishedRelative — parsed from the listing footer line when present (views/vues • relative time). publishedDisplay remains the full raw line for compatibility. YouTube Data API rows leave the split columns empty (publishedDisplay stays ISO 8601).
Apify actor version: 1.13
[1.1.11] - 2026-04-29
Changed
Console and RUN_LOG copy simplified for operators: no InnerTube wording; shorter banner, progress lines (on page, collected, elapsed), and clearer mode labels (no API key vs YouTube Data API).
Apify actor version: 1.12
[1.1.10] - 2026-04-29
Fixed
InnerTube: list each channel via the uploads playlist (UU… browse) instead of only the Videos tab grid. YouTube often ends channel-tab continuation early (~5k rows) while the uploads playlist paginates to the full catalog (same idea as Official API playlist listing). Fallback to the Videos tab if playlist open fails.
Apify actor version: 1.11
[1.1.9] - 2026-04-29
Fixed
InnerTube upload total for %/ETA: when the channel header has no videos_count (common on Home), the Actor fetches the About tab once and reads metadata.video_count (e.g. 5,952 videos). Falls back to the previous message if About is unavailable.
Apify actor version: 1.10
[1.1.8] - 2026-04-29
Fixed
Progress lines (RUN_LOG content) are also emitted with log.info so apify run shows live pagination / ETA in the terminal, not only in KV.
Apify actor version: 1.9
[1.1.7] - 2026-04-29
Fixed
InnerTube channel listing: some layouts populate RichItem or LockupView while feed.videos stays empty — the Actor now resolves rows via videosForListing (memo fallback). Longer shell walk / retries.
Apify actor version: 1.8
[1.1.6] - 2026-04-28
Changed
Dataset / CSV: removed publishedAt and playlistPosition. Single date column publishedDisplay — InnerTube keeps listing text; Official API stores ISO 8601 from snippet.publishedAt there.
Removed input enrichPublishedAt (redundant).
Apify actor version: 1.7
[1.1.5] - 2026-04-28
Added
RUN_LOG and Apify status: per-page lines (videos on page, channel total) with progress % and ETA when a global maxVideos cap is set; Official API also uses pageInfo.totalResults for playlist progress. Without a cap, logs show throughput (vid/min) and elapsed time — total count is unknown until the run finishes.
Apify actor version: 1.6
[1.1.4] - 2026-04-28
Added
Input enrichPublishedAt (InnerTube): optional getBasicInfo per video to populate publishedAt from watch-page microformat when present — slower than listing alone.
Apify actor version: 1.5
[1.1.3] - 2026-04-28
Fixed
InnerTube listing: handle empty first pages (continuation shells), retrygetVideos with backoff, and drop retrieve_player: false which could contribute to empty grids.
Clear English error when YouTube still returns no rows after retries (suggest Official API mode).
Apify actor version: 1.4
[1.1.2] - 2026-04-28
Added
Optional output.csv when running apify run locally (UTF-8 BOM; writeOutputCsv input, default on). Apify Cloud unchanged (Dataset download only).
Apify actor version: 1.3
[1.1.1] - 2026-04-28
Fixed
Suppress [YOUTUBEJS] parser spam on console.warn from the bundled InnerTube client (rich titles / attachment runs).
Apify actor version: 1.2
[1.1.0] - 2026-04-28
Added
InnerTube listing mode (default) — full uploads pagination without Google API key.