Record public TikTok Live streams as one-minute MP4 segments with room metadata, viewer metrics, creator details, and timestamped engagement events.
At a glance
| Store brand | AgentX โ apify.com/agentx |
|---|---|
| Pricing model | pay per event |
| Price per result row | $0.00078 on the Free plan |
| 1,000 rows (Free plan) | $0.79 |
| 1,000 rows (Gold plan) | $0.60 |
| Default / max memory | 512 MB / 1024 MB |
| Run timeout | 12 h |
| Public runs, last 30 days | 12,297 ยท 97.4% succeeded |
| Users | 11 in 30 days ยท 138 all time |
| First published | October 13, 2025 |
| Last build | 1.0.22 on August 19, 2026 |
What you have to give it
1 of the 2 input fields are required; the rest have defaults and can be left out.
| Field | Type | Required | Accepted values | What it does |
|---|---|---|---|---|
tiktok_url | string | yes | https://www.tiktok.com/@tv_asahi_news/live | TikTok username, profile URL, or active live URL to record. |
run_time | integer (minutes) | no | 1 | Maximum recording duration in minutes, up to 720 (the 12-hour run limit); use 0 to continue until the live stream ends. |
A run that works
The values below are the Actor's own prefills, so this input is valid as written:
{
"tiktok_url": "https://www.tiktok.com/@tv_asahi_news/live",
"run_time": 1
} What comes back
Every dataset row carries the 62 fields below. The examples are the ones declared in the Actor's own output schema.
| Field | Type | Example | Meaning |
|---|---|---|---|
url | string | null | https://m.tiktok.com/share/live/7234567890123456789/ | TikTok share URL for the live room |
room_id | string | null | 7234567890123456789 | Unique identifier of the live room |
room_title | string | null | Morning Cooking Show | Title of the live stream set by the streamer |
live_id | integer | null | 1234567890 | Internal TikTok live session identifier |
stream_id | string | null | stream_abc123def456 | Unique identifier for the current stream session |
app_platform | string | null | tiktok_ios | Platform used to start the stream (ios/android/pc/web) |
create_time | integer | null | 1705312200 | Unix timestamp when the live stream was created |
created_at | string | null | 2024-01-15T10:30:00+00:00 | ISO 8601 timestamp when the stream was created |
is_replay | boolean | null | false | Whether this is a replay of a past live stream |
replay | boolean | null | true | Whether replay is enabled for this stream |
visible_type | string | null | public | Visibility scope (public/private/friends_only/followers_only) |
is_age_restricted | boolean | null | false | Whether the stream has age restrictions applied |
has_commerce | boolean | null | true | Whether commerce/shopping features are enabled |
has_tiktok_shop | boolean | null | true | Whether TikTok Shop integration is active |
business_live | string | null | ecommerce | Live category (normal/business/brand/ecommerce) |
like_count | integer | null | 5240 | Total likes received during the live stream |
total_user | integer | null | 18400 | Total unique users who watched the stream |
current_users | integer | null | 1250 | Number of viewers currently watching live |
comment_count | integer | null | 890 | Total comments posted during the live stream |
share_count | integer | null | 320 | Number of times the stream was shared |
follow_count | integer | null | 145 | New follows gained during the live stream |
room_follows | integer | null | 98 | Users who followed the live room directly |
gift_users | integer | null | 67 | Number of unique users who sent gifts |
fan_ticket | integer | null | 4200 | Total fan tickets collected during the stream |
linkmic_enabled | boolean | null | false | Whether link mic co-streaming is enabled |
ktv_enabled | boolean | null | false | Whether the karaoke KTV feature is enabled |
draw_enabled | boolean | null | false | Whether the drawing/whiteboard feature is on |
live_cover | string | null | https://p16-sign.tiktokcdn-us.com/obj/tos-maliva-p-0068/cover.jpg | URL of the live stream cover image |
auth_chat | boolean | null | true | Whether chat is enabled in this stream |
auth_gift | boolean | null | true | Whether sending gifts is enabled |
auth_digg | boolean | null | true | Whether liking the stream is enabled |
auth_share | boolean | null | true | Whether sharing the stream is enabled |
auth_mention | boolean | null | true | Whether mentioning users in chat is enabled |
auth_poll | boolean | null | false | Whether creating polls in stream is enabled |
auth_rank | boolean | null | true | Whether ranking leaderboard features are on |
auth_card | boolean | null | true | Whether user profile cards are enabled |
top_fans | array | null | [object Object] | Top fans ranked by fan ticket contribution |
author_id | string | null | 6890123456789012345 | Unique identifier of the streamer account |
author_name | string | null | gbnews | TikTok username (display_id) of the streamer |
author_nickname | string | null | GB News | Display nickname of the streamer account |
author_bio | string | null | Breaking news and independent journalism | Profile biography text of the streamer |
author_avatar | string | null | https://p16-sign.tiktokcdn-us.com/obj/tos-maliva-p-0068/avatar.jpg | URL of the streamer's profile avatar image |
author_verified | boolean | null | true | Whether the streamer account is verified |
author_secret | integer | null | 0 | Privacy/secret level of the streamer account |
author_followers | integer | null | 850000 | Total follower count of the streamer account |
author_following | integer | null | 120 | Number of accounts the streamer follows |
author_pay_level | integer | null | 3 | Streamer's TikTok pay grade/subscription level |
author_pay_score | integer | null | 4800 | Accumulated payment score of the streamer |
author_fan_ticket | integer | null | 25000 | Total fan tickets the streamer has received |
author_badge_list | array | null | [object Object] | List of achievement badges the streamer holds |
author_region | string | null | GB | Geographic region of the streamer's account |
author_os | string | null | ios | OS the streamer used (ios/android/windows/macos) |
language | string | null | en | Primary language of the live stream content |
finish_time | integer | null | 1705316400 | Unix timestamp when the live stream ended |
scheduled_end_time | integer | null | 0 | Unix timestamp of the planned stream end time |
has_quiz | boolean | null | false | Whether a quiz interaction is active in stream |
tag_list | array | null | news, live, breaking | Tags attached to this live stream by creator |
hashtag_list | array | null | breakingnews, uknews, politics | Hashtags associated with this live stream |
video_url | string | null | https://api.apify.com/v2/key-value-stores/abc123/records/video20240115_103000.mp4 | Public URL of the recorded video segment uploaded to Apify Key-Value Store |
live_events | array | null | [object Object] | Chronological list of all live stream events |
processor | string | null | https://apify.com/agentx/tiktok-live-downloader | URL of the Apify actor that processed this |
processed_at | string | null | 2024-01-15T10:30:00+00:00 | ISO 8601 UTC timestamp when data was processed |
What it costs
| Charged event | Price | When |
|---|---|---|
| Actor Start | $0.01 | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). |
| Actor Usage | $0.00001 | Charged for Actor runtime, proxy, and storage usage. |
| Recording Seconds | $0.00078 โ $0.00059 | Charged for each cumulative second of published TikTok Live video. |
| Record Seconds | $0.00078 โ $0.00059 | Legacy per-second recording event, kept live through the pricing transition. |
| Metadata Seconds | $0.00144 โ $0.00108 | Legacy per-second event billed during the pricing transition; replaced by Recording Seconds. |
Per 1,000 rows, by Apify plan
| Plan | Per row | 1,000 rows | 10,000 rows |
|---|---|---|---|
| Free | $0.00078 | $0.79 | $7.81 |
| Bronze | $0.0007 | $0.71 | $7.01 |
| Silver | $0.00062 | $0.63 | $6.21 |
| Gold | $0.00059 | $0.60 | $5.91 |
| Platinum | $0.00059 | $0.60 | $5.91 |
| Diamond | $0.00059 | $0.60 | $5.91 |
Every total includes the $0.01 start fee once. Apify charges that fee per gigabyte of memory, so a 512 MB run pays it a single time.
When not to use it
- Memory is capped at 1024 MB, so a very large job should be split into several narrower runs rather than scaled up.
- The dataset carries 62 fields and nothing else; if your analysis needs a field that is not in the table above, no input setting will add it.
- It reads what is public at run time. There is no archive behind it, so a question about last quarter has to be answered from data you already collected.
Closest Actors in the catalog
Same categories, ordered by how many people run them. Compare the field tables before choosing.
| Actor | Brand | Fields | 1k rows (Free) | Users / 30 d |
|---|---|---|---|---|
| YouTube Video Downloader | TrueFetch | 43 | โ | 42 |
| TikTok Live Recorder | TrueFetch | 62 | $0.58 | 8 |
| Instagram Post Scraper โ | TrueFetch | 64 | $3.91 | 3 |
| Kick Video Transcript โ | TrueFetch | 22 | $420.00 | 1 |
| Twitch VOD Transcript โ | TrueFetch | 22 | $420.00 | 1 |
| TikTok Profile Videos API โ | TrueFetch | 61 | $2.51 | 0 |
Field guides that use this data
- Transcribing Podcasts and Recordings You Already Host โ Most transcript APIs want a platform link. When the audio is your own โ a podcast, a recorded call, an archive in S3 โ you need the direct-file path instead.
- Instagram Reel Transcript API: From Public URL to Text โ Turn a public Instagram reel into timestamped text with one API call: what you get back, what qualifies as input, and how translation into 133 languages works.
- Video Captions vs Transcripts: Which Text Source Fits the Job โ Captions and transcripts look interchangeable and are not. Compare coverage, timing accuracy, speaker data, language handling, and cost at volume.
Prove it on a narrow run
Open the live contract.
Pricing, availability and schema can change between snapshots. The Apify Actor page is the current source of truth.
Catalog snapshot 2026-09-04; Actor contract, pricing and run statistics read 2026-09-04.