<?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[Tech, Tips, How-To and More! - Bhawani Garg]]></title><description><![CDATA[I love to build, fix, and create things. I’m a Web Designer &amp; Developer by profession.]]></description><link>https://blog.bhawanigarg.com</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1655390121799/zEqyxwN2g.png</url><title>Tech, Tips, How-To and More! - Bhawani Garg</title><link>https://blog.bhawanigarg.com</link></image><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 02:35:30 GMT</lastBuildDate><atom:link href="https://blog.bhawanigarg.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[How to Download Threads Videos in Your Mobile/Computer?]]></title><description><![CDATA[ThreadsTap.com is an online tool to download videos from Meta's newly launched social media app, Threads. Here you can download videos on the thread app on your device in a few simple steps. There is no limit on the number of downloads and the tool d...]]></description><link>https://blog.bhawanigarg.com/how-to-download-threads-videos</link><guid isPermaLink="true">https://blog.bhawanigarg.com/how-to-download-threads-videos</guid><category><![CDATA[Threads]]></category><category><![CDATA[downloader]]></category><category><![CDATA[video downloader]]></category><category><![CDATA[Threads Downloader]]></category><dc:creator><![CDATA[Bhawani Garg]]></dc:creator><pubDate>Fri, 21 Jul 2023 07:23:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1689923998589/c291944b-6c89-4be6-b645-4fc708695a92.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a target="_blank" href="http://ThreadsTap.com"><strong>ThreadsTap.com</strong></a> is an online tool to download videos from Meta's newly launched social media app, Threads. Here you can download videos on the thread app on your device in a few simple steps. There is no limit on the number of downloads and the tool doesn't charge anything for the same.  </p>
<p>ThreadsTap is a user-friendly platform to download videos from threads. It is very secure and efficient as well. Wasting data over app installation is also not a necessity to use this tool, it can be used to download Threads video from any Android or iOS device including mobile phones, tablets, laptops and many others as well.</p>
<h3 id="heading-how-to-download-videos-amp-photos-from-threadsnethttpthreadsnet">How to Download Videos &amp; Photos from <a target="_blank" href="http://Threads.net">Threads.net</a>:</h3>
<p>There are two ways how you can download videos and photos from <a target="_blank" href="http://Threads.net">Threads.net</a>!</p>
<ol>
<li><p>Open <a target="_blank" href="http://threads.net">threads.net</a> and visit any post that contains the video or photo, copy its url into your clipboard and paste it in <a target="_blank" href="https://threadstap.com">ThreadsTap.com</a>'s input box and click on download button.</p>
<p> <img src="https://threadstap.com/s1.png" alt /></p>
</li>
<li><p>Replace <a target="_blank" href="http://threads.net"><strong>threads.net</strong></a> inside the post link with <a target="_blank" href="http://ttthreads.net"><strong>ttthreads.net</strong></a> (2 extra t's) and hit enter.</p>
<p> <img src="https://threadstap.com/s2.png" alt /></p>
</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[How To Use "Instagram Downloader API v2"?]]></title><description><![CDATA[Please use v1 now :  https://blog.bhawanigarg.com/instagram-downloader-free-api
Now you can build your own Instagram downloader website using our free API. Our API supports everything from Instagram.com for example photos, videos, reels, stories and ...]]></description><link>https://blog.bhawanigarg.com/instagram-downloader-api-v2</link><guid isPermaLink="true">https://blog.bhawanigarg.com/instagram-downloader-api-v2</guid><category><![CDATA[instagram]]></category><category><![CDATA[APIs]]></category><category><![CDATA[downloader]]></category><dc:creator><![CDATA[Bhawani Garg]]></dc:creator><pubDate>Thu, 15 Dec 2022 05:46:36 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1671083062121/A0j0XqlvtH.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong><mark>Please use v1 now : </mark></strong> <a target="_blank" href="https://blog.bhawanigarg.com/instagram-downloader-free-api"><strong><mark>https://blog.bhawanigarg.com/instagram-downloader-free-api</mark></strong></a></p>
<p>Now you can build your own Instagram downloader website using our free API. Our API supports everything from <a target="_blank" href="http://Instagram.com">Instagram.com</a> for example photos, videos, reels, stories and more.</p>
<p>I will be changing the old API with the new version, so anyone using the old and unstable version should switch to the new and stable version.</p>
<h1 id="heading-how-to-use-it">How to use it?</h1>
<p>API Link: <code>https://api.bhawanigarg.com/social/instagram/?link=&amp;cookie=</code></p>
<p>Available variables: <strong>link</strong> &amp; <strong>cookie</strong></p>
<p>Available methods: <strong>GET &amp; POST</strong></p>
<p><strong>Link</strong>: This is a string collection of all URLs that will be sent to our system.</p>
<p><strong>Cookie</strong>[BASE 64 ENCODED]: This will send an "Instagram cookie" to us.</p>
<h1 id="heading-how-to-get-instagram-cookie">How To Get Instagram Cookie?</h1>
<p>Open your instagram account then open console and refresh the page. Rest is in the video below.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/6MFyCRNR5AI?controls=0"></iframe>

