Задать вопрос
vikkyshostak
@vikkyshostak
< This head full of dreams.

Загрузка фото через Instagram Private API на Python. Почему ошибка Bad Request: Uploaded image isn't in the right format?

Приветствую.

Пользуюсь вот этой библиотекой https://github.com/ping/instagram_private_api для всяких Инстаграм-штук на своём сайте. Недавно потребовалось ещё добавить upload фото. Делаю всё, как в документации, но постоянно возникает ошибка (код 400): Bad Request: Uploaded image isn't in the right format.

Погуглив, понял, что это стандартная ошибка самого Инстаграма, а не библиотеки.

Вот мой код:

from instagram_private_api import Client

image = bytes('/path/to/image.jpg', encoding='utf-8')
sizes = (800, 800) # пробовал разные: 480х480, 600х600, 1080х1080

instagram = Client('my_username', 'password')
instagram.post_photo(image, sizes, 'This is #test')

Понятно, что Инстаграму не нравится фото, которое в него грузят, но... я уже перепробовал самые разные фото (как по размерам, так и по качеству). В том числе и те, которые сделал на мобильник, то есть даже не фотошопленные, с медиа-датой и прочим — всё равно эта же ошибка.

Что можно с этим сделать?
Буду рад толковым комментариям! Спасибо.
  • Вопрос задан
  • 1818 просмотров
Подписаться 3 Средний 6 комментариев
Решения вопроса 1
vikkyshostak
@vikkyshostak Автор вопроса
< This head full of dreams.
Разобрался сам + спасибо группе Python SPb в Телеграм.

Вот верный код:

from instagram_private_api import Client

image = urlopen(tour.image)
photo_data = image.read()
sizes = (800, 800)

instagram = Client('my_username', 'password')
instagram.post_photo(photo_data, sizes, 'This is #test')
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@heahoh
Full stackoverflow developer
"You can't upload pictures from your computer, but if you're able to get your pictures to your mobile device that supports the native Instagram App, then you can upload pictures from your mobile library."

Piyush, Instagram, Partner Engineering

Возможно имеет смысл поснифать запрос на upload image с какого-либо мобильного устройства и попытаться такой запрос подделать
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы