Tinderbot exists around interacting with two types of users.
-
Matches
Matches are profiles you have liked and whom have liked you back.
You are now able to send them messages, gifs, songs, your social media and much more. -
Geomatches
Geomatches are users that fulfill your criteria, such as distance, age and gender, and by whom you fullfill their criteria.
Seeing these profiles and thus 'breaking the first barrier of matching' is why we name these profiles geomatches.
First thing you'll have to do is import Session from tinderbot.session and create an active session.
In this session we can adjust settings or take actions, such as liking or scraping data.
from tinderbot.session import Session
session = Session()
Optional parameters
headless
: boolean
store_session
: boolean
proxy
: string
Example usage
headless might not work properly, so recommended to leave it on False.
store_session will store your cookies in a directory, so next time you don't need to login again.
proxy can be added using IP:PORT or HOST:PORT
session = Session(headless=False, store_session=True, proxy="23.23.23.23:3128")
Logging in can be done in one of the following ways.
- Using your Google-account: Your email must be verified
- Using your Facebook-account: Your Tinder must be connected to your Facebook
- Using your phone number: This will require you to manually enter your received code
session.login_using_google(email, password)
session.login_using_facebook(email, password)
Required parameters
email
: string
password
: string
Example usage
session.login_using_google("[email protected]", "password123")
session.login_using_facebook("[email protected]", "password123")
session.login_using_sms(country, phone_number)
Required parameters
country
: string
phone_number
: string
Example usage
Let's say your phone_number is +32401234567, then
country is needed to get the right prefix, in my case +32 and
phone_number is everything after the prefix (+32).
session.login_using_sms("Belgium", "401234567")
NOTE: this is not my phone number :)
Changing location used to be a paid for Tinder Plus feature. But no more!
We are now able to mask our position using geopositioning inside our browser.
session.set_custom_location(latitude, longitude)
Required parameters
latitude
: float
longitude
: float
Optional parameters
accuracy
: string
Note: By default, accuracy is 100%, which is recommended.
Example usage
In this example we set the location to the city Leuven in Belgium.
You can find the latitude and longitude of a location online; for example here.
session.set_custom_location(latitude=50.879829, longitude=4.700540, accuracy="100%")
# would be the same as simply
session.set_custom_location(latitude=50.879829, longitude=4.700540)
You can activate the option to receive an email whenever you get a match. The email, which you've used to login with, is being used as recepient. By default no emails are being sent. If you wish to receive emails you need to set this setting to True.
session.set_email_notifications(boolean)
Required parameters
boolean
: boolean
Example usage
session.set_email_notifications(True)
The distance radius function allows you to set the maximum allowed distance to your potential matches.
This setting requires you to be logged in on Tinder.
Note: the parameter passed is the distance to you in kilometers.
session.set_distance_radius(km)
Required parameters
km
: integer
Example usage
session.set_distance_radius(150)
First parameter is the minimum age, second parameter is the maximum age of the potential matches.
This setting requires you to be logged in on Tinder.
session.set_age_range(min, max)
Required parameters
min
: integer
max
: integer
Example usage
session.set_age_range(18, 25)
Click here to see what sexualities are allowed by Tinder.
This setting allows you to choose which gender you get to see and thus will be matched with.
This setting requires you to be logged in on Tinder.
from tinderbot.helpers.constants_helper import Sexuality
session.set_sexuality(type)
Required parameters
type
: (enum) sexuality
Example usage
session.set_sexuality(Sexuality.EVERYONE)
This setting allows you to match other people around the world.
This setting requires you to be logged in on Tinder.
session.set_global(boolean)
Required parameters
boolean
: boolean
Optional parameters
Note: Currently this option is not available yet in this project. Please open an issue for feature request if you'd want this feature to be made available.
language
: Click here to see what global languages are available.
Example usage
session.set_global(True)
Liking method has 4 optional parameters.
The amount, which is by default equal to 1, specifies how many times the like button should be pressed.
The ratio, which is by default 100%, is the chance the bot should press like or else dislike.
The sleep, which is by default 0 seconds, is the amount of seconds the bot should sleep between likes.
The randomize_sleep, which is by default True, if set to True, adds randomization to the provided time between likes.
These last 3 should make sure you don't get banned. :)
session.like()
Optional parameters
amount
: integer
ratio
: string
sleep
: integer
Example usage
session.like(amount=10, ratio="72.5%", sleep=1)
session.dislike()
Optional parameters
amount
: integer
Example usage
session.dislike(amount=25)
session.superlike()
Optional parameters
amount
: integer
Example usage
session.superlike(amount=2)
Your matches can be placed into two categories:
- New matches with whom you haven't exchanged messages with yet.
- Messaged matches with whom you have already interacted. These matches will be a list of objects of the class Match which is a childclass of the class Geomatch.
new_matches = session.get_new_matches()
old_matches = session.get_messaged_matches()
# getting all matches can be done by adding both together
matches = new_matches + old_matches
Optional parameters
amount
: amount
quickload
: boolean
Example usage
new_matches = session.get_new_matches(amount=100, quickload=True)
old_matches = session.get_messaged_matches(amount=15, quickload=False)
By default, all new and messaged matches are being loaded, although quite often it's more interesting to load only a handful matches. The amount of matches you want to fetch can be adjusted by specifying the amount of matches.
Note: quickload is True by default when no parameter is passed. This makes sure the loading happens two times faster while still getting most of the information, but only a few images of the match are loaded.
However when quickload is False, ALL images of the match are loaded.
Note: When quickload is False, loading your matches might take a while depending on how many matches you have.
This is because the session will iterate through every match and all their images one by one.
Another option, besides quickloading, to reduce loading time is to store these matches at the first run as illustrated here: Storing (geo)Matches
and then load them from there in future runs.
Get data name, age, bio, distance, home, study, passions, images... of the displayed geomatch and store it inside an object of the class Geomatch().
geomatch = session.get_geomatch()
Optional parameters
quickload
: boolean
Note: quickload is True by default when no parameter is passed. This makes sure the loading happens two times faster while still getting most of the information, but only a few images of the geomatch are loaded.
However when quickload is False, ALL images of the geomatch are loaded.
Every profile, also known as a (geo)match, can be stored locally.
Storing data can be useful for reducing runtime, for example when needing to fetch your matches.
matches = session.getAllMatches()
for match in matches:
session.store_local(match)
geomatch = session.get_geomatch()
session.store_local(geomatch)
Messages can be sent to matches.
Scrape your matches or fetch them from your locally stored json file.
id = match.get_chat_id()
name = match.get_name()
pickup_line = "Hey {}, you got look exactly like my future wife. ;)".format(name)
# send them a unique pick up line with their personal name
session.send_message(chatid=id, message=pickup_line)
GIFS can be sent to matches.
Scrape your matches or get them from your locally stored json file.
Sending a GIF will open the correct chat with your match, browse for the gif and send the first one that's being displayed.
id = match.get_chat_id()
session.send_gif(chatid=id, gifname="pizza")
Songs can be sent to matches.
Scrape your matches or get them from your locally stored json file.
Sending a song will open the correct chat with your match, browse for the song and send the first one that's being displayed.
id = match.get_chat_id()
session.send_song(chatid=id, songname="cutiepie")
Socials can be sent to matches.
Scrape your matches or get them from your locally stored json file.
There are different types of socials. Click here to see what types of social media or available.
id = match.get_chat_id()
session.send_socials(chatid=id, media=Socials.INSTAGRAM, value="Teeti.fm")
You can unmatch a match. BUT think twice before you do. Once you unmatch, there is no going back.
id = match.get_chat_id()
session.unmatch(chatid=id)
If you feel like you just want to dive right into the code and get started right away, this is where you need to be. :)
- Open the quickstart.py from the tinderbot directory.
- Fill in your credentials (email and password) to be able to login to Tinder.
- Change the quickstart script to your needs.
- Run the code.
If you want to scrape as much geomatches as possible,
then scraper.py will suit your needs better.