CoWIN Vaccination slot booking telegram bot with auto captcha resolver & alerting feature.Now, never miss a slot.

Overview

COWIN VACCINATION SLOT AUTO BOOKING

(Bot with captcha solving & alerting capabilities. Never miss the vaccine slot.)

June-10-2021/ 0030 hrs: 23 successfully booked, 34 still searching. PAN INDIA

Cowin-AutoBot

HOW IT WORKS

  • Your computer will act as a server to update messages & recieve messages from telegram bot.
  • This automation script, gathers the recieved messages from the user & checks the details on COWIN portal.
  • Your phone (Telegram app) will act as a client to recieve messages sent from the computer.
  • If your computer stops or your script stops on computer, you will not see any updates on telegram, neither it will search for any slots.
  • You need to constantly respond if you recieve any alerts on telegram as notification.


Personally, we have used this & we (me, Srishti) got vaccinated, hope it helps you as well.



This automation subscribes to the telegram bot. Once registered mobile number is entered, it gets the cowin-session using otp provided by the user. While maintaining the valid user session, it tries to find a vaccination slot for the selected user & selected calendar. It checks for preferences such as vaccine type, state, pincode, district, paid/free & whether to auto-book the slot or not. Once slot is found, it tries booking it by randomly selecting the slot & resolving the captcha.


Pre-requisites:

  1. Computer/Laptop/CPU - capable of running python & having access to internet.
  2. Internet connection - Only with Indian ISP providers.
  3. Smart phone - with telegram app
  4. Registered on COWIN-portal - Add all the non-vaccinated members in here.

Create BOT (in Telegram)

This is a one time activity. If you already have a bot & its token, you can proceed to Installation step.

  • On Mobile/Phone open telegram app:
    • Search for @BotFather userbot.
      • type /newbot
      • Enter any desired name for the bot
      • Enter the unique username for the bot
      • if username is valid, confirmation message from @BotFather with token should come. If not, keep on trying different usernames until you get the token message. Please see the image for clarification.
    • Once it is created, say hi to your bot.

Installation

This is a one time activity.

  1. Download the source code from the following link- - https://github.com/shashankbafna/cowin-vaccination-book-slot/archive/refs/heads/main.zip
  2. Unzip & Extract the zip downloaded.
  • if you are on windows 10 & have adminitrator rights:
    • right click on setup.ps1 & Run with PowerShell
    • Installation completed, you can skip all the below steps. Proceed to Startup, 2nd step.
  • else if you do not have windows 10 or Admin rights, continue following the below steps.
    1. Go inside the Extracted folder ->src
    2. Install latest python if not already present from the link mentioned in Pre-requisites - Do not forget to check Add Python 3.7 to Path/Environment variable while installing (MANDATORY)
    3. Go inside the Extracted folder ->src
    4. In the The Address bar, which is located at the top of File Explorer as shown below, displays the path of the currently selected folder, type "cmd" - image
    5. This will open the command prompt with the location of script src.
    6. Type the following command in command prompt (just opened in above step) to install the dependent packages to run this script. - pip install -r ../requirements.txt - Optional if you want to run above command to install above dependencies in a virtual env ->Only for advanced python users. - image

STARTUP Script (on computer):

If installation is done manually, proceed with step 1 else contine from step 2.

  1. Type below command in command prompt (already opened during installation) python ./Booking.py

    • Follow the on screen instructions after starting the script. image
  2. Goto Mobile telegram app:

    • Make sure, you have said hi to your newly created bot.
    • Search for user @CowinAutoBot & click or type /start. -> click SubscribeID link.
    • After that it should ask for bot token message, which you have recieved from @BotFather bot Check this screenshot for further clarification.

      MANDATORY (after startup)
  • MAKE SURE THAT SCRIPT Keeps RUNNING ON LAPTOP, else you will not see updates on telegram. You need to follow steps for "Startup" if script exits.
  • ALSO MAKE SURE TO ENTER OTP as asked in the telegram bot, else session will not continue, you may need to follow steps for "Startup" again.

    Now respond to your bot in telegram.


SELECTION & FEATURES:

  • Inputs:
    • In Telegram, your messages act as input to the script. Mind the caps/digits/case of characters while entering.
    • Index numbers are mentioned in front of the selections like in front of your name, in front of states, in front of districts etc.
    • Mostly, the inputs are one time effort, as once entered, this will be saved in a file for future run.
    • If timeout happens, i.e. user doesnot respond within 100 sec from the time when bot's message arrives.
      • Manual input can be given from keyboard but only on computer.
    • Below are the list of Inputs gathered for the first run.
      • Enter the phone number
      • Enter OTP
      • Enter comma seperated index numbers of beneficiares
      • Search using pincode or State/District
        • Enter pincodes/ Index number of State, followed by Index number of Districts.
      • How frequent the request should be sent to COWIN portal to find out the slot availability from APIs.
      • Search for a week from when? today, tomorrow or date?
      • Fee preferences? Free or Paid?
      • Auto booking? yes-please or no

Share and Feedback

I will not mind sharing a cup of coffee TEA

Must Read - 1st Para: https://apisetu.gov.in/public/marketplace/api/cowin/cowin-public-v2

Futurescope:

  1. As I had an ios phone, It was not possible to automate otps, however, it is possible to automate otp transmission via android.
    • This results in entering the otp every 15 mins, to continue the session for searching the slots.
    • This requires constant response from the user when notified either via computer beep or telegram notification.
  2. Inputs & outputs on telegram can be beautified, right now, I have just pushed them from console.
  3. Exception handling for inputs & url requests.

