
TikTok Video Downloader
Pricing
$10.00/month + usage

TikTok Video Downloader
Download any videos from TikTok.com
4.6 (3)
Pricing
$10.00/month + usage
14
Total users
305
Monthly users
39
Runs succeeded
98%
Issue response
19 hours
Last modified
14 hours ago
Corrupted files from TikTok
Closed
After downloading video through your scraper, we extract audio from it by downloading the mp4 you give us. For some video files we get this:
Failed to transcribe video: Failed to load audio: ffmpeg version 5.1.6-0+deb12u1 Copyright (c) 2000-2024 the FFmpeg developersbuilt with gcc 12 (Debian 12.2.0-14)configuration: --prefix=/usr --extra-version=0+deb12u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-sharedlibavutil 57. 28.100 / 57. 28.100libavcodec 59. 37.100 / 59. 37.100libavformat 59. 27.100 / 59. 27.100libavdevice 59. 7.100 / 59. 7.100libavfilter 8. 44.100 / 8. 44.100libswscale 6. 7.100 / 6. 7.100libswresample 4. 7.100 / 4. 7.100libpostproc 56. 6.100 / 56. 6.100[mov,mp4,m4a,3gp,3g2,mj2 @ 0x2ac764186cc0] Format mov,mp4,m4a,3gp,3g2,mj2 detected only with low score of 1, misdetection possible![mov,mp4,m4a,3gp,3g2,mj2 @ 0x2ac764186cc0] moov atom not found/tmp/tmpukr9k5ms/video_74d491ef-3ac3-45c7-bb97-ae307d26a010.mp4: Invalid data found when processing input", "timestamp":"2025-04-04T08:26:22.331421Z", "video_id":"74d491ef-3ac3-45c7-bb97-ae307d26a010", "video_url":"https://www.tiktok.com/@caregiveraction/video/7437207906296302894"}
Could you please check it out for this video https://www.tiktok.com/@caregiveraction/video/7437207906296302894 why this file is corrupted? Probably there is something on your end during conversion - my assumption is that it doesn't download the full video ("moov atom not found") but you still give us the mp4 instead of retrying download/fixing the file and then returning the mp4