<p><strong>Your Instagram cookie should look like this before encoding:</strong></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1671112052796/oBY-YWAcQ.png" alt class="image--center mx-auto" /></p>
<p><strong>And should look like this after encoding it in base64:</strong></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1671112129520/_r07hzWNk.png" alt class="image--center mx-auto" /></p>
<p><strong>So your final link should look like this</strong>:</p>
<p><code>https://api.bhawanigarg.com/social/instagram/?link=https://www.instagram.com/thebhawanigarg/&amp;cookie=YW5kcm9.......lZckVhODt8fA==</code></p>
<p><em>I have removed the full cookie from the above URL, it was just to show you.</em></p>
<p>Works with Instagram's Photos, Videos, Stories, DP, Highlights, IGTV and Reels!</p>
<p><strong><em><mark>To-Do List:</mark></em></strong><br />1. <em>Ability to add proxies while sending requests.</em><br />2. <em>Ability to add user-agent while sending requests.</em></p>
<p><em>Please feel free to mail me for anything else at <mark>hi@bhawanigarg.com</mark></em></p>
]]></content:encoded></item><item><title><![CDATA[How to Find Hidden Great Domain Names?]]></title><description><![CDATA[A good domain name is important for several reasons. First, it helps people find your website easily and quickly. A domain name that is easy to remember and easy to spell can make it more likely that people will remember your website and visit it aga...]]></description><link>https://blog.bhawanigarg.com/how-to-find-hidden-great-domain-names</link><guid isPermaLink="true">https://blog.bhawanigarg.com/how-to-find-hidden-great-domain-names</guid><category><![CDATA[#domains]]></category><category><![CDATA[dropped domains]]></category><category><![CDATA[expired domains]]></category><dc:creator><![CDATA[Bhawani Garg]]></dc:creator><pubDate>Sun, 11 Dec 2022 14:07:25 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1670767162199/CxVsBkLie.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A good domain name is important for several reasons. First, it helps people find your website easily and quickly. A domain name that is easy to remember and easy to spell can make it more likely that people will remember your website and visit it again in the future.</p>
<p>Second, a good domain name can help improve your search engine rankings. Search engines use the words in your domain name as one of the factors when determining the relevance of your website for a particular search query. Therefore, having keywords in your domain name can help improve your search engine rankings for those keywords.</p>
<p>Third, a good domain name can help establish your brand and build trust with your audience. A domain name that is easy to remember and easy to spell can make it more likely that people will remember your brand and associate it with your website.</p>
<p>Overall, a good domain name should be easy to remember, easy to spell, and relevant to your brand and your website's content. It should also be short, simple, and unique.</p>
<p>When choosing a domain name, it is important to avoid using numbers, hyphens, and other special characters. These can make your domain name harder to remember and harder to spell, and they can also make it more difficult for people to find your website.</p>
<p>It is also important to avoid using words that are too similar to other domain names or trademarks. This can lead to confusion and can also result in legal issues.</p>
<p>Finally, it is important to choose a domain name that is easy to read and easy to pronounce. This can help people remember your domain name and make it more likely that they will visit your website.</p>
<p>You can use tools like <a target="_blank" href="https://brandate.io">Brandate.io</a> to receive amazing domain names directly to your inbox.</p>
<p>In summary, a good domain name should be easy to remember, easy to spell, relevant to your brand and your website's content, short, simple, and unique. By avoiding numbers, hyphens, and other special characters, and by avoiding words that are too similar to other domain names or trademarks, you can help ensure that your domain name is effective and successful.</p>
]]></content:encoded></item><item><title><![CDATA[Make Beautiful And Prettified Code Screenshots By Just Sending A POST or GET Request]]></title><description><![CDATA[Provides ray.so as a REST API version. Make beautiful and prettified code screenshots by just sending a POST or GET request.
https://rayso.herokuapp.com/api
Parameters

Using GET Request /
It uses query parameters.
https://rayso.herokuapp.com/api?cod...]]></description><link>https://blog.bhawanigarg.com/make-beautiful-screenshots</link><guid isPermaLink="true">https://blog.bhawanigarg.com/make-beautiful-screenshots</guid><category><![CDATA[Screenshot]]></category><category><![CDATA[APIs]]></category><dc:creator><![CDATA[Bhawani Garg]]></dc:creator><pubDate>Mon, 11 Jul 2022 03:57:11 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1657511748946/G8_v20I6K.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Provides <a target="_blank" href="https://ray.so">ray.so</a> as a REST API version. Make beautiful and prettified code screenshots by just sending a POST or GET request.</p>
<pre><code><span class="hljs-attribute">https</span>:<span class="hljs-comment">//rayso.herokuapp.com/api</span>
</code></pre><h3 id="heading-parameters">Parameters</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1657511331777/OwFBiXwNzU.png" alt="Untitled.png" /></p>
<h3 id="heading-using-get-request">Using GET Request /</h3>
<p>It uses query parameters.</p>
<pre><code>https:<span class="hljs-regexp">//rayso</span>.herokuapp.com/api?code=console.log(%22Hello%20World%22)%3B&amp;language=javascript&amp;title=Test
</code></pre><h3 id="heading-using-post-request">Using POST Request /</h3>
<p><strong>Body</strong> is JSON with these params:</p>
<pre><code>{
    <span class="hljs-attr">"code"</span>: <span class="hljs-string">"console.log('Hello World');"</span>,
    <span class="hljs-attr">"language"</span>: <span class="hljs-string">"javascript"</span>,
    <span class="hljs-attr">"title"</span>: <span class="hljs-string">"Test"</span>
}
</code></pre><p><strong>Example output</strong></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1657511435293/GiPbGSGvM.png" alt="68747470733a2f2f692e6962622e636f2f4c513338717a522f6170692e706e67.png" /></p>
<p><em>For collaboration or questions;
hi@bhawanigarg.com</em></p>
]]></content:encoded></item><item><title><![CDATA[How To Get A .edu Email (for free, obviously)]]></title><description><![CDATA[Yep, a proper guide (finally)
Tested by me literally 48 hours back.
Here you go.
Things you'll need: an e-mail address (not a tempmail), a fake identity , SSN validator , a clean record of all the data you use (i prefer saving the fake identity webpa...]]></description><link>https://blog.bhawanigarg.com/get-a-edu-email-for-free</link><guid isPermaLink="true">https://blog.bhawanigarg.com/get-a-edu-email-for-free</guid><category><![CDATA[education]]></category><category><![CDATA[email]]></category><category><![CDATA[tips]]></category><category><![CDATA[tricks]]></category><dc:creator><![CDATA[Bhawani Garg]]></dc:creator><pubDate>Thu, 30 Jun 2022 05:33:22 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1656567120726/hyUmSJSZ7.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-yep-a-proper-guide-finally">Yep, a proper guide (finally)</h2>
<p>Tested by me literally 48 hours back.</p>
<h1 id="heading-here-you-go">Here you go.</h1>
<p>Things you'll need: an e-mail address (not a tempmail), <a target="_blank" href="https://www.fakenamegenerator.com/advanced.php?t=region&amp;n%5B%5D=us&amp;gen=50&amp;age-min=19&amp;age-max=25">a fake identity</a> , <a target="_blank" href="https://www.ssnregistry.org/validate">SSN validator</a> , a clean record of all the data you use (i prefer saving the fake identity webpage as a pdf until i no longer need it, and some patience.</p>
<p>The procedure:</p>
<ol>
<li><p>Head to <a target="_blank" href="https://starnetb.lcc.edu/LCCB/bwskalog.P_DispLoginNon">this link</a> , go to first time user acount creation,</p>
</li>
<li><p>Input a login ID and a PIN (can be anything, just make sure you remember it).</p>
</li>
<li><p>In Application Type, choose First Time Attending College</p>
</li>
<li><p>Admission Term should be Summer 2022, and input the name you get from your fake identity (make sure it's a michigan address).</p>
</li>
<li><p>Input the address (tweak it a little according to the error, or just search the name of the street+city and you should get access to actual addresses easily). Check 'Yes' on the first box, 'No' on the second</p>
</li>
<li><p>Skip the post office details</p>
</li>
<li><p>Citizenship: US Citizen, Input your e-mail address twice, Add 4 digits to the end of the SSN on the fake identity validate it (link provided already), and remember it.</p>
</li>
<li><p>Select Gender according to your identity, Input Birthdate (this is important for later sign-ins), yes to michigan resident, no to military. Choose ethnicity as white because, well... America.</p>
</li>
<li><p>Google a High School in the city your fake lives in, choose any random date for your graduation, input GPA something okayish, i usually go with 3.5-3.8.</p>
</li>
<li><p>For your planned course study, pick whatever. I usually go for an Associate Degree.</p>
</li>
<li><p>Wait for 48 hours to get your login credentials.</p>
</li>
</ol>
<p>Enjoy :)</p>
]]></content:encoded></item><item><title><![CDATA[How I Created A PHP Instagram Bot To Automate My Instagram Activities!]]></title><description><![CDATA[Do you use Instagram? Do you want to know how to build an Instagram Bot?
This tutorial will teach you how to automate Instagram activities with the help of an Instagram bot.
Let's get started!
Prerequisites for making one (Bot)
Linux server
That's it...]]></description><link>https://blog.bhawanigarg.com/automate-my-instagram-activities</link><guid isPermaLink="true">https://blog.bhawanigarg.com/automate-my-instagram-activities</guid><category><![CDATA[instagram]]></category><category><![CDATA[bot]]></category><category><![CDATA[bots]]></category><category><![CDATA[PHP]]></category><dc:creator><![CDATA[Bhawani Garg]]></dc:creator><pubDate>Mon, 27 Jun 2022 06:38:03 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/unsplash/KWZa42a1kds/upload/v1656310231103/MkN4G1c2r.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Do you use Instagram? Do you want to know how to build an Instagram Bot?</p>
<p>This tutorial will teach you how to automate Instagram activities with the help of an Instagram bot.</p>
<p><em>Let's get started!</em></p>
<h1 id="heading-prerequisites-for-making-one-bot">Prerequisites for making one (Bot)</h1>
<pre><code>Linux <span class="hljs-keyword">server</span>
</code></pre><p>That's it. Now let's dive straight into the code.</p>
<h2 id="heading-first-file-instagramclassphp">First file (instagram.class.php)</h2>
<pre><code><span class="hljs-meta">&lt;?php</span>
set_time_limit(<span class="hljs-number">0</span>);
<span class="hljs-class"><span class="hljs-keyword">Class</span> <span class="hljs-title">Instagram</span>
</span>{
<span class="hljs-keyword">public</span> $username;
<span class="hljs-keyword">public</span> $password;
<span class="hljs-keyword">private</span> $guid;
<span class="hljs-keyword">private</span> $my_uid;
<span class="hljs-keyword">private</span> $userAgent = <span class="hljs-string">'Instagram 6.21.2 Android (19/4.4.2; 480dpi; 1152x1920; Meizu; MX4; mx4; mt6595; en_US)'</span>;
<span class="hljs-keyword">private</span> $instaSignature =<span class="hljs-string">'25eace5393646842f0d0c3fb2ac7d3cfa15c052436ee86b5406a8433f54d24a5'</span>;
<span class="hljs-keyword">private</span> $instagramUrl = <span class="hljs-string">'https://i.instagram.com/api/v1/'</span>;

<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">__construct</span>(<span class="hljs-params"></span>)    </span>{    
    <span class="hljs-keyword">if</span> (!extension_loaded(<span class="hljs-string">'curl'</span>)) trigger_error(<span class="hljs-string">'php_curl extension is not loaded'</span>, E_USER_ERROR);    
}

<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">__destruct</span>(<span class="hljs-params"></span>)    </span>{

}    

<span class="hljs-keyword">private</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">Request</span>(<span class="hljs-params">$url, $post, $post_data, $cookies</span>) </span>{    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, <span class="hljs-keyword">$this</span>-&gt;instagramUrl . $url);
    curl_setopt($ch, CURLOPT_USERAGENT, <span class="hljs-keyword">$this</span>-&gt;userAgent);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, <span class="hljs-number">1</span>);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, <span class="hljs-number">1</span>);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, <span class="hljs-number">0</span>);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, <span class="hljs-number">0</span>);

    <span class="hljs-keyword">if</span>($post) {
        curl_setopt($ch, CURLOPT_POST, <span class="hljs-number">1</span>);
        <span class="hljs-keyword">if</span> ((version_compare(PHP_VERSION, <span class="hljs-string">'5.5'</span>) &gt;= <span class="hljs-number">0</span>)) {
        }         
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
    }

    <span class="hljs-keyword">if</span>($cookies) {
        curl_setopt($ch, CURLOPT_COOKIEFILE,   dirname(<span class="hljs-keyword">__FILE__</span>). <span class="hljs-string">'/cookies.txt'</span>);            
    } <span class="hljs-keyword">else</span> {
        curl_setopt($ch, CURLOPT_COOKIEJAR,  dirname(<span class="hljs-keyword">__FILE__</span>). <span class="hljs-string">'/cookies.txt'</span>);
    }
    $response = curl_exec($ch);
    $http = curl_getinfo($ch, CURLINFO_HTTP_CODE);    
    curl_close($ch);    
    <span class="hljs-keyword">return</span> <span class="hljs-keyword">array</span>($http, $response);
}

