<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Mini Projects]]></title><description><![CDATA[Mini Projects]]></description><link>https://machang.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 20:21:42 GMT</lastBuildDate><atom:link href="https://machang.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[WhatsApp Bulk Downloader — Automate Downloading Files]]></title><description><![CDATA[Problem
WhatsApp Web is great, but downloading many files one-by-one is a huge pain. I needed a way to bulk download files from a WhatsApp chat quickly without clicking hundreds of times.
Solution
By inspecting WhatsApp Web’s DOM, I wrote a short Jav...]]></description><link>https://machang.hashnode.dev/whatsapp-bulk-downloader-automate-downloading-files</link><guid isPermaLink="true">https://machang.hashnode.dev/whatsapp-bulk-downloader-automate-downloading-files</guid><category><![CDATA[miniprojects]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[automation]]></category><category><![CDATA[whatsapp]]></category><dc:creator><![CDATA[Doniel Tripura]]></dc:creator><pubDate>Tue, 22 Jul 2025 16:31:45 GMT</pubDate><content:encoded><![CDATA[<h1 id="heading-problem">Problem</h1>
<p>WhatsApp Web is great, but downloading many files one-by-one is a huge pain. I needed a way to bulk download files from a WhatsApp chat quickly without clicking hundreds of times.</p>
<h1 id="heading-solution">Solution</h1>
<p>By inspecting WhatsApp Web’s DOM, I wrote a short JavaScript snippet to automatically click all “Download” buttons for files in the chat, with a delay to avoid freezing the browser.</p>
<h1 id="heading-how-it-works">How It Works</h1>
<ul>
<li><p>Finds all visible download buttons using CSS selectors.</p>
</li>
<li><p>Clicks each button sequentially with a 1.5-second delay.</p>
</li>
<li><p>Lets the browser handle downloads automatically.</p>
</li>
</ul>
<h1 id="heading-code-snippet">Code Snippet</h1>
<pre><code class="lang-plaintext">const downloadButtons = Array.from(document.querySelectorAll('div[role="button"][title^="Download"]'));

console.log("Found", downloadButtons.length, "downloadable files");

downloadButtons.forEach((btn, i) =&gt; {
  setTimeout(() =&gt; {
    console.log("Clicking:", btn.title);
    btn.click();
  }, i * 1500);
});
</code></pre>
<h1 id="heading-what-i-learned">What I Learned</h1>
<ul>
<li><p>Inspecting the DOM is crucial for web automation.</p>
</li>
<li><p>Adding delays prevents crashes or browser overload.</p>
</li>
<li><p>JavaScript console scripts are a quick and powerful automation tool.</p>
</li>
</ul>
<h1 id="heading-github-repo">Github Repo</h1>
<p><a target="_blank" href="https://github.com/MachangDoniel/Mini-Projects/tree/main/Whatsapp-Bulk-Downloader">https://github.com/MachangDoniel/Mini-Projects/tree/main/Whatsapp-Bulk-Downloader</a></p>
]]></content:encoded></item></channel></rss>