dvingerh / PyInstaStories

Python script to download Instagram stories from Instagram users.
MIT License
329 stars 74 forks source link

[Enhancement] Ideas for improving user experience #22

Closed ghost closed 5 years ago

ghost commented 5 years ago

Thanks for all of the hard work you have done on the script so far. I thought of some ideas that would improve user experience heres some of them:

  1. Display statics at end of script run: ( how many users had stories, how many actual user stories were downloaded, Total script run time)
  2. Display errors at end of script: Errors i had so far: no stories because user went private, urlopen error, display name of user incase a story download was skipped. And retry download of said failed download before script ends: If user1 had a urlopen error and user2 had some skipped stories and user3 had urlib error, the script would run again to redownload stories from user1,2,3.
  3. Custom file name: USERNAME_storyuploadtime.jpg/mp4
  4. Add an argument download videos both ways, one with ffpmeg and download it the standard way. For example if we were to run the script with -extra arguemnt on a user that has one video: The script would output two videos, one is the high quality one made with ffmpeg and standard quality one.
  5. Add portable windows version
  6. Download HD profile pics
  7. If the script encountered the too much api calls error “ An error occurred please try again later “ It would go on cooldown mode ( timeout for 5 minutes) and restart download from the user that produced that error
  8. Argument to save log file
  9. Add keystroke to pause and resume the script
dvingerh commented 5 years ago

I can make small changes and bug-fixes where needed but I really don't have the time nor interest to implement more features, sorry. Feel free to make your own fork of this script though, Python is one of the easiest languages to learn so it'll definitely worth your time in the long run.

dvingerh commented 5 years ago

A lot of the other scripts available already offer similar features. If you're looking for a script with loads of customization then PyInstaStories isn't the right tool to use.

ghost commented 5 years ago

@notcammy which one would you recommend?

dvingerh commented 5 years ago

I noticed you already use instagram-scraper and instaloader, which are the two main scripts I would've recommended. There's also InstaLooter. Read the documentation to see what all the different scripts offer.

There is no tool which will do exactly what you want. Either fork the project that suits you best and add the features yourself, or try to write your own so you have full control over what's going to be implemented and how it's going to be implemented.

ghost commented 5 years ago

@notcammy Pretty much every Instagram script broke except yours, it seems that seems Instagram implemented some new mechanism to defeat scrapers. Whenever i try to run other scripts i would encounter: " JSON Query x****/: 429 Too Many Requests " and if you visit Instagram on a browser you would encounter: " Error. Please wait a few minutes before you try again. " I tried changing accounts and ip and that didn't help, i would encounter the same errors after about 6 minutes in.

Why your script continues to work ( Thank god for that) while others stop working? ( Instaloader for example. it has stories download feature)

Opened issue for reference: github. com / instaloader/ instaloader/ issues/ 392

dvingerh commented 5 years ago

Pretty sure it's because they are web-based API scrapers while I use the app API to collect story info. Then again I haven't tested bulk downloading with this script (nor do I want to) so I wouldn't know if recent changes affected the app API too.

ghost commented 5 years ago

Pretty sure it's because they are web-based API scrapers while I use the app API to collect story info. Then again I haven't tested bulk downloading with this script (nor do I want to) so I wouldn't know if recent changes affected the app API too.

@notcammy Do you know any scraper that uses app API ?

dvingerh commented 5 years ago

One of the reasons I made my own scraper is because I couldn't find projects that relied on the app API which seems more reliable. I still don't believe any others exist at this time.