Twitter (X) Space Scraper avatar

Twitter (X) Space Scraper

Pricing

from $0.49 / 1,000 results

Go to Apify Store
Twitter (X) Space Scraper

Twitter (X) Space Scraper

Collect public X Spaces without login. Get the Space title, state, schedule, live and replay listener counts, host and participants, replay audio with a downloadable file, and an optional captions/AI transcript.

Pricing

from $0.49 / 1,000 results

Rating

0.0

(0)

Developer

Dataspryva

Dataspryva

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

5 days ago

Last modified

Features

Limited permissions

Share

X Space Collector — Metadata, Hosts, Replay & Transcripts

Collect public X (Twitter) Spaces without an account, cookies or API keys. Start from Space links, IDs or announcement posts — or let the actor discover Spaces from a keyword, hashtag or host handle. Every run returns clean, omit-empty records for the Space, its people, its replay audio and, when requested, a timed transcript.

Three ways to find Spaces

ModeInputWhat happens
Exact SpacesspaceUrlsReads a Space link, a bare Space ID, or the post that announces a Space. The Space card is resolved automatically.
Keyword / hashtagsearchQueriesReads recent public posts matching the query and resolves the Spaces they announce.
HosthostUsernamesReads a host's recent public posts (and their search results) and resolves the Spaces they announce.

All three modes can run in one go. Discovered Spaces are capped by maxSpaces; pasted links and IDs are always collected. When several inputs resolve to the same Space (for example its link and its announcement post), it is collected once. spaceState can keep only live, scheduled, ended or any Spaces.

What you get

Each run writes rows with a type:

typeMeaning
spaceOne Space with metadata, counts, host and participants
space participantOne row per host, speaker or listener
video transcriptThe transcript summary with timed segments
space transcript segmentOne row per timed segment (optional)
statusAn honest problem row (invalid link, deleted Space, rate limit, unavailable replay)

Space row

  • Identity: id, url, title, state, contentType
  • Times: createdAt, scheduledStart, startedAt, endedAt, durationSeconds, updatedAt, replayStartSeconds
  • Audience: listenersLive, listenersReplay, replayAvailable
  • People: creator (full public profile), hostId, hostUsername, hostName, participants[], participantCounts
  • Space settings: topics, topicIds, mentionedUserIds, isMuted, isLocked, isEmployeeOnly, disallowJoin, noIncognito, conversationControls, maxAdminCapacity, maxGuestSessions, narrowCastSpaceType
  • Replay: replayAudioUrl, replayAudioFileUrl, replayAudioFileBytes, replayAudioContentType, replayAudioDurationSeconds
  • Source: sourceTweetId, sourceTweetUrl when you started from an announcement post
  • mediaKey, collectedAt

Participant row

spaceId, spaceUrl, spaceTitle, participantIndex, role, userId, username, name, bio, location, website, followers, following, postCount, profileImageUrl, bannerUrl, isBlueVerified, verified, verifiedType, periscopeUserId, isMutedByAdmin, isMutedByGuest, collectedAt.

Transcript row

spaceId, spaceUrl, title, language, transcriptionMethod (captions or ai), modelUsed, segmentCount, fullTranscript, segments[] (index, start, end, text), collectedAt.

Empty fields are omitted at every depth. There are no null values in the dataset.

Input

FieldTypeDefaultDescription
spaceUrlsarray–Space links, Space IDs, or announcement post links
searchQueriesarray–Keywords or hashtags for Space discovery
hostUsernamesarray–Handles whose recent posts announce Spaces
maxSpacesinteger20Cap for discovered Spaces (1–200)
spaceStatestringanyany, live, upcoming or ended
includeParticipantsbooleantrueParticipant list on the Space row + participant rows
includeParticipantProfilesbooleantrueEnrich participant stubs with public profile details
maxParticipantProfilesinteger50Profile lookups per Space (0 = all)
includeReplayAudiobooleanfalseReplay HLS link + downloadable audio file
includeTranscriptbooleanfalseProduce a transcript from captions or Whisper
transcriptSegmentsAsRowsbooleanfalseEmit one row per transcript segment
transcriptionMethodstringautoauto, captions or ai
whisperModelstringbasetiny, base, small, medium or large-v3
proxyConfigurationobject–Optional; automatic fallback is built in

