Search code examples
pythonpython-imaging-libraryinstagram

Can't upload some photos to instagram by instabot


I can't upload photos some photos to Instagram using instabot. Some pictures are uploaded fine and some are not. The ones I can't upload are the ones I edit using "Pillow". Here is my code and after than I'll show you what I tried.

My photo editing function that uses Pillow:

def make_square(im, min_size=1080, fill_color=(255, 255, 255)):
    #here getting the width and the height of the picture and after that adjusting it's size for it to fit on a 1080px picture perfectly
    width, height = im.size
    ratio = 1080 / width
    width = width + 0.00
    height = height + 0.00
    width = width * ratio
    height = height * ratio
    height = math.floor(height)
    width = math.floor(width)
    im = im.resize((width, height)) #resizing the picture to width 1080
    #here is some code i got online to create a white picture then paste my picture on top of it to make the picture square
    x, y = im.size
    size = max(min_size, x, y)
    new_im = Image.new('RGBA', (size, size), fill_color)
    new_im.paste(im, (int((size - x) / 2), int((size - y) / 2)))
    return new_im # returning the new image so that I can save and upload

Here is my other function to upload picture to instagram :

from instabot import Bot
def UPhoto(Image, Caption):
    bot = Bot()
    bot.login(username = "username", password="password")
    time.sleep(0.2)
    try:
        if bot.upload_photo(Image, caption=Caption):
            return True
        else:
            return False
    except:
        return False

when I run the upload photo I get this error:

FOUND: w:1080 h:1080 r:1.0 2020-09-12 16:00:53,680 - ERROR - Photo Upload failed with the following response: <Response [400]> 2020-09-12 16:00:53,682 - INFO - Photo 'Post.png' is not uploaded. 2020-09-12 16:00:53,683 - INFO - Total requests: 54

what I tried:

  • I tried to send the photo to my phone using whatsapp and Post it to instagram using my phone and it worked
  • I tried uploading photo to whatsapp then downloading it, it downloads as jpeg, then I tried Posting it to instagram and it worked
  • I tried changing file extension and uploading it but that didn't work
  • I tried upload the picture as it is without editing it using Pillow and it worked for some and others not depending if the photo dimensions are acceptable by instagram or not
  • I tried copying picture and then Posting it but that didn't work
  • I tried editting the same picture with scikit image but that didn't work too

Basically that's all I wish you could help, Thanks!


Solution

  • Solved! Converted the Image to "JPEG" and everything worked out great. using :

    new_im = new_im.convert("RGB")