
YouTube Video Subtitles (captions) Scraper
Pricing
$14.99/month + usage

YouTube Video Subtitles (captions) Scraper
Extract subtitles (captions) from one or multiple YouTube videos. Download YouTube video subtitles (captions) as a HTML, JSON, CSV, Excel, or XML doc.
1.0 (1)
Pricing
$14.99/month + usage
21
Total users
493
Monthly users
42
Runs succeeded
>99%
Issues response
1.5 days
Last modified
12 hours ago
Captions Not Returning from YouTube Crawler
Open
Hi there,
We’ve encountered an issue with the YouTube Crawler actor (o2ZziUjiDSmp4vUKy) that started a few days ago. For some reason, the actor has stopped returning captions for YouTube videos, even though everything appears to be working correctly on our end.
To illustrate: This older run returned captions successfully: https://console.apify.com/organization/RkbRmkpzv3BbWKbmX/actors/o2ZziUjiDSmp4vUKy/runs/nQxDyriiS3apLsykp#input
This recent run, with the same input parameters, returned no captions: https://console.apify.com/organization/RkbRmkpzv3BbWKbmX/actors/o2ZziUjiDSmp4vUKy/runs/KyELKeZzzNPXYh7wz#input
We’ve checked our integration and logs — all requests are going through without errors. However, since June 9, 2025, all runs of this actor have been returning 0 captions in the results.
A few additional details:
- There are no errors in the logs for the failed runs.
- We haven’t exceeded our monthly usage limit. Our plan limit is $90, and so far we’ve only used $75: https://console.apify.com/organization/RkbRmkpzv3BbWKbmX/billing/limits
Could you please take a look and let us know what might be going wrong or if anything has changed recently on your end?
We would greatly appreciate your help in resolving this.

Hi! Thanks for reaching out! I've looked into the issue with the YouTube not returning captions anymore. It turns out YouTube made changes recently, and that's what broke things on our end. Good news though: I've fixed it! The actor should now be able to fetch captions correctly again. Please try running it one more time. If you hit any more issues or have other questions, just open a new ticket. I'm always glad to help!
user-hTbab8D64jQZjrwSC
Thanks! I appreciate the hard work that you do on keeping the actor functioning.
This is going to sound selfish and unreasonable, but would you be against providing a refund on the recent failed runs? Our bill has been much higher than usual because of them.
user-hTbab8D64jQZjrwSC
Last several days shows that the issue is still not fixed. Please provide refund and fix the issue. Otherwise will stop using and leave 1 star review.

Hi there!
Could you share the runs that didn’t work for you? I’d love to take a closer look, since everything appears to work fine in my own tests.
Regarding the refund, please reach out to Apify Support directly. The support team can handle payments, whereas I, as the actor’s developer, don’t have the authority to process refunds.
Thanks a lot!

Please share the details of your run by clicking the Share button on its page. Just note that this will make the data public.
If you’d prefer to keep the information private, open a new issue with the Report Issue button and include the actor run URL.
user-hTbab8D64jQZjrwSC
Here are the details of the runs for the same video:
- Successful run: https://console.apify.com/view/runs/nY2O6pjopEZOtPzjD
- Unsuccessful run: https://console.apify.com/view/runs/AjFmtzd1ZsahLjWAx Note that it's the same video.

Hi! Thanks for sharing the two run links—they make the pattern clear.
What’s happening is that the actor is running from a different Apify worker (and thus a different outbound IP) every time. Because you’re not using a proxy, some IPs get blocked by the Youtube while others slip through, so one run succeeds and the next one fails.
I’ve just added a note to the actor’s log that appears whenever a request is blocked without a proxy, pointing users to a solution.
The most reliable fix is to enable Apify Residential Proxy for the actor:
- Open the actor’s Input tab → Proxy configuration.
- Tick Use Residential and set Groups to RESIDENTIAL.
- Save and rerun the actor.
Alternatively, you can just click on the "Reset to defaults" button
Residential proxies rotate a large pool of real-device IP addresses, dramatically reducing blocks and giving you consistent results.
user-hTbab8D64jQZjrwSC
Thanks for your feedback.
We enabled the Residential proxy in the settings of this Actor (https://app.screencast.com/0RmOcgwJuNnX5), and now we also include the following parameters in the API requests to this actor:
"proxySettings": { "useApifyProxy": true, "apifyProxyGroups": [ "RESIDENTIAL" ] },
So, the input now looks like this – https://app.screencast.com/bhcPijvzCuI8B. Here is the link to this run: https://console.apify.com/organization/RkbRmkpzv3BbWKbmX/actors/o2ZziUjiDSmp4vUKy/runs/reVmywR9iJ0K2QqBU#input
Please confirm that we’ve done everything correctly.

Hi!
Please share the link to the run using the share button (I don't have access to the run via this link).
user-hTbab8D64jQZjrwSC-owner
Hi I have shared the run history with you through the Apify interface.
We are still seeing mostly failed runs.
Residential proxies are enabled: https://d.pr/i/KZtARc/TBuo5fziEU
But does the proxy configuration also need to be applied separately to API calls? https://d.pr/i/0bn9PQ/FN5V6JzQCp

Unfortunately I can’t tell which of the runs in the public list were started by your account — the dashboard only shows me a generic list with minimal details. Could you please either
- share the failing run via the Share button (this will generate a direct link), or
- open a new issue and include the private Actor run URL?
With the exact run link I’ll be able to open the full log and input and see what went wrong. Thanks!

From the screenshot you shared, I also noticed that the URL field in the console shows [object Object] instead of an actual link. Please try re-entering the URL manually.
It would be helpful if you could share the input parameters you use when triggering the Actor via the API (optional, since I’ll see them once you provide the link to the failed run).