Skip to content

Ensta v5.1.9 - Stable

Compare
Choose a tag to compare
@diezo diezo released this 12 Feb 09:35
· 120 commits to master since this release

Supported Actions

Tap on the headings to view code:

Proxy Support
from ensta import Host

host = Host(username, password, proxy={"http": "http://1.2.3.4", "https": "https://1.2.3.4"})
Username Password Login
from ensta import Host

host = Host(username, password)  # Email can also be used
SessionData Login
from ensta import SessionHost

# "session_data" is stored in "ensta-session.txt" file by default.
# you can also get it using "host.session_data"
host = SessionHost(session_data)
2FA Login

Authenticator App

from ensta import Host

# The key you got from Instagram when setting up your Authenticator App
key = "R65I7XTTHNHTQ2NKMQL36NCWKNUPBSDG"

host = Host(
    username,  # or email
    password,
    totp_token=key
)

SMS Based

No need to configure anything. Ensta will automatically ask for SMS OTP in the runtime.

Upload Photo (Single Post)
from ensta import Host

host = Host(username, password)

upload = host.get_upload_id("Picture.jpg")

host.upload_photo(upload, caption="Travelling 🌆")
Upload Multiple Photos (Single Post)
from ensta import Host

host = Host(username, password)

upload1 = host.get_upload_id("First.jpg")
upload2 = host.get_upload_id("Second.jpg")
upload3 = host.get_upload_id("Third.jpg")

host.upload_photos([upload1, upload2, upload3], caption="Travelling 🌆")
Upload Reel
from ensta import Host

host = Host(username, password)

host.upload_reel(
    video_path="Video.mp4",
    thumbnail_path="Thumbnail.jpg",
    caption="Enjoying the winter! ⛄"
)
Check Username Availability
from ensta import Guest

guest = Guest()

print(guest.username_availability("theusernameiwant"))
Fetch Profile Data
from ensta import Host

host = Host(username, password)
profile = host.profile("leomessi")

print(profile.full_name)
print(profile.biography)
print(profile.follower_count)
Username to UserID, and vice versa.
from ensta import Host

host = Host(username, password)

username = host.get_username(427553890)
uid = host.get_uid("leomessi")

print(username, uid)
Follow / Unfollow Users
from ensta import Host

host = Host(username, password)

print(host.follow("leomessi"))
print(host.unfollow("leomessi"))
Generate Followers / Followings List
from ensta import Host

host = Host(username, password)

followers = host.followers("leomessi", count=100)  # Want full list? Set count to '0'
followings = host.followings("leomessi", count=100)  # Want full list? Set count to '0'

for user in followers:
    print(user.username)

for user in followings:
    print(user.username)
Switch Account Type - Public/Private
from ensta import Host

host = Host(username, password)

print(host.switch_to_public_account())
print(host.switch_to_private_account())
Fetch Someone's Feed
from ensta import Host

host = Host(username, password)
posts = host.posts("leomessi", 100)  # Want full list? Set count to '0'

for post in posts:
    print(post.caption_text)
    print(post.like_count)    
Add Comment on Posts
from ensta import Host

host = Host(username, password)

post_id = host.get_post_id("https://www.instagram.com/p/Czr2yLmroCQ/")

host.comment("Looks great!", post_id)
Like/Unlike Posts
from ensta import Host

host = Host(username, password)

post_id = host.get_post_id("https://www.instagram.com/p/Czr2yLmroCQ/")

host.like(post_id)
host.unlike(post_id)
Fetch Post's Likers
from ensta import Host

host = Host(username, password)

post_id = host.get_post_id("https://www.instagram.com/p/Czr2yLmroCQ/")
likers = host.likers(post_id)

for user in likers.users:
    print(user.username)
    print(user.profile_picture_url)
Change Profile Picture
from ensta import Mobile

mobile = Mobile(username, password)

mobile.change_profile_picture("image.jpg")
Edit Biography, Display Name
from ensta import Host

host = Host(username, password)

host.change_display_name("Lionel Messi")
host.change_bio("Athlete")
Fetch Your Email, Gender, Birthday, etc.
from ensta import Host

host = Host(username, password)
me = host.private_info()

print(me.email)
print(me.gender)
print(me.birthday)
Block/Unblock User
from ensta import Mobile

mobile = Mobile(username, password)

mobile.block(123456789)  # Use UserID
mobile.unblock(123456789)  # Use UserID

Any missing feature? Please raise an issue.

Stories

Upload Story (Picture)
from ensta import Mobile

mobile = Mobile(username, password)

upload_id = mobile.get_upload_id("image.jpg")

mobile.upload_story(upload_id)
Upload Story (Picture) + Link Sticker
from ensta import Mobile
from ensta.structures import StoryLink

mobile = Mobile(username, password)

upload_id = mobile.get_upload_id("image.jpg")

mobile.upload_story(upload_id, entities=[
    StoryLink(title="Google", url="https://google.com")
])

Direct Messaging

Send Message (Text)
from ensta import Mobile

mobile = Mobile(username, password)  # Or use email
direct = mobile.direct()

direct.send_text("Hello", thread_id)
Send Message (Picture)
from ensta import Mobile

mobile = Mobile(username, password)  # Or use email
direct = mobile.direct()

media_id = direct.fb_upload_image("image.jpg")

direct.send_photo(media_id, thread_id)