Closed AKwoKWH closed 4 years ago
what command are you using the bot or the bot.api ?
Actually no different. No matter I call from "bot." or "bot.api.", it is ending up directed to the function "upload_photo" in "api_photo.py"
The "bot.py" import "upload_photo" from "bot_photo.py"
from .bot_photo import download_photo, download_photos, upload_photo
Then the "bot_photo.py" calling the api function
result = self.api.upload_photo(
photo,
caption,
upload_id,
from_video,
options=options
)
Did the merge fixed the issue for you ? I'm still having a "415 Unsupported Media Type" error when trying to upload a JPG photo with instabot==0.75 (latest version)
Did the merge fixed the issue for you? I'm still having a "415 Unsupported Media Type" error when trying to upload a JPG photo with instabot==0.75 (latest version)
I'm having the same issue with 0.75 (and before) and 0.76 as well. On two different accounts. The issue appears one time before, about a month ago, and disappeared by itself after about a week (not sure about the 415 error code at the time though). I hoped this would do the same this time, but it's been more than a week now, and I still got the 415 error.
Everything else seems to work fine though (follow, unfollow, retrieving feed, followers, etc...)
I call directly from the API but going through the bot result in the same error. Is everybody having this error or is it only for some of us?
@pierre-cmd - I'm having the same issue. I had the issue a month ago and I'm having it again as well.
I have same problem since November 20th
Yes, the issue still occurs. Suspect that due to change in instagram private api, I couldn't upload photo in other libraries, e.g.Instagram Private API. Similar issue is raised: #215
I original think it was the API endpoint path changed (aka the path "upload/photo/") but the 415 error make me think that it might be the post data format or parameter changed
We are sending something like below:
data = {
"upload_id": upload_id,
"_uuid": self.uuid,
"_csrftoken": self.token,
"image_compression": '{"lib_name":"jt","lib_version":"1.3.0","quality":"87"}',
"photo": (
"pending_media_%s.jpg" % upload_id,
photo_bytes,
"application/octet-stream",
{"Content-Transfer-Encoding": "binary"},
),
}
dataEncode = MultipartEncoder(data, boundary=self.uuid).to_string()
self.send_request(endpoint = 'upload/photo/', post=dataEncode, with_signature=False)
I original think it was the API endpoint path changed (aka the path "upload/photo/") but the 415 error make me think that it might be the post data format or parameter changed
When I tried to trace upload_photo last week, it strikes me how fast it failed, almost immediately. It doesn't feel like it got the time to upload the data (but maybe it's just super fast), so it could actually fit with an endpoint change.
I have no clue of how to find the new endpoint though or find what's wrong in the data
Something interesting is happening this morning with 0.76, instead of failing cleaningly with a 415 error, upload_photo crashes while it try to decode the Json
File "/usr/local/lib/python3.7/site-packages/instabot/api/api.py", line 791, in upload_photo self, photo, caption, upload_id, from_video, force_resize, options File "/usr/local/lib/python3.7/site-packages/instabot/api/api_photo.py", line 181, in upload_photo with_signature=False File "/usr/local/lib/python3.7/site-packages/instabot/api/api.py", line 549, in send_request response_data = json.loads(response.text) File "/usr/local/lib/python3.7/json/init.py", line 348, in loads return _default_decoder.decode(s) File "/usr/local/lib/python3.7/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/local/lib/python3.7/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
It crashes twice on my Nas, so I have only this callstack, but I'll try to reproduce the issue on my computer to see what the response look likes.
Anybody else is having this change of behavior this morning?
Hello there, The bot doesn't work for uploading for around 2 weeks now. The only message is still "XXX is not uploaded" - does someone has this issue? is it still a API endpoint issue? Any updates on this? Thanks.
The error when uploading photo change from 415 to 400 2 days ago. Besides that I have no clue :-/
Thanks pierre. I was curious because it looks like mgp25 found the solution.
Thanks pierre. I was curious because it looks like mgp25 found the solution.
mgp25 very sorry but there is the same problem
So this is not true ?
seem no one hv idea on the new api endpoint or what hv to be pass to the endpoint to get the pics successfully post. Anyone aware if there are other services/bot which provide auto upload works?
@AKwoKWH
protected function _uploadResumablePhoto
Instagram Android now use this path:
$endpoint = sprintf('https://i.instagram.com/rupload_igphoto/%s_%d_%d', $internalMetadata->getUploadId(), 0, Utils::hashCode($photoDetails->getFilename()) );
@ostrichegret How does "%s%d%d" refer to?
@JoeHO888 %$ = upload id %d = just 0 %d = hash of the filename
example: https://i.instagram.com/rupload_igphoto/195273407953726_0_-1886599878
more complete code is on the link: https://github.com/mgp25/Instagram-API/blob/3ec188af003a294803d8b17c22f1f588585384f5/src/Request/Internal.php
I haven't change the code to python too
I'm trying it myself, to python it would translate to something like
response = self.send_request( f("rupload_igphoto/{upload_id}0{some_way_to_compute_the_hash}', dataEncoded, login=True, with_signature=False )
But I have two problems so far, the first one is that I don't know how to compute this hash, the second one is that send_request seems to append 'https://i.instagram.com/api/v1/' to all request.
Ok so I wrote a dirty hack to avoid the /api/v1/ issue
And I used this piece of code to hash the file name : http://garage.pimentech.net/libcommonPython_src_python_libcommon_javastringhashcode/ which should produce java hashcode as Utils::hashCode in the php version
So when I try to upload insta_crop.jpg, I obtain the following url : https://i.instagram.com/rupload_igphoto/1576232319397_0_540101735 and it fails with a 400 error :-/
@ostrichegret the weird thing is that my hash is shorter than the one in your example. Did you provide a valid hash or just a random number as an example?
Maybe there is an issue with my hash function, or I don't hash the right string...
@pierre-cmd the hash length is same, just change some numbers
@pierre-cmd the hash length is same, just change some numbers
Mine is 9 digit, your is 10 and negative, could be perfectly normal that two different string result in two different hash length, but since mine doesn't seem to works, I'm trying to find out what I missed
@pierre-cmd Try this, if you can get the same result: upload.jpg = -244209036
@pierre-cmd Try this, if you can get the same result: upload.jpg = -244209036
Thanks! :) My hash function returns the same result. The problem must come from somewhere else
Any word on this? Is it an API change then? Has anyone found the correct route and fix?
Any word on this? Is it an API change then? Has anyone found the correct route and fix?
It's been fixed in 0.85 (not by me)
yeah, it is fixed in the lastest version. Thanks @adw0rd However, the video one seem still have issues. It return success, but the video never appear in the profile.
@AKwoKWH - Yeah, I'm having the same issue. Photos are uploading but videos are not.
@pierre-cmd Any idea on what could be causing this?
@untitled3000 I uploading video everyday without problems
Could be that you are soft blocked for uploading video's. When the bot reports no failes you are unable to upload due to a soft ban (https://github.com/instagrambot/instabot/issues/1194 looking into this now in this issue)
Please follow the guide below
x
into all the boxes [ ] relevant to your issue (like so [x]).Before submitting an issue, make sure you have:
Purpose of your issue?
Code:
Error/Debug Log:
Describe your issue
I search the Error Code , the 415 means "Unsupported Media Type" It is NOT the API endpoint changed as we previously believed.
The photo to be uploaded is a "JPG" file, so it should be supported. I guess, there are issue in the request data causing the error