<span class="hljs-keyword">private</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">GenerateGuid</span>(<span class="hljs-params"></span>) </span>{
    <span class="hljs-keyword">return</span> sprintf(<span class="hljs-string">'%04x%04x-%04x-%04x-%04x-%04x%04x%04x'</span>, 
            mt_rand(<span class="hljs-number">0</span>, <span class="hljs-number">65535</span>), 
            mt_rand(<span class="hljs-number">0</span>, <span class="hljs-number">65535</span>), 
            mt_rand(<span class="hljs-number">0</span>, <span class="hljs-number">65535</span>), 
            mt_rand(<span class="hljs-number">16384</span>, <span class="hljs-number">20479</span>), 
            mt_rand(<span class="hljs-number">32768</span>, <span class="hljs-number">49151</span>), 
            mt_rand(<span class="hljs-number">0</span>, <span class="hljs-number">65535</span>), 
            mt_rand(<span class="hljs-number">0</span>, <span class="hljs-number">65535</span>), 
            mt_rand(<span class="hljs-number">0</span>, <span class="hljs-number">65535</span>));
}

<span class="hljs-keyword">private</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">GenerateSignature</span>(<span class="hljs-params">$data</span>) </span>{
    <span class="hljs-keyword">return</span> hash_hmac(<span class="hljs-string">'sha256'</span>, $data, <span class="hljs-keyword">$this</span>-&gt;instaSignature); 
}

<span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">Login</span>(<span class="hljs-params">$username, $password</span>) </span>{
    <span class="hljs-keyword">$this</span>-&gt;username = $username;
    <span class="hljs-keyword">$this</span>-&gt;password = $password;    
    <span class="hljs-keyword">$this</span>-&gt;guid = <span class="hljs-keyword">$this</span>-&gt;GenerateGuid();
    $device_id = <span class="hljs-string">"android-"</span> . <span class="hljs-keyword">$this</span>-&gt;guid;    
    $data = <span class="hljs-string">'{"device_id":"'</span>.$device_id.<span class="hljs-string">'","guid":"'</span>.<span class="hljs-keyword">$this</span>-&gt;guid.<span class="hljs-string">'","username":"'</span>. <span class="hljs-keyword">$this</span>-&gt;username.<span class="hljs-string">'","password":"'</span>.<span class="hljs-keyword">$this</span>-&gt;password.<span class="hljs-string">'","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"}'</span>;
    $sig = <span class="hljs-keyword">$this</span>-&gt;GenerateSignature($data);
    $data = <span class="hljs-string">'signed_body='</span>.$sig.<span class="hljs-string">'.'</span>.urlencode($data).<span class="hljs-string">'&amp;ig_sig_key_version=6'</span>;    
    $myid = <span class="hljs-keyword">$this</span>-&gt;Request(<span class="hljs-string">'accounts/login/'</span>, <span class="hljs-literal">true</span>, $data, <span class="hljs-literal">false</span>);    
    $decode = json_decode($myid[<span class="hljs-number">1</span>], <span class="hljs-literal">true</span>); 
    <span class="hljs-keyword">$this</span>-&gt;my_uid = $decode[<span class="hljs-string">'logged_in_user'</span>][<span class="hljs-string">'pk'</span>];
    print_r(<span class="hljs-keyword">$this</span>-&gt;my_uid);    
    <span class="hljs-keyword">return</span> $myid;
}

<span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">IsFriend</span>(<span class="hljs-params">$user_id</span>) </span>{
    $device_id = <span class="hljs-string">"android-"</span>.<span class="hljs-keyword">$this</span>-&gt;guid;
    $data = <span class="hljs-string">'{"device_id":"'</span>.$device_id.<span class="hljs-string">'","guid":"'</span>. <span class="hljs-keyword">$this</span>-&gt;guid .<span class="hljs-string">'","uid":"'</span>.<span class="hljs-keyword">$this</span>-&gt;my_uid.<span class="hljs-string">'","module_name":"feed_timeline","user_id":"'</span>.$user_id.<span class="hljs-string">'","source_type":"5","filter_type":"0","extra":"{}","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"}'</span>;   
    $sig = <span class="hljs-keyword">$this</span>-&gt;GenerateSignature($data);
    $new_data = <span class="hljs-string">'signed_body='</span>.$sig.<span class="hljs-string">'.'</span>.urlencode($data).<span class="hljs-string">'&amp;ig_sig_key_version=6'</span>;
    <span class="hljs-keyword">return</span> <span class="hljs-keyword">$this</span>-&gt;Request(<span class="hljs-string">'friendships/show/'</span>.$user_id.<span class="hljs-string">'/'</span>, <span class="hljs-literal">true</span>, $new_data, <span class="hljs-literal">true</span>);    
}        

<span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">PostComment</span>(<span class="hljs-params">$caption, $media_id</span>) </span>{
    $caption = preg_replace(<span class="hljs-string">"/\r|\n/"</span>, <span class="hljs-string">""</span>, $caption);
    $device_id = <span class="hljs-string">"android-"</span>.<span class="hljs-keyword">$this</span>-&gt;guid;
    $data = <span class="hljs-string">'{"device_id":"'</span>.$device_id.<span class="hljs-string">'","guid":"'</span>. <span class="hljs-keyword">$this</span>-&gt;guid .<span class="hljs-string">'","uid":"'</span>.<span class="hljs-keyword">$this</span>-&gt;my_uid.<span class="hljs-string">'","comment_text":"'</span>.trim($caption).<span class="hljs-string">'","source_type":"5","filter_type":"0","extra":"{}","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"}'</span>;   
    $sig = <span class="hljs-keyword">$this</span>-&gt;GenerateSignature($data);
    $new_data = <span class="hljs-string">'signed_body='</span>.$sig.<span class="hljs-string">'.'</span>.urlencode($data).<span class="hljs-string">'&amp;ig_sig_key_version=6'</span>;
    <span class="hljs-keyword">return</span> <span class="hljs-keyword">$this</span>-&gt;Request(<span class="hljs-string">'media/'</span>.$media_id.<span class="hljs-string">'/comment/'</span>, <span class="hljs-literal">true</span>, $new_data, <span class="hljs-literal">true</span>);    
} 

