Youtube Video Downloader avatar

Youtube Video Downloader

Try for free

3 days trial then $30.00/month - No credit card required now

View all Actors
Youtube Video Downloader

Youtube Video Downloader

epctex/youtube-video-downloader
Try for free

3 days trial then $30.00/month - No credit card required now

Effortlessly download YouTube videos of your preferred quality with our user-friendly Video Downloader. Try it now!

LE

Feature Suggestion: Automated Retry Mechanism for Failed Downloads

Closed

ler.ai opened this issue
18 days ago

Hi,

Thank you for creating this amazing Actor. I am thoroughly enjoying it. Below, I've outlined a potential feature suggestion to streamline workflow process:

Every time a download fails, move it back to the end of the entire current download queue for a retry.

9 times out of 10, this will actually work.

Only retry downloads if user sets the "Retry Fails" number to anything but 0. (This can be a new parameter/setting you add to the Actor).

For example, if a user sets 3 for "Retry Fails" parameter... then if a download fails, move it to the end of current download queue. If it fails again later on, then move it to back of queue again (up to 3x).

If the user just sets it to 1, then just attempt that re-queued download one more time.

This will make my life 10x easier, and I'm sure it'll make others' lives much easier as well :)

So I don't have to manually identify all the new fails from each new batch, re-try them, and repeat 3-5x for an entire channel's list of video downloads (until there's 0 fails total).

epctex avatar

epctex (epctex)

18 days ago

Hey there!

Thank you very much for reaching out, and letting us know about your inquiry. The actor already has a retry mechanism in place where it is following the Request Queue's default retry. However, we can enable maxConcurrency and maxRetries as an additional property to the input. Do you think that can help you out?

Regarding manually analyzing, and retrying it, do you have a Run ID that we can check? We are also checking the fail reasons.

Best

LE

ler.ai

16 days ago

Thanks for the quick response (just saw). Yes, here's one of the Run IDs (this one has 3014 results and 365 failed requests): Rp3tARCAo0vOYWLFu

If I compile a list of the 365 failed requests' links and try again, 90% will work, and then I repeat this process on the 10% failed until there's 0-1 fails left.

I'm not fully sure how maxConcurrency and maxRetries ties into this. But if your understanding determines that it helps, then I'm all for it! :)

Currently, your Scraper is my #1 favorite for my use-case. If this stays the case, you can expect 6-figures+ worth of usage in the future

LE

ler.ai

16 days ago

I think the issue stems from the Database Proxies Apify provides. However, if simply re-trying on a separate run solves the issue somehow.. maybe there's a different way to retry internally (via Actor code)?

I'm unfamiliar with Apify's proxy systems (Idk if they run a separate/new batch for each Run, or how it works exactly)

epctex avatar

epctex (epctex)

16 days ago

Hey again,

Thank you very much for the detailed explanation. We investigated the run and it seems like the issue that you are facing is completely related to the Apify proxies as you mentioned. The actor already has the IP-rotation and retry mechanisms in place to increase its success rate.

There are a couple of possible options to increase the success rate. We can also support with some new input properties:

  1. Sometimes, advanced protection systems like YT can identify an actor even if it is behind one or multiple proxies. Therefore, splitting the run into smaller chunks can help you out here.
  2. We added a new field called Max Concurrency. This option allows the actor to limit its concurrency. Slowing the actor, or defining an upper limit, can help the success rate to increase and have a more stabilized output retrieval. By default, this field is empty and lets the actor arrange itself.
  3. We added a new field called Maximum Request Retries. This option allows how many times a video should be retried. By increasing this number, you can achieve better results but please keep in mind that you might be caught already by YouTube (point 1). By default, this field is empty and lets the actor arrange itself.

I hope this helps. Please let us know if you need anything else. Best

LE

ler.ai

15 days ago

Okay sounds good, thanks again 🙏

I actually created a Python app last night that automates identifying fails and recursively creating new runs until there's 0 fails remaining. So the new features you added are a bonus, and I'm sure they'll be universally beneficial for other users as well

God bless

Developer
Maintained by Community
Actor metrics
  • 76 monthly users
  • 9 stars
  • 93.1% runs succeeded
  • 11 hours response time
  • Created in Sep 2023
  • Modified about 6 hours ago