Special thanks to:

  1. pallupz: For sourcing the raw python code. : https://github.com/pallupz/covid-vaccine-booking/
  2. COWIN: For providing open APIs. : https://www.cowin.gov.in/
  3. Telegram: For providing open APIs. : https://web.telegram.org/
  4. Python: Life without you is not possible. : https://www.python.org/
  5. Lastly my wife: Srishti (@ournotesfromtheroads): For being my guinea pig :(https://www.instagram.com/ournotesfromtheroads/)

DISCLAIMER: USE IT AT YOUR OWN RISK.

  • This is a make-shift automation for booking the slot which was not possible manually due to the significant ratio for availability of vaccines & People in our country.
  • I am not a developer but an engineer/ Script writer. Consider this before making any comments or giving any advices.
  • Feel free to give suggestions, Also, please copy & enhance the code if you want.
    • Make sure to let me know, hopefully, I can also help.

Lastly, goes without saying: once you get your shot, please do help out any underprivileged people around you who may not have a laptop or the know-how. For instance any sort of domestic help, or the staff in your local grocery store, or literally the thousands of people who don't have the knowledge or luxury we do.

SCREENSHOTS:

Owner
Shashank Bafna
Shashank Bafna
Monetize your apps with KivAds using Google AdMob api.

KivAds(WIP) Monetize your apps with KivAds using Google AdMob api. KivAds uses the latest version of Google AdMob sdk(version 20.0.0). KivAds exposes

Guhan Sensam 16 Nov 05, 2022
this synchronizes my appearances with my calendar

Josh's Schedule Synchronizer Here's the "problem:" I use a spreadsheet to maintain all my public appearances. I check the spreadsheet as often as poss

Josh Long 2 Oct 18, 2021
Python Proof of Concept for retrieving Now Playing on YouTube Music with TabFS

Youtube Music TabFS Python Proof of Concept for retrieving Now Playing on YouTube Music with TabFS. music_information = get_now_playing() pprint(music

Junho Yeo 41 Nov 06, 2022
Bot Auto Chess.com

Bot Auto Chess.com Is a suggestion for chess moves on the chess.com platform. The available features are: chess suggestions and moves automatically. i

Tn. Ninja 34 Jan 01, 2023
A Python wrapper around the Pushbullet API to send different types of push notifications to your phone or/and computer.

pushbullet-python A Python wrapper around the Pushbullet API to send different types of push notifications to your phone or/and computer. Installation

Janu Lingeswaran 1 Jan 14, 2022
API para realizar parser de frases

NLP API Simple api to parse and apply some preprocessing steps in portuguses phrases (pt_BR) This api uses the great FastAPI and spaCy packages! Usage

⟠ Rodolfo De Nadai 1 Dec 28, 2021
A Tool to scrape URLs for a given domain from wayback machine, Commoncrawl and OTX Alienvault

Mr_URL Mr.URL fetches known URLs for a given domain from Wayback Machine, Commoncrawl and OTX Alienvault. It also finds old versions of any given URL

Stinger 9 Sep 05, 2022
Live Coding - Mensageria na AWS com Amazon SNS e Amazon SQS

Live Coding - Mensageria na AWS com Amazon SNS e Amazon SQS Repositório para o Live Coding do dia 08/12/2021 Serviços utilizados Amazon SNS Amazon SQS

Cassiano Ricardo de Oliveira Peres 3 Mar 01, 2022
A light weight Python library for the Spotify Web API

Spotipy A light weight Python library for the Spotify Web API Documentation Spotipy's full documentation is online at Spotipy Documentation. Installat

Paul Lamere 4.2k Jan 06, 2023
This Discord bot is to give timely notifications to Students in the Lakehead CS 2021 Guild

Discord-Bot Goal of Project The purpose of this Discord bot is to give timely notifications to Students in the Lakehead CS 2021 Guild. How can I contr

8 Jan 30, 2022
A code that can make an account bump your discord server 24/7!

BumpCord A code that can make an account bump your discord server 24/7! The main.py is the main file. keep_alive.py prevents your repl from going to s

Phantom 28 Aug 20, 2022
Discord py bot that plays magic the gathering.

Klunker Discord py bot that can play magic the gathering Bug Hunter Hello Bug Hunters. To help out with production of this bot, we need help catching

Aiden Castillo 0 Apr 25, 2022
A file-based quote bot written in Python

Let's Write a Python Quote Bot! This repository will get you started with building a quote bot in Python. It's meant to be used along with the Learnin

1 Dec 07, 2021
A Telegram bot written in python.

telegram_bot This bot is currently a beta project. Features A telegram bot which can: Send current COVID-19 cases/stats of Germany Send current worth

HuhnCares 1 Jan 11, 2022
Updated version of A discord token/password grabber thats grabs all of their tokens, passwords, credit card + alot more

Updated version of A discord token/password grabber thats grabs all of their tokens, passwords, credit card + alot more

Rdimo 556 Aug 05, 2022
This is a unofficial library for making bots in rubika.

rubika this is a unofficial library for making bots in rubika using this library you can make your own0 rubika bot and control that those bots that ma

Bahman 50 Jan 02, 2023
Pack up to 3MB of data into a tweetable PNG polyglot file.

tweetable-polyglot-png Pack up to 3MB of data into a tweetable PNG polyglot file. See it in action here: https://twitter.com/David3141593/status/13719

David Buchanan 2.4k Dec 29, 2022
Mailjet API implementation in Python

READ THIS FIRST!! This repository isn't compatible with the current Mailjet API (v3) and, as a consequence, is considered deprecated and won't undergo

Rick van Hattem 18 Oct 21, 2022
Louis Manager Bot With Python

✨ Natsuki ✨ Are You Okay Baby I'm Natsuki Unmaintained. The new repo of @TheNatsukiBot is public. ⚡ (It is no longer based on this source code. The co

Team MasterXBots 1 Nov 07, 2021