<span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">PostLike</span>(<span class="hljs-params">$media_id</span>) </span>{
    $device_id = <span class="hljs-string">"android-"</span>.<span class="hljs-keyword">$this</span>-&gt;guid;
    $data = <span class="hljs-string">'{"device_id":"'</span>.$device_id.<span class="hljs-string">'","guid":"'</span>. <span class="hljs-keyword">$this</span>-&gt;guid .<span class="hljs-string">'","uid":"'</span>.<span class="hljs-keyword">$this</span>-&gt;my_uid.<span class="hljs-string">'","module_name":"feed_timeline","d":"0","source_type":"5","filter_type":"0","extra":"{}","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"}'</span>;   
    $sig = <span class="hljs-keyword">$this</span>-&gt;GenerateSignature($data);
    $new_data = <span class="hljs-string">'signed_body='</span>.$sig.<span class="hljs-string">'.'</span>.urlencode($data).<span class="hljs-string">'&amp;ig_sig_key_version=6'</span>;
    <span class="hljs-keyword">return</span> <span class="hljs-keyword">$this</span>-&gt;Request(<span class="hljs-string">'media/'</span>.$media_id.<span class="hljs-string">'/like/'</span>, <span class="hljs-literal">true</span>, $new_data, <span class="hljs-literal">true</span>);        
} 

<span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">PostFollow</span>(<span class="hljs-params">$user_id</span>) </span>{
    $device_id = <span class="hljs-string">"android-"</span>.<span class="hljs-keyword">$this</span>-&gt;guid;
    $data = <span class="hljs-string">'{"device_id":"'</span>.$device_id.<span class="hljs-string">'","guid":"'</span>. <span class="hljs-keyword">$this</span>-&gt;guid .<span class="hljs-string">'","uid":"'</span>.<span class="hljs-keyword">$this</span>-&gt;my_uid.<span class="hljs-string">'","module_name":"feed_timeline","user_id":"'</span>.$user_id.<span class="hljs-string">'","source_type":"5","filter_type":"0","extra":"{}","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"}'</span>;   
    $sig = <span class="hljs-keyword">$this</span>-&gt;GenerateSignature($data);
    $new_data = <span class="hljs-string">'signed_body='</span>.$sig.<span class="hljs-string">'.'</span>.urlencode($data).<span class="hljs-string">'&amp;ig_sig_key_version=6'</span>;
    <span class="hljs-keyword">return</span> <span class="hljs-keyword">$this</span>-&gt;Request(<span class="hljs-string">'friendships/create/'</span>.$user_id.<span class="hljs-string">'/'</span>, <span class="hljs-literal">true</span>, $new_data, <span class="hljs-literal">true</span>);    
}

<span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">SearchTag</span>(<span class="hljs-params">$tag</span>) </span>{
    $device_id = <span class="hljs-string">"android-"</span>.<span class="hljs-keyword">$this</span>-&gt;guid;
    $data = <span class="hljs-string">'{"device_id":"'</span>.$device_id.<span class="hljs-string">'","guid":"'</span>. <span class="hljs-keyword">$this</span>-&gt;guid .<span class="hljs-string">'","timezone_offset":"43200","uid":"'</span>.<span class="hljs-keyword">$this</span>-&gt;my_uid.<span class="hljs-string">'","q":"'</span>.$tag.<span class="hljs-string">'","count":"50","source_type":"5","filter_type":"0","extra":"{}","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"}'</span>;   
    $sig = <span class="hljs-keyword">$this</span>-&gt;GenerateSignature($data);
    $new_data = <span class="hljs-string">'signed_body='</span>.$sig.<span class="hljs-string">'.'</span>.urlencode($data).<span class="hljs-string">'&amp;ig_sig_key_version=6'</span>;    
    <span class="hljs-keyword">return</span> <span class="hljs-keyword">$this</span>-&gt;Request(<span class="hljs-string">'feed/tag/'</span>.$tag.<span class="hljs-string">'/'</span>, <span class="hljs-literal">true</span>, $new_data, <span class="hljs-literal">true</span>);        
}


}
<span class="hljs-meta">?&gt;</span>
</code></pre><h2 id="heading-2nd-file-instagramconfigphp">2nd file (instagram_config.php)</h2>
<p>You need to edit the details with yours.</p>
<pre><code><span class="hljs-meta">&lt;?php</span>
set_time_limit(<span class="hljs-number">0</span>);
$searchtag = <span class="hljs-keyword">array</span>(<span class="hljs-string">'hashtag1'</span>, <span class="hljs-string">'hashtag2'</span>, <span class="hljs-string">'hashtag3'</span>);
$hello = <span class="hljs-keyword">array</span>(<span class="hljs-string">'Before-Tag-Msg'</span>, <span class="hljs-string">'Before-Tag-Msg-2'</span>);
$praise = <span class="hljs-keyword">array</span>(<span class="hljs-string">'After-Tag-Msg'</span>, <span class="hljs-string">' After-Tag-Msg'</span>, <span class="hljs-string">' After-Tag-Msg'</span>);
<span class="hljs-meta">?&gt;</span>
</code></pre><h3 id="heading-so-your-comment-will-look-like-this">So your comment will look like this:</h3>
<pre><code>Before<span class="hljs-operator">-</span>Tag<span class="hljs-operator">-</span>Msg @Username After<span class="hljs-operator">-</span>Tag<span class="hljs-operator">-</span>Msg
</code></pre><h3 id="heading-3rd-file-and-the-final-one">3rd file and the final one:</h3>
<p> <strong>You need to replace your instagram username and password here</strong></p>
<pre><code><span class="hljs-meta">&lt;?php</span>
set_time_limit(<span class="hljs-number">0</span>);
<span class="hljs-keyword">include</span> <span class="hljs-string">'instagram.class.php'</span>;
<span class="hljs-keyword">include</span> <span class="hljs-string">'instagram_config.php'</span>;

