instapy-cli icon indicating copy to clipboard operation
instapy-cli copied to clipboard

Error when uploading video - "AttributeError: 'NoneType' object has no attribute 'extension'"

Open LAMike310 opened this issue 5 years ago • 10 comments

I cloned the repo and tried to run the example "upload-a-video.py":

from instapy_cli import client
  
username = 'xxxxx'
password = 'xxxxx'
video = '../docs/video-sample-upload.mp4'
text = 'This will be the caption of your video.' + '\r\n' + 'You can also use hashtags! #hash #tag #now'

with client(username, password) as cli:
    cli.upload(video, text)

But I got an error in the console that said:

Reusing settings: ig.json
Traceback (most recent call last):
  File "upload-a-video.py", line 9, in <module>
    cli.upload(video, text)
  File "/Library/Python/2.7/site-packages/instapy_cli/cli.py", line 105, in upload
    media = Media(file)
  File "/Library/Python/2.7/site-packages/instapy_cli/media.py", line 29, in __init__
    self.check_type()
  File "/Library/Python/2.7/site-packages/instapy_cli/media.py", line 32, in check_type
    self.media_ext = filetype.guess(self.media_path).extension
AttributeError: 'NoneType' object has no attribute 'extension'

Any idea what I'm doing wrong?

LAMike310 avatar Apr 28 '19 22:04 LAMike310

please, add relevant informations such as python and instapy-cli version Also, I suggest you to update to latest release of instapy-cli 0.0.10 and re-try.

b3nab avatar May 06 '19 12:05 b3nab

Hello. I've got the same sort of error on .mp4 file in ubuntu. Pictures are send successfully without errors.

instapy-cli 0.0.10 | python 3.5.2 Reusing settings: User_ig.json

Traceback (most recent call last): File "/usr/local/bin/instapy", line 10, in sys.exit(main()) File "/home/digital/.local/lib/python3.5/site-packages/instapy_cli/main.py", line 44, in main cli.upload(options.file, text, story) File "/home/digital/.local/lib/python3.5/site-packages/instapy_cli/cli.py", line 109, in upload media = Media(file) File "/home/digital/.local/lib/python3.5/site-packages/instapy_cli/media.py", line 29, in init self.check_type() File "/home/digital/.local/lib/python3.5/site-packages/instapy_cli/media.py", line 32, in check_type self.media_ext = filetype.guess(self.media_path).extension AttributeError: 'NoneType' object has no attribute 'extension'_

KuHuKD2 avatar May 09 '19 12:05 KuHuKD2

Hi, I dont know if this issues is resolved or not. I just got the same issues

python ver : 3.6.8 | instapy-cli 0.0.12

Traceback (most recent call last): File "c:\users\oce\anaconda3\envs\insta\lib\runpy.py", line 193, in run_module_as_main "main", mod_spec) File "c:\users\oce\anaconda3\envs\insta\lib\runpy.py", line 85, in run_code exec(code, run_globals) File "C:\Users\oce\Anaconda3\envs\insta\Scripts\instapy.exe_main.py", line 9, in File "c:\users\oce\anaconda3\envs\insta\lib\site-packages\instapy_cli_main.py", line 44, in main cli.upload(options.file, text, story) File "c:\users\oce\anaconda3\envs\insta\lib\site-packages\instapy_cli\cli.py", line 116, in upload media = Media(file) File "c:\users\oce\anaconda3\envs\insta\lib\site-packages\instapy_cli\media.py", line 29, in init self.check_type() File "c:\users\oce\anaconda3\envs\insta\lib\site-packages\instapy_cli\media.py", line 32, in check_type self.media_ext = filetype.guess(self.media_path).extension AttributeError: 'NoneType' object has no attribute 'extension'

Help would greatly appreciated

Thanks

oce-290480 avatar May 20 '19 04:05 oce-290480

This is duo to the missing sanity check for the filetype. Somehow the lib filetype is having problems with some mp4 and can't guess the right type.

tomaaron avatar Jun 19 '19 19:06 tomaaron

Can you provide a mp4 video example that filetype failed to identify?

b3nab avatar Jul 04 '19 15:07 b3nab

Of course, this one, for example: File.mp4

KuHuKD2 avatar Jul 14 '19 13:07 KuHuKD2

@b3nab i have the solution, the issue's origin is actually the filetype library and specifically this line at media.py self.media_ext = filetype.guess(self.media_path).extension filetype is returning None on some videos so to fix it you can use Magic instead of filetype PyPi: https://pypi.org/project/python-magic-bin/0.4.14/ or Pip: pip install python-magic-bin so now in the media.py first : import magic
then change the check_type function to this: `def check_type(self):

    self.media_ext = magic.from_file(self.media_path,mime=True)
    self.media_ext=  self.media_ext.split('/')[1]` 

salahar9 avatar Jul 18 '19 01:07 salahar9

image Thanks it worked really fine.

formazione avatar Aug 13 '19 10:08 formazione

@b3nab Please review the changes if possible. This is an issue which is also happening in my use case of this library.

Kaszanas avatar Oct 25 '19 12:10 Kaszanas

Hey guys I have been having the same issue my code was: from instapy_cli import client

username = 'testing211714' password = '****' image = 'posts/keenan.png' text = 'This will be the caption of your photo.' + '\r\n' + 'You can also use hashtags! #hash #tag #now'

with client(username, password) as cli: cli.upload(image, text)`

But recieved the error: (env) Ryans-MacBook-Pro:InstaAutomaterFirstTry ryankeenan$ python app.py [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 "app.py", line 9, in cli.upload(image, text) File "/Users/ryankeenan/Desktop/git/InstaAutomaterFirstTry/env/lib/python3.7/site-packages/instapy_cli/cli.py", line 153, in upload raise IOError("Unable to upload.") OSError: Unable to upload.

I followed @salahar9 advice and imported magic at media.py but the error just changed to: (env) Ryans-MacBook-Pro:InstaAutomaterFirstTry ryankeenan$ python app.py [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 "app.py", line 10, in cli.upload(image, text) File "/Users/ryankeenan/Desktop/git/InstaAutomaterFirstTry/env/lib/python3.7/site-packages/instapy_cli/cli.py", line 153, in upload raise IOError("Unable to upload.") OSError: Unable to upload. Does anyone see where I went wrong??

keenan14 avatar Dec 30 '19 22:12 keenan14