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)

Most upvoted comments

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:

from instapy_cli import client

username = '' #Username Goes Here
password = '' #Password Goes Here

content = './t.png'
with client (username, password) as cli:
    cli.upload(content)

Error Obtained:

[IG] not found cookie/cookie_file >> login as default
Error parsing error response: Expecting value: line 1 column 1 (char 0)
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 "pg.py", line 8, in <module>
    cli.upload(content)
  File "C:\Users\RJ\Desktop\NewTest\lib\site-packages\instapy_cli\cli.py", line 153, in upload
    raise IOError("Unable to upload.")
OSError: Unable to upload.

Environment:

  • Python version 3.7.3
  • Instapy-CLI version 0.0.12
  • Windows 10 machine

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)

will you upload just photos? you should look, maybe helpful https://paste.ubuntu.com/p/mxyYmBpryK/

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?

Has anyone been able to work this out?

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.