$username = <span class="hljs-string">'USERNAME'</span>;   <span class="hljs-comment">// your instagram username</span>
$password = <span class="hljs-string">'PASSWORD'</span>;  <span class="hljs-comment">// your instagram password </span>

$insta = <span class="hljs-keyword">new</span> instagram();
$response = $insta-&gt;Login($username, $password);


<span class="hljs-keyword">if</span>(strpos($response[<span class="hljs-number">1</span>], <span class="hljs-string">"Sorry"</span>)) {
    <span class="hljs-keyword">echo</span> <span class="hljs-string">"Request failed, there's a chance that this proxy/ip is blocked"</span>;
    print_r($response);
    <span class="hljs-keyword">exit</span>();
}         
<span class="hljs-keyword">if</span>(<span class="hljs-keyword">empty</span>($response[<span class="hljs-number">1</span>])) {
    <span class="hljs-keyword">echo</span> <span class="hljs-string">"Empty response received from the server while trying to login"</span>;
    print_r($response);    
    <span class="hljs-keyword">exit</span>();    
}

$search = $searchtag[array_rand($searchtag)];
$res = $insta-&gt;SearchTag($search);

$decode = json_decode($res[<span class="hljs-number">1</span>], <span class="hljs-literal">true</span>); 
$i=<span class="hljs-number">0</span>;

<span class="hljs-keyword">foreach</span>($decode[<span class="hljs-string">'items'</span>] <span class="hljs-keyword">as</span> $data)  {
    $i++;
    $d = explode(<span class="hljs-string">"_"</span>, $data[<span class="hljs-string">'id'</span>]);
    $media_id = $d[<span class="hljs-number">0</span>];
    $user_id = $d[<span class="hljs-number">1</span>];
    $like_count = $data[<span class="hljs-string">'like_count'</span>];
    $comment_count = $data[<span class="hljs-string">'comment_count'</span>];
    $username = $data[<span class="hljs-string">'user'</span>][<span class="hljs-string">'username'</span>];
    $haslike = $data[<span class="hljs-string">'has_liked'</span>];

    <span class="hljs-keyword">if</span> ($i&lt;<span class="hljs-number">40</span>)  {
        <span class="hljs-keyword">if</span> ($like_count &lt; <span class="hljs-number">20</span> )  {
            $fakecomment = $hello[array_rand($hello)].<span class="hljs-string">' '</span>.<span class="hljs-string">'@'</span>. $username . <span class="hljs-string">' '</span> . $praise[array_rand($praise)];
            $fres=$insta-&gt;IsFriend($user_id);
            $friend = json_decode($fres[<span class="hljs-number">1</span>], <span class="hljs-literal">true</span>); 

                <span class="hljs-comment">// auto follow, like and comment</span>
            <span class="hljs-keyword">if</span> (!$friend[<span class="hljs-string">'following'</span>] &amp;&amp; !$friend[<span class="hljs-string">'is_private'</span>] &amp;&amp; !$friend[<span class="hljs-string">'outgoing_request'</span>])  {
                $res=$insta-&gt;PostFollow($user_id);
                <span class="hljs-keyword">echo</span> <span class="hljs-string">"&lt;br&gt; after follow"</span>;
                <span class="hljs-keyword">if</span> (!$haslike) {
                    <span class="hljs-keyword">echo</span> <span class="hljs-string">"&lt;br&gt; All auto comment, post, Like"</span>;
                    sleep(rand(<span class="hljs-number">3</span>,<span class="hljs-number">10</span>));
                    $res=$insta-&gt;PostLike($media_id);
                    sleep(rand(<span class="hljs-number">3</span>,<span class="hljs-number">10</span>));
                    $res=$insta-&gt;PostComment($fakecomment, $media_id);    
                    sleep(rand(<span class="hljs-number">3</span>,<span class="hljs-number">10</span>));    
                }                
            } <span class="hljs-keyword">else</span> {
                <span class="hljs-comment">//only like</span>
                    <span class="hljs-keyword">if</span> (!$haslike) {
                    <span class="hljs-keyword">echo</span> <span class="hljs-string">"&lt;br&gt; Like only"</span>;
                    sleep(rand(<span class="hljs-number">3</span>,<span class="hljs-number">10</span>));
                    $res=$insta-&gt;PostLike($media_id);    
                    }
            }
        }
    }
    <span class="hljs-keyword">unset</span>($res);    
}

