Struggling with throttling when downloading multiple YouTube videos? Then the improved YouTube2Audiobook has you covered! Readily available on GitHub.

Update 2020-10-18: We are proud to announce that YouTube2­Audiobook is now also available on Docker Hub. Listen sooner. Leverage the Docker container.

YouTube and Audiobooks

YouTube is an excellent home to an every growing collection of amazing audiobooks. Take the great LibriVox Audiobooks channel, for example, where a collection of like-minded enthusiasts record audiobooks and provide them to the world, free of charge.

The YouTube2Audiobook app allows me to tap into this vast resource, scale out my reading, and "speed-read" through the unread sections of My Reading List.

The recently introduced playlist support for YouTube2Audiobook accelerates this even further, as I can now download every video in the "Genre: Science" playlist from the LibriVox Audiobooks channel as an audiobook by simply typing

$ yt2ab -u https://youtu.be/gmmgWcbAmjo?list=PLZ-bKJtH3G7BYYscYohAFZAq65RwCf-K-

into a terminal of my choice (it's iTerm2, in case you're curious).

The Price of Mass Downloading

While playlist support is a convenient feature, it does, however, come at a price. Now, that price is not so obvious at first sight. But once it kicks in, you might be really out of luck.

And not only for YouTube2Audioboook. For everything on your machine. For everything using your public IP, in fact. The price is obviously throttling and YouTube potentially blocking your IP.

Understandably, YouTube doesn't take it too well when people mass download content from their website.

Even worse, the problem isn't really obvious at first sight, as the error message from the underlying youtube-dl open source project is fairly vague which makes identifying the root cause a bit of a pain. However, there's hope.

Let's Take it Slow!

The solution to the problem of YouTube throttling downloads and eventually blocking IP addresses is as simple as using YouTube how it was intended to be used in the first place: One video at a time.

In the end, the technical solution is straightforward and might as well be inspired by real life.

Sometimes, it's advisable to slow down and take things at a more sustainable pace rather than racing through everything in the hopes of making it to the finish line before the steam runs out.

And that's exactly what the improved YouTube2Audiobook is now doing. It's taking a break between downloads. Making a virtual cuppa before proceeding to the next item on the list. Taking it slow.

YouTube2Audiobook now implements anti-throttling measures by waiting a randomised amount of time between successive downloads.

This closes bug "Prevent Throttling", which has been introduced as a result of adding the "Add Playlist Handling" enhancement, and was addressed in commit 9a34538.

So, How do You Handle Throttling?!

While the above Worx for Me!™ when it comes to handling throttling and potential IP address blocking in YouTube2Audiobook, you may have an alternative or better way.

Feel free to leave a comment or contribute to the GitHub repository, so we can make things better for everyone! A big thank you to everyone who did already contribute!
Think this is all rubbish, incomplete, massively overcomplicated, or simply the wrong tool for the job?! Send me an email at dominic AT how-hard-can-it.be and teach me something new!

As always, prove me wrong and I'll buy you a pint!