instapy-cli: [BUG] OSError: Unable to Upload
I cannot upload to Instagram with InstaPy-CLI using unchanged python scripts which used to work just 2 days ago.
I have two files (master.py and exec.py). I run exec.py to carry out the functions in master.py.
Master.py:
import urllib.request
from PIL import Image, ImageOps
from instapy_cli import client
from datetime import date
def get_item_shop():
url = "http://api2.nitestats.com/v1/shop/image?footer=USE%20CODE:%20%22DISTURBED%22"
urllib.request.urlretrieve(url, "itemshop.jpg")
def resize():
desired_size = 1728
im_pth = "itemshop.jpg"
im = Image.open(im_pth)
old_size = im.size # old_size[0] is in (width, height) format
ratio = float(desired_size)/max(old_size)
new_size = tuple([int(x*ratio) for x in old_size])
# use thumbnail() or resize() method to resize the input image
# thumbnail is a in-place operation
# im.thumbnail(new_size, Image.ANTIALIAS)
im = im.resize(new_size, Image.ANTIALIAS)
# create a new image and paste the resized on it
new_im = Image.new("RGB", (desired_size, desired_size), (30,30,30))
new_im.paste(im, ((desired_size-new_size[0])//2,
(desired_size-new_size[1])//2))
output_path = 'itemshop2.jpg'
new_im.save(output_path)
def post():
today = date.today()
d2 = today.strftime("%B %d, %Y")
heart = "\U00002764"
username = 'fbr.itemshop'
password = 'Albion0411'
cookie_file = 'cookie.json'
image = 'itemshop2.jpg'
text = 'Daily item shop for ' + d2 +'.' + '\r\n' + '\r\n' + 'Rate this item shop from 1-10!' + '\r\n' + '\r\n' + 'Use code: "Disturbed" to support me! ' + heart + '\r\n' + '#fortnite #itemshop #dailyitemshop #fortniteitemshop'
with client(username, password, cookie_file=cookie_file, write_cookie_file=True) as cli:
cookies = cli.get_cookie()
cli.upload(image, text)
Exec.py:
import master
import time
master.get_item_shop()
print("Item shop saved.")
time.sleep(5)
master.resize()
print("Image resized.")
time.sleep(5)
master.post()
print("Image posted.")
These scripts fetch the Fortnite Item Shop image from nitestats.com API, resizes it to 1:1 for IG, and uploads it. Saving the image and resizing still works, but posting to IG doesn’t. As the item shop refreshes every day at 00:00 for me, I use crontab on my RPi to schedule the running of these python scripts. It has worked in the past, so I know crontab has no errors. However, I set crontab to write to a log so that I could see if anything went wrong. Below is what I got.
Logs
This is what is outputted to a log when the scripts are functioning:
Item shop saved.
Image resized.
[IG] not found cookie/cookie_file >> login as default
SAVED: COOKIE_FOR_USER.json
Done.
Image posted.
And, when they’re not working:
Item shop saved.
Image resized.
[IG] re-use cookie from COOKIE_FOR_USER.json
Error is >>
Bad Request
Something went bad.
Please retry or send an issue on https://github.com/b3nab/instapy-cli
Traceback (most recent call last):
File "/home/pi/Downloads/ItemShopBot/exec.py", line 10, in <module>
master.post()
File "/home/pi/Downloads/ItemShopBot/master.py", line 57, in post
cli.upload(image, text)
File "/home/pi/.local/lib/python3.8/site-packages/instapy_cli/cli.py", line 153, in upload
raise IOError("Unable to upload.")
OSError: Unable to upload.
Env (please complete the following information):
- OS: Raspbian and Windows 10
- Python: 3.8
- instapy-cli Version: 0.0.12
I have searched Google for this issue, and the only thing I could find was saying that Instagram have declined my request to upload. I have attempted to run the code on Windows, which gave the same issue, with and without a VPN, with different Instagram accounts, reset the passwords, and tried to use the scripts with and without the cookie file. I am fairly new to Python and would appreciate any help possible.
About this issue
- Original URL
- State: open
- Created 5 years ago
- Reactions: 5
- Comments: 53 (1 by maintainers)
I’m facing the same issue as well. I’ve wrote a very simple code to upload an image called ‘t.png’ that’s in the same directory as my source code.
Source Code:
Error Obtained:
Environment:
I’d also like to note that I’ve done the modifications to media.py as @Karltroid recommended and I’m still facing the same issue. I’ve also tried to modify media.py as per #46 and that still didn’t help.
I solved the problem by uninstalling and then installing: (Ubuntu 18.04.3 with Python3)
pip uninstall instapy-cli pip install instapy-cli
(for python3 replace pip to pip3)
this is fantastic! thank you
@b3nab - I previously used this library for a project posting aerial photography to Instagram. Thank you for building it!
@RomjanHossain You can try if you want. 😄 The project is deprecated, lots of spammers on instagram and no one supported me (collaborations, PRs or donations). So I’m not supporting the project anymore. 🥂
As requested here’s image upload workaround using @roycebank code: https://github.com/pydemo/final_upload
Does anyone have a solution to this yet?
gave up on it and wrote new script using gist posted by @roycebank https://paste.ubuntu.com/p/mxyYmBpryK/
will you upload just photos? you should look, maybe helpful https://paste.ubuntu.com/p/mxyYmBpryK/
Update: It seems to me that as of now (November 2nd 2019 7:00am GMT) uploading works perfectly fine for myself.