At least one of spaceUrls, searchQueries or hostUsernames is needed.

Examples

Metadata and participants:

{
"spaceUrls": ["https://x.com/i/spaces/1YpKkZgnrDXxj"],
"includeParticipants": true
}

Discover by keyword, keep only ended Spaces:

{
"searchQueries": ["#Space", "NASA"],
"spaceState": "ended",
"maxSpaces": 10
}

Discover from hosts:

{
"hostUsernames": ["NASA", "@SpaceX"],
"maxSpaces": 5
}

Replay audio with a transcript:

{
"spaceUrls": ["1YpKkZgnrDXxj"],
"includeReplayAudio": true,
"includeTranscript": true,
"transcriptionMethod": "auto",
"transcriptSegmentsAsRows": true
}

Example Space record

{
"type": "space",
"id": "1YpKkZgnrDXxj",
"url": "https://x.com/i/spaces/1YpKkZgnrDXxj",
"title": "Meet NASA's New Mission Control Flight Directors #AskNASA",
"state": "Ended",
"createdAt": "2022-07-19T15:25:30+00:00",
"startedAt": "2022-07-19T15:59:30+00:00",
"endedAt": "2022-07-19T16:45:16+00:00",
"durationSeconds": 2746.0,
"listenersLive": 47951,
"listenersReplay": 112570,
"replayAvailable": true,
"hostUsername": "NASA",
"participantCounts": {"total": 10, "admin": 1, "speaker": 9},
"topics": ["NASA", "Science", "Space"],
"collectedAt": "2026-11-07T09:15:00+00:00"
}

How discovery works

Spaces are discovered from public posts, not from a private search index. The actor reads recent matching posts through X's public guest surfaces and resolves each post's Space card. This keeps the actor cookieless. Consequences:

  • Discovery looks at recent public posts, not the entire archive.
  • A Space with no public announcement post cannot be discovered by keyword or host. Paste its link or ID instead.
  • Guest search is the least reliable public surface; a query can return fewer posts at busy times. The actor retries and falls back to the host's own timeline.
  • X's signed-in Space search and topic browser are not available to guest callers. They are deliberately not faked.

FAQ

Do I need an X account, cookies or an API key? No. The actor is fully cookieless and reads only public Spaces, public posts and public profiles.

Does it work with private or deleted Spaces? No. They produce a clear status row.

Why is replay audio sometimes unavailable? Live Spaces have no replay yet, and some hosts disable replay. You get a status row explaining which case applies.

How is the replay file produced? The public replay stream is downloaded and combined into one playable audio file, then stored with a stable download link. Very large replays (above roughly 250 MB) may exceed the file cap — you still get the streaming replay link.

How do transcripts work? With auto, native captions are used when the replay has them; otherwise Whisper AI runs over the audio. Captions are fast. AI time grows with the Space length, and long Spaces are split into 10-minute chunks to bound memory.

Which Whisper model should I use? base is the best balance on the default 1 GB. Larger models need more actor memory. The actor downgrades safely instead of crashing, and reports the model it actually used in modelUsed.

How many rows will a run produce? A Space with participants and a full transcript can produce several hundred rows. Longer Spaces and larger participant lists produce more. Discovery is capped by maxSpaces; pasted Spaces are not capped.

Can I schedule it? Yes. Use searchQueries or hostUsernames with a schedule to pick up newly announced Spaces, or run it after a recurring show with the host's handle.

Is this affiliated with X? No. It is a third-party actor that reads publicly visible content.

Limits

  • Public Spaces only; private, deleted or unavailable Spaces return a status row.
  • Keyword/hashtag/host discovery covers recent public posts, not the full archive.
  • Signed-in Space search and the topic browser are not reachable without credentials and are not supported.
  • Replay audio and transcripts require a finished Space with replay enabled.
  • AI transcription is CPU-bound; on 1 GB the actor runs tiny/base and may downgrade a larger requested model.
  • Participant profile enrichment stops at maxParticipantProfiles per Space.

Integrations

Use Apify's built-in integrations to send Space summaries, participant lists or transcripts to Google Sheets, Airtable, Slack, a webhook or your own API.