Hey there,
Thank you for reaching out, and letting us know about your inquiry. Can you please share your Run ID, so that the team can investigate it in detail?
Best
sundogs
For example, this one: https://console.apify.com/view/runs/lFpxhRbn3KhT5eTH9
Create another issue to share it w/ you: https://console.apify.com/organization/j2UIRlHmbbfbBPhPG/actors/9EwE2S3mGpxx665jw/issues/HAl0VuKLBJGehwfVB
Had around 10 cases alredy
sundogs
These are a few other runs (do you have access to their logs or I need to share them the same way as above?):
zfnfcllY97xgehzhphyaxZwdg7URSotBpxj95gu2wFeo0vCfV0qJ1Xm2KvBObUkbtMYqlFpxhRbn3KhT5eTH9JIGAQQflmGwdMtO7L9CU16snFcys4TKDwP
sundogs
Here is one of corrupted video files (doesn't let me uploading here):
sundogs
Here is another one - https://console.apify.com/organization/j2UIRlHmbbfbBPhPG/actors/runs/EAArEX0ATsIqv8Sya#log
There it started downloading, but still stopped on the way.
2025-04-04T10:51:51.186Z ACTOR: Pulling Docker image of build Or78ACkjXeMC7BRab from registry.2025-04-04T10:51:55.358Z ACTOR: Creating Docker container.2025-04-04T10:51:56.116Z ACTOR: Starting Docker container.2025-04-04T10:51:57.929Z INFO System info {"apifyVersion":"3.1.11","apifyClientVersion":"2.8.0","crawleeVersion":"3.5.7","osType":"Linux","nodeVersion":"v18.20.8"}2025-04-04T10:51:57.936Z INFO PHASE -- STARTING ACTOR.2025-04-04T10:51:58.456Z INFO PHASE -- SETTING UP CRAWLER.2025-04-04T10:51:58.458Z INFO CRAWLER STARTED.2025-04-04T10:51:58.692Z INFO BasicCrawler: Starting the crawler.2025-04-04T10:52:20.389Z WARN BasicCrawler: Reclaiming failed request back to the list or queue. RequestError: Client network socket disconnected before secure TLS connection was established2025-04-04T10:52:20.390Z at file:///usr/src/app/src/main.js:62:19 {"id":"JZB5ArL8oB0LzwE","url":"https://www.tiktok.com","retryCount":1}2025-04-04T10:52:53.870Z WARN BasicCrawler: Reclaiming failed request back to the list or queue. RequestError: Proxy responded with 595 ECONNRESET: 0 bytes2025-04-04T10:52:53.871Z at file:///usr/src/app/src/main.js:62:19 {"id":"JZB5ArL8oB0LzwE","url":"https://www.tiktok.com","retryCount":2}2025-04-04T10:52:58.694Z INFO Statistics: BasicCrawler request statistics: {"requestAvgFailedDurationMillis":null,"requestAvgFinishedDurationMillis":null,"requestsFinishedPerMinute":0,"requestsFailedPerMinute":0,"requestTotalDurationMillis":0,"requestsTotal":0,"crawlerRuntimeMillis":60234,"retryHistogram":[]}2025-04-04T10:52:58.719Z INFO BasicCrawler:AutoscaledPool: state {"currentConcurrency":1,"desiredConcurrency":3,"systemStatus":{"isSystemIdle":true,"memInfo":{"isOverloaded":false,"limitRatio":0.2,"actualRatio":0},"eventLoopInfo":{"isOverloaded":false,"limitRatio":0.6,"actualRatio":0},"cpuInfo":{"isOverloaded":false,"limitRatio":0.4,"actualRatio":0},"clientInfo":{"isOverloaded":false,"limitRatio":0.3,"actualRatio":0}}}2025-04-04T10:53:02.061Z INFO CRAWLER: -- Fetching cookies2025-04-04T10:53:04.763Z INFO PHASE: -- Fetching item: https://www.tiktok.com/@caregiveraction/video/74821520916669924262025-04-04T10:53:04.845Z INFO PHASE: -- Downloading video : https://www.tiktok.com/@caregiveraction/video/74821520916669924262025-04-04T10:53:09.320Z INFO Downloading video 7482152091666992426: 0%2025-04-04T10:53:10.101Z INFO BasicCrawler: All requests from the queue have been processed, the crawler will shut down.2025-04-04T10:53:10.329Z INFO Downloading video 7482152091666992426: ======= 35%2025-04-04T10:53:10.567Z INFO BasicCrawler: Final request statistics: {"requestsFinished":2,"requestsFailed":0,"retryHistogram":[1,null,1],"requestAvgFailedDurationMillis":null,"requestAvgFinishedDurationMillis":6486,"requestsFinishedPerMinute":2,"requestsFailedPerMinute":0,"requestTotalDurationMillis":12972,"requestsTotal":2,"crawlerRuntimeMillis":72108}2025-04-04T10:53:10.568Z INFO BasicCrawler: Finished! Total 2 requests: 2 succeeded, 0 failed. {"terminal":true}
sundogs
If you are unable to download the video, you need to fail the run (and not have it as 'succeeded') at least, so that we know we need to retry. But ideally you need to retry, so that we always get a video.

Hey,
When we checked the runIDs you provided, we saw that both the Input and Storage files had been deleted, so we couldn’t investigate the issue based on your specific example.
However, we tested the video found in the logs — https://www.tiktok.com/@caregiveraction/video/7437207906296302894 — by scraping it through the actor and running a conversion. We didn’t encounter any issues during this process.
You can find the run we executed, along with the input and the conversion log, at the link below:
🔗 https://console.apify.com/view/runs/egGyiNbrDKDqTuLBo
ffmpeg -i 7437207906296302894.mp4 output.mp4
ffmpeg version 7.1.1 Copyright (c) 2000-2025 the FFmpeg developers
built with Apple clang version 16.0.0 (clang-1600.0.26.6)
configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/7.1.1_1 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags='-Wl,-ld_classic' --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libharfbuzz --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-audiotoolbox --enable-neon
libavutil 59. 39.100 / 59. 39.100
libavcodec 61. 19.101 / 61. 19.101
libavformat 61. 7.100 / 61. 7.100
libavdevice 61. 3.100 / 61. 3.100
libavfilter 10. 4.100 / 10. 4.100
libswscale 8. 3.100 / 8. 3.100
libswresample 5. 3.100 / 5. 3.100
libpostproc 58. 3.100 / 58. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '7437207906296302894.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
comment : vid:v12300gd0001csr4acvog65sac7g7nq0
encoder : Lavf58.76.100
Duration: 00:01:00.01, start: 0.000000, bitrate: 650 kb/s
Stream #0:00x1: Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 576x1024 [SAR 1:1 DAR 9:16], 612 kb/s, 30 fps, 30 tbr, 15360 tbn (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
Stream #0:10x2: Audio: aac (HE-AACv2) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 32 kb/s (default)
Metadata:
handler_name : SoundHandler
vendor_id : [0][0][0][0]
File 'output.mp4' already exists. Overwrite? [y/N] y
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
[libx264 @ 0x1176054f0] using SAR=1/1
[libx264 @ 0x1176054f0] using cpu capabilities: ARMv8 NEON
[libx264 @ 0x1176054f0] profile High, level 3.1, 4:2:0, 8-bit
[libx264 @ 0x1176054f0] 264 - core 164 r3108 31e19f9 - H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=18 lookahead_threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'output.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
comment : vid:v12300gd0001csr4acvog65sac7g7nq0
encoder : Lavf61.7.100
Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 576x1024 [SAR 1:1 DAR 9:16], q=2-31, 30 fps, 15360 tbn (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
encoder : Lavc61.19.101 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
handler_name : SoundHandler
vendor_id : [0][0][0][0]
encoder : Lavc61.19.101 aac
[out#0/mp4 @ 0x600001258000] video:4344KiB audio:956KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 1.224760%
frame= 1800 fps=740 q=-1.0 Lsize= 5365KiB time=00:00:59.93 bitrate= 733.3kbits/s speed=24.6x
[libx264 @ 0x1176054f0] frame I:8 Avg QP:16.15 size: 34851
[libx264 @ 0x1176054f0] frame P:539 Avg QP:21.83 size: 6435
[libx264 @ 0x1176054f0] frame B:1253 Avg QP:25.52 size: 559
[libx264 @ 0x1176054f0] consecutive B-frames: 2.0% 14.3% 3.7% 80.0%
[libx264 @ 0x1176054f0] mb I I16..4: 25.7% 57.4% 16.9%
[libx264 @ 0x1176054f0] mb P I16..4: 1.2% 3.4% 0.9% P16..4: 24.6% 8.1% 4.4% 0.0% 0.0% skip:57.4%
[libx264 @ 0x1176054f0] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 14.9% 0.7% 0.1% direct: 0.2% skip:84.0% L0:44.3% L1:51.2% BI: 4.5%
[libx264 @ 0x1176054f0] 8x8 transform intra:60.4% inter:71.5%
[libx264 @ 0x1176054f0] coded y,uvDC,uvAC intra: 36.7% 40.2% 19.1% inter: 3.9% 3.7% 0.3%
[libx264 @ 0x1176054f0] i16 v,h,dc,p: 45% 24% 11% 19%
[libx264 @ 0x1176054f0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 18% 33% 3% 5% 5% 5% 4% 4%
[libx264 @ 0x1176054f0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 32% 23% 15% 4% 6% 7% 5% 5% 4%
[libx264 @ 0x1176054f0] i8c dc,h,v,p: 62% 18% 17% 3%
[libx264 @ 0x1176054f0] Weighted P-Frames: Y:1.7% UV:0.9%
[libx264 @ 0x1176054f0] ref P L0: 65.9% 22.4% 8.7% 3.0% 0.0%
[libx264 @ 0x1176054f0] ref B L0: 92.8% 6.0% 1.3%
[libx264 @ 0x1176054f0] ref B L1: 98.8% 1.2%
[libx264 @ 0x1176054f0] kb/s:593.01
[aac @ 0x117677740] Qavg: 643.637
Let us know if you still encounter the issue with a different video or setup, and we’ll be happy to dig deeper.
sundogs
Yes, storage files are deleted automatically to save on space. Hence I attached the file in this issue for you to investigate. Why this issue was closed if you had all the input needed?
Yes, we continue encountering this as it hasn't fixed yet..
Here are the new runs:
fhzSmcJ9RjufvEVuwpBGc41oWgdXMAUp0N908G0QLjWFE4PfrLnw3gLQrVe3w1uTG8gx
sundogs
We didn’t encounter any issues during this process.
Yes, because it doesn't happen in 100% of cases. It happens on every ~8th run. So 15% of our data is corrupted. Which is a lot.
sundogs
You can clearly see in the logs that the download wasn't fully finished. We gave you a concrete file that is corrupted. We also provided logs of ffmpeg for your developers to debug. I believe we did more than enough for you to be able to reproduce it.

Hey,
We are woking on it.
Best,

Hey there,
The problem should be resolved in the latest version of the actor. If you still experience any issues, please create a new issue and include the relevant RUNID so we can take a closer look.
Best regards,