ThinkBIG-Company / instantgram-light

☁️ A bookmarklet for download photos in Instagram
https://thinkbig-company.github.io/instantgram-light/
Other
4 stars 0 forks source link

General feedback on new version (late October) #8

Closed Orudeon closed 3 months ago

Orudeon commented 8 months ago

Hey there! I appreciate the hard work cracking IG's shell to get this working again. After a few days with it I have some feedback.

I love that you added the option to pause stories or not while the download interface is up. More user choice is always good! I also love that you added "Open download in new tab" as an option to replicate some of the really old behavior that other users might prefer if naming files isn't a priority for them.

Here's the really big and complicated thing, I think. Even if you don't have "Open download in new tab" enabled, the extension still opens a new tab, just for instantgram.1337.pictures instead of scontent-sea1-1.cdninstagram.com. Having the extension open things in a new tab regardless of option you pick (as opposed to the previous behavior of an in-line download) is at least somewhat disruptive thanks to Firefox's facebook container and its... extremely particular behavior.

instantgram.1337.pictures doesn't go into Facebook Container and I can't figure out if I can add specific sites to facebook container permanently, so right now it's never contained. Consequently, if the IG tab isn't pinned, Instantgram "replaces" the IG tab you had open with an uncontained tab. You can't Back into it, because contained and uncontained tabs can't interact with each other's browsing history. If it is pinned, it's opened as a new tab, which makes it way less finicky.

I imagine that having it open in instantgram.1337.pictures is some kind of workaround for IG's security measures and the fact that it's working again at all is probably some kind of minor miracle. So it might be the case that this is just behavior that has to be tolerated, which is okay. I just appreciate that it's working at all, and this giant wall of text is mostly documenting nuisance behavior.

ThinkBIG-Company commented 8 months ago

Sorry it's hard for me to understand the text i can't quite filter out what the problem is. Can you write a list or something similar, maybe then I will understand it better

ThinkBIG-Company commented 8 months ago

?

Orudeon commented 8 months ago

What the hell, where did my post go? I wrote one up the day you asked for one. Thanks, Github.

First off, some bad news: this morning the extension is broken on all photo stories. It's also broken on all posts with a single photo, regardless of where or how you view them. It still works on videos, and posts with multiple items. But, Instantgram isn't the only thing broken today; WFDownloader also can't grab things. StorySaver.net still works for some reason.

Anyway, back to the original topic.

The short version is: Facebook Container doesn't play nice with the extension's current functionality. It tends to replace tabs, erasing their navigation history.

More detailed explanation, when "Open download in new tab" is disabled: 1) The extension opens instantgram.1337.pictures. 2) instantgram.1337.pictures isn't a Facebook Container domain. 3) The new url replaces the Instagram tab. 4) You can no longer navigate back to the instagram tab, you just have to close the tab. This is because of 2).

If the Instagram tab is pinned, it can't replace it. It opens it in a new tab anyway.

The previous behavior of it directly downloading files was much less cumbersome than opening tabs or navigating to new URLs. However, I assume it's needed to get around some of Facebook's countermeasures. The fact that you still figured out how to get around their rapidly changing efforts is a testament to your hard work and dedication.

Orudeon commented 8 months ago

All photo posts everywhere and all photo stories are working again, for no apparent reason. Please disregard that part.

EDIT: Whoops, hit the 'close issue' button by accident.

ThinkBIG-Company commented 8 months ago

Thanks for clarifying. The Download button is designed for a better user experience, and the instantgram.1337.pictures URL is a hack to mimic the 'Save As' dialog or enable direct downloading in any browser. Without this URL, if you click on 'Download,' the media opens in a new tab, requiring manual download.

Previously, this process worked seamlessly, but Facebook has activated its Content Security Policy (CSP), which now protects HTML. I can add a function to initiate manual downloads if you wish.

However, this means that you have to download everything yourself. Right mouse click, save as etc...

Orudeon commented 8 months ago

I figured it was a workaround for their machinations. It has to be this way, and I really appreciate that you got it working.

I think if it always opened instantgram.1337.pictures in a new tab instead of replacing the tab somehow, it would play nicer with Facebook Container.

ThinkBIG-Company commented 8 months ago

Can you make a video of replacing tab in firefox? I can not reproduce it in firefox. No tab is replaced it downloads directly any media.

ThinkBIG-Company commented 8 months ago

Ok have figured it out on my firefox installation.

In the settings under tabs the option "Open links in tabs instead of new windows" is clicked so i dont see any window or container. Is that a solution for you if you use the same option as me ?

Orudeon commented 8 months ago

I also have "Open links in tabs instead of new windows" enabled. Here's a gif of the entire thing happening. Notice how the Forward and Back arrows get blacked out. The white bar at the top of the tabs means it's in a Facebook Container, isolating me from Facebook tracking.

ThinkBIG-Company commented 8 months ago

This is my firefox installation dev

ThinkBIG-Company commented 8 months ago

I think some extension will modify this behaviour

Got it the extension "Facebook Container" modify anything of this.. Try to find a way around this

Orudeon commented 8 months ago

Yeah it's just Facebook Container. I reported it on the github for it.