Comic-dl : A Little Python Script’s Journey

Comic-dl : A Little Python Script’s Journey

DISCLAIMER This is a very old blog I had written on my personal blog, just thought about moving it here on hashnode as well, with little updates.

I have been itching to write this one since the past 2 months. But, unfortunately I’ve been too busy with the Hackathons, college projects, side projects, learning new things , binge watching stuff on Netflix and basically wasting a lot of time . “Comic-dl” is literally the project that I put my most pride in. Comic-dl is a command line program to download comics and manga from various websites. The idea isn’t something new or fresh or exciting or anything. It’s just that it is the updated version and covers a lot of sites now. Over the time, I’ve invested a lot of my time (not the spare time) in building comic-dl.

For documentation purposes and some time when my juniors ask for my guidance on how to work on a project, how to get ideas and stuff, I think this will serve as a decent example of how your project can go from 0 stars to 50+ stars in an year. Okay, I get it, it’s not that cool, but it is still an achievement for me.

How did the idea of “comic-dl” came to my mind?

In my third year of B.Tech, when I thought I had a decent grasp of Python and web scrapping, I asked my friend and a frequent collaborator about “is there anything I should automate?” and this was our conversation (a gist) :

Me : Uh, so I think I’ve mastered web scrapping. I can scrap websites and download things, you know. I mean, automate things.

Ankit : And?

Me : Have any idea of what I can make? To automate things…?

Ankit : Hmmm, okay. Have you heard about this website.. readcomicsonline.to ? It’s basically a website that lets you read comics for free. Maybe make a downloader for it? Like take links and download all the chapters?

Me : Noice.

So, I checked that website inside out and made a simple script for it and called it “ ReadComicOnline Downloader “. This was literally the script that got a decent amount of attention from a lot of people and I was adding features, fixing issues and whatnot. Just a dedicated, heavy and slow downloader that supports just one website. Cool, I was really happy with it.

But, at the same time, I was also using this amazing tool called “ youtube-dl ” around the same time for various things. It then struck my mind… “Hold on a minute. Why don’t I make something similar, but for comics and manga? All in one? There are dedicated manga downloaders, but no decent comic downloader. And, there’s nothing that downloads everything. Would be a cool use-bait.”

Then, on 13th November, 2016, I developed “ comic-dl “. You can see that on that day, it only supported 3 websites and was very much limited and the code was…… eww.

More Stars, More Contributors

To my shock, within 2-3 days, I already had a few stars on the repository and I also received a Pull Request from shaggytwodope that had some PEP 8 fixes. I literally coded like a dork and didn’t follow PEP rules, because I didn’t know what PEP was, lol.

It was a slow start, however, I started adding more features in comic-dl and added few more websites and it caught some decent amount of attention. People were opening issues like crazy. Some were bugs, some were feature requests, some were website inclusion requests and it felt so good. I was working on comic-dl as if it was a commercial product. I mean, it felt so good that I built something and people were actually using it and enjoying it. My little tool is helping people.

On 2nd February, 2018 (when I originally wrote this blog ), the repository has 82 stars, 12 forks, total of 16 PRs, 87 successfully closed issues and 2 open issues. As of now, at the time of writing this article (28th, June 2021), the repository has 379 stars, 49 forks, total of 64 PRs, 184 successfully closed issues and 42 open issues (looool). These numbers aren’t THAT big, but it still feels like a little achievement for me.

From just downloading comics from 1 single website, comic-dl evolved as a decent command line tool to download content from multiple websites. Currently, comic-dl supports features like :

  • Downloads a Single Chapter and puts in a directory with the comic name, volume and chapter.
  • Downloads all the chapters available for a series.
  • Skips already downloaded files.
  • Conversion to “cbz” and “pdf”.
  • Auto downloading of chapters.
  • Range selection.
  • Sorting order.
  • Quality Selection.
  • Error Log Generation.
  • Searching and downloading manga right from the command line.

It also supports multiple websites now, like :

What About Now?

StrangeDOS is a frequent issue notifier, dsanchezseco has been a life saver (auto download function) for comic-dl and there are some generous people who also donated some $$ for the project itself. I never thought that this little side project would be here at this stage. I plan to add more websites and more features as I move on. Plus, I have some more plans in future for comic-dl and I’ll probably start working on them as soon as I get some time.

But, WHERE IS COMIC-DL?!

So much for a blog about a tool and I haven’t linked it properly. Well, you can find the source code of “ comic-dl ” on its Github Page and, windows binary could be located in the Release Section.