<span class="hljs-keyword">exit</span>();
<span class="hljs-meta">?&gt;</span>
</code></pre><p>Upload all the files in your linux server after editing and add a cron to the file "instagram_follow.php" for every 3Hours (Preferred). </p>
<p>For the first time when you will run this bot your instagram account may ask to confirm the location.
I personally use this script for my account <a target="_blank" href="https://instagram.com/MarwadiWriter">@MarwadiWriter</a></p>
<p>You can download all the files from <a target="_blank" href="https://api.bhawanigarg.com/dl/files/instagram_bot.zip">here</a></p>
<p><strong>PS: I don't take any responsibilities of your instagram accounts. Use at your own risk!
</strong></p>
]]></content:encoded></item><item><title><![CDATA[Add "Donate via UPI" Button To Your Website]]></title><description><![CDATA[What keeps us away from signing to a website or an app often? 
The common factor here can be the fear that your personal and plastic card details will be stored by them. There are other factors too, but this part always occupies a significant role. B...]]></description><link>https://blog.bhawanigarg.com/add-donate-via-upi-button-to-your-website</link><guid isPermaLink="true">https://blog.bhawanigarg.com/add-donate-via-upi-button-to-your-website</guid><category><![CDATA[UPI]]></category><dc:creator><![CDATA[Bhawani Garg]]></dc:creator><pubDate>Tue, 14 Jun 2022 13:12:11 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1655217517280/tmLzvx2GYu.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>What keeps us away from signing to a website or an app often?</strong> </p>
<p>The common factor here can be the fear that your personal and plastic card details will be stored by them. There are other factors too, but this part always occupies a significant role. Before understanding what this website does for you, ensure that you read this blog till last to thoroughly understand the whole set of features.</p>
<p>Generating funds has been a common practice for half-decade, but the procedure demanded for it is too tedious. Last time while checking a start-up firm, I saw a button, “Donate here to let us grow.” The concept was pretty good as there was no lower or upper limit by which anyone could help. Utilizing such ideas properly may help anyone go ahead in their direction without indulging in the traditional loan process.</p>
<p><strong>How exactly does it work?</strong></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1655212269459/GlnrbEDCc.png" alt="logo.png" class="image--center mx-auto" />
It is a process to generate a donation button through different tab names. This button can come with interesting names like buy me a coffee, buy me a samosa, treat me a pizza, etc. People can visit this button and donate accordingly.</p>
<p>How is it simple to do it through <a target="_blank" href="https://tipme.at/">TipMe.at</a>?</p>
<p>Generally, doing such steps demands a lot of coding but with TipMe.at, no such coding is essential. Above all, you are not required to share personal details apart from your name, the registered email ID you are willing to communicate, and the button name. The process is as simple as it sounds while reading this blog. After that, add your UPI to transfer the amount to your respective account directly. No middleman or sharing of your account details or personal details or documents is applicable here.</p>
<p>The amount gets credited to your account after the code is generated. Whenever a person donates through this process, the amount will hit your account immediately. No data collection process is here, and they take special care of your privacy.</p>
<p>Often the most significant problem lies that while indulging in such a process, people must compromise with their personal details, but no such privacy breach occurs here. Just think about some exciting widget names and hit your account today! Do share with us ideas and strategies if you have any to make us serve you better! It is simpler than opening a new email account with a unique user name! Nothing should stop you from starting a donating button after reading that this service comes for free from this website!</p>
]]></content:encoded></item><item><title><![CDATA[Generate Clean & Beautiful Screenshots with Free API]]></title><description><![CDATA[Title says it all! 
Just made a free API to generate beautiful screenshots, you just have to enter your website url and it will instantly create a screenshot for you.
Example Screenshot:

API url: 
https://api.bhawanigarg.com/social/screenshot/?url=h...]]></description><link>https://blog.bhawanigarg.com/generate-clean-and-beautiful-screenshots-with-free-api</link><guid isPermaLink="true">https://blog.bhawanigarg.com/generate-clean-and-beautiful-screenshots-with-free-api</guid><category><![CDATA[APIs]]></category><dc:creator><![CDATA[Bhawani Garg]]></dc:creator><pubDate>Tue, 14 Jun 2022 12:56:18 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1655217674823/t-UHnCGTz.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Title says it all! </p>
<p>Just made a free API to generate beautiful screenshots, you just have to enter your website url and it will instantly create a screenshot for you.</p>
<p>Example Screenshot:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1655211225286/FhIRONn9p.png" alt="download.png" class="image--center mx-auto" /></p>
<p>API url: </p>
<pre><code><span class="hljs-attribute">https</span>:<span class="hljs-comment">//api.bhawanigarg.com/social/screenshot/?url=https://domain.com</span>
</code></pre><p>You can replace "https://domain.com" with your website url and it will generate a screenshot with a transparent background. If you want to change the color of the background then you can do it by simply adding &amp;color=(Color-Code).</p>
<p>Example API url with custom background color: </p>
<pre><code><span class="hljs-attribute">https</span>:<span class="hljs-comment">//api.bhawanigarg.com/social/screenshot/?url=https://domain.com&amp;color=ffffff</span>
</code></pre><p>ffffff is the color code here and you can use any color you want.</p>
<p>Hope you will like it!</p>
]]></content:encoded></item></channel></rss>