Instagram/Facebook seems to have blocked loading timelines on the profiles. Am able to view only the first page of profiles. Even tried running it locally, to the same effect.
I run an instance of this for the sole purpose of having an Instagram RSS feed.
I have a telegram bot run a muted channel that pulls feeds from various subreddits, some public Instagram accounts, and some random blogs. I've found it helps me from browsing aimlessly throughout the day.
The way that Instagram/Facebook quickly block third party clients like this really make it obvious that they control what you see and how you use the platform. You do not have control of the content you see on Instagram. It is force fed to you to manipulate you according to which advertisers have paid for your attention.
I really wish the people who invest their time and energy into developing third party UIs for Instagram would spend their time instead developing UIs and front ends for open source and federated software. Someone build "Instagram for Nextcloud", please.
Agreed. One of the things (among many) that convinced me of IG/FB's hostility toward developers – and users – was when they stopped providing basic user information in their official "Instagram Basic Display" API, which according to their docs "allows users of your app to get basic profile information, photos, and videos". This is literally the full list of fields you can get for a user's profile:
account_type, id, media_count, username
Can you get the user's name? Nope. Bio? Nope. Follower count? Nope. Website? Nope. Pretty close to nothing.
This is all publicly visible information by the way (so no, it isn't a matter of protecting privacy), and I'm not even talking about getting it for users who are followers/followed by the person who authorized the app; you can't even get the authenticated user's own info. It's absolutely ridiculous, and any attempts to fetch that info from the website via automated means gets severely throttled or shut down almost instantly.
I will never build anything else that even remotely relies on an existing social network for an important function.
I’ve been thinking of looking for this for quite some time, thanks for sharing. I miss Instagram all the time, but the experience got worse every year. Too many ads, too much wandering from the photo-first product I fell in love with, too much Facebook.
Here's something I never seem to get a clear picture of, with these federated options. The typical explanation that makes the concept easy to understand is that federated services are "like email, we can have different providers, e.g. you might have a gmail account and I might have a yahoo or outlook address, and we'd still be able to communicate".
I think that's a very good way to put it, but the issue is that with email providers most users have an account in a company that is well established and its future continuity is not in doubt, at least in a span of months or couple years. And even if yahoo happened to close their email service, there are good software solutions that are mature and can be easily found and used to move your emails from one IMAP address to another.
Now, with federated options, I see all these funny looking domaim names, which I'm sorry but to me they scream "I'll be gone by next week (or month or year)". In general, apart from the most prominent federated instances -those that typically belong to the creators or are endorsed by them-, there is a lot of small instances that don't transmit a lot of confidence in their long-term existence.
And I get it, these are hosted mostly by users of the network. But the thing is that I'm a user, not a sysadmin. I have enough work already at work, and for this kind of use I'd really like to not worry about hosting a service by my own (especially after seeing this list of requisites! [0]) or that the instance I chose 6 months ago is now disappearing without notice. Are any fediverse implementations working on this issue, such like promoting an instance rating / trust system, or something like that? Apart from, of course, tooling to make migration a one click process.
I just realized an important difference between e-mail addresses and "fediverse handle is like an e-mail address": with e-mail, I can use my own domain to ensure the address outlives any single company, but that doesn't mean I have to run my own server. I can delegate e-mail handling to third parties, and swap them out at any time, and nobody's the wiser.
Meanwhile, it seems (based on what I know right now) that Fediverse handles are owned by the servers, not by users. I can't make me@mydomain username and delegate its handling to one of the existing instances, I must run my own node.
(Or maybe I'm wrong and it works just like e-mail. I just never saw it used this way.)
Signing up for an account on someone else's instance (pixelfed.social, mastodon.social, etc.) is like signing up for an email address through someone else's email service provider (Gmail, Yahoo Mail, etc.). @pixelfed.social accounts are exclusive to pixelfed.social, just as @gmail.com addresses are exclusive to Gmail. If you want to change instances or providers, you must also change your account's username or address.
To have an email address that remains the same when you change email service providers, you need your own domain and a provider that supports custom domains. You can also have a fediverse account on your own domain that works in the same way without self-hosting, since there are also hosting providers for some fediverse services that support custom domains. Here are a few that I found:
The main difference is that joining someone else's fediverse instance lets other users in the instance discover what you are posting more easily when they are not subscribed to you. For email, it doesn't matter whether your email address is on Gmail or your personal domain, since all messages are private.
Most fediverse services have a website that provides a list of instances with statistics. The site is usually named "join" + the name of the service. For Pixelfed, the list of instances is at joinpixelfed.org and it's in beta:
If you want to choose an instance that will last, one of the most popular instances is usually a safe bet. On the other hand, if you are mainly interested in certain topics or if you want to interact with users from a certain region, some smaller instances may have like-minded communities that would be more appealing to you.
Pixelfed is the kind of project I'm talking about. It's a great start of a project that needs a lot more work to become usable as a serious photography platform. I wish more people would put their effort into improving projects like Pixelfed rather than building front ends for Instagram that get shut down.
Looks like Patreon if you read the web site. And Liberapay, I guess.
It’s an open source “host your own” software, I don’t think they are trying to monetize beyond paying a living wage for the developer.
It is not a company, but a federated network – anyone can run their own server and interact with the all other nodes (much like email). The software is open source and is a community effort, although the lead developer got a grant [1] that allows him to spend time to improve the project over time.
Seems really cool, I'm going to spin up an instance. Their homepage is a bit odd though; very low density and you have to scroll alllll the way down to find the "Run your own server, or join one" links.
These servers will not be viable once EU new terreg regulation is implemented. (Need for legal presence in the EU, censorship officer and 1hr SLA for deleting content). You cannot just block EU IP to bypass this.
The next time you hear 'Facebook has purchased...' you know it's going to go to hell, Instagram is a prime example. Oh, now you need to log in to do anything. Oh, now there's an algorithmic feed...
This is fantastic. I was just complaining today about how obnoxious not having an Instagram is. That is trying to view an Instagram profile without having one yourself.
Either you can only scroll so far down the profile page and be prompted to sign in, or you can't even view the profile without signing in. It's such cancer. But this is the exact solution I was looking for!
I have tried it locally and various hosted instances several times over the last few months and while it occasionally works that error is more common than not.
Improve how? It was already pretty good. The entire user page and even Instagram TV was supported. But the current situation is not Bibliogram's fault.
More attention would encourage people to host new instances and help find workarounds for Instagram's rate limiting. There are also some features that are being worked on, such as a search function:
Yeah, I am just starting to see 1 star reviews on my repost app (https://github.com/sschueller/easyrepost) . It's totally broken now. Good thing I open sourced it and gave up on monetization in part to HN horror stories of people building business on top of other services like Facebook.
I'm going to abandon this and move on to maybe working on a Pixelfed android client instead.
The thing is, what if you leveraged the "cloud" of people, to build a p2p instagram cache/clone perhaps on IPFS or some other p2p store or mesh, where the seeders are people with IG accounts who are logged in, and that living network of people then can feed out data to overyone else logging in to the "rebel front-end". That would be cool. It seems that kind of thing would be unshut-downable and with enough seeders, unstoppable and complete.
Had a similar experience myself when 3 years ago IG and FB blocked all third party access to the API and my “best time to post” and scheduler apps all broke.
can someone do this for linkedin? tired of clicking on profiles from google only to be presented with the login wall. you shouldnt be allowed to treat googlebot better than you treat humans, that opens up all sorts of chicanery
Projects like this make me sad for what we have lost. All of Instagram used to provide open RSS feeds [0]. They also used to brag about third parties making interesting things with Instagram data [1], [2].
You can see their old blog posts by going to [3], right-clicking and copying the link of a post, and appending `/embed` to the URL.
well that's the difference between a company at a stage where it's trying to get more popular by getting approval from people and one where's it trying to squeeze what it can from you because it's established well enough.
I hope we can get a less closed corporate web in the future by some miracle, but I'm not optimistic about that.
Apart from the obvious possibility of IP ban (that there's only one way to circumvent), I think parsing is the most brittle part of this. If I needed to make something that would just survive without me rewriting it all the time, I would do away with parsing somehow, at all. E.g. instead of trying to parse anything, just load it in a browser (headless, or even real) and just somehow see where the images are (from the requests log, or from the screenshot).
mih | 5 years ago
Instagram/Facebook seems to have blocked loading timelines on the profiles. Am able to view only the first page of profiles. Even tried running it locally, to the same effect.
m0ngr31 | 5 years ago
I run an instance of this for the sole purpose of having an Instagram RSS feed.
I have a telegram bot run a muted channel that pulls feeds from various subreddits, some public Instagram accounts, and some random blogs. I've found it helps me from browsing aimlessly throughout the day.
[OP] commoner | 5 years ago
This submission should not have been renamed to "Show HN" since I'm not the author. Credits go to Cadence Ember (~cadence on SourceHut):
Website: https://cadence.moe
SourceHut: https://git.sr.ht/~cadence/
GitHub: https://github.com/cloudrac3r
Contact/Donate: https://cadence.moe/about/contact
Patreon (linked from contact page): https://www.patreon.com/papiophidian
dang | 5 years ago
Sorry! I misread your comments as indicating that you're the author. Fixed now. Thank for letting us know.
[OP] commoner | 5 years ago
Thanks, dang!
yosito | 5 years ago
The way that Instagram/Facebook quickly block third party clients like this really make it obvious that they control what you see and how you use the platform. You do not have control of the content you see on Instagram. It is force fed to you to manipulate you according to which advertisers have paid for your attention.
I really wish the people who invest their time and energy into developing third party UIs for Instagram would spend their time instead developing UIs and front ends for open source and federated software. Someone build "Instagram for Nextcloud", please.
dperfect | 5 years ago
Agreed. One of the things (among many) that convinced me of IG/FB's hostility toward developers – and users – was when they stopped providing basic user information in their official "Instagram Basic Display" API, which according to their docs "allows users of your app to get basic profile information, photos, and videos". This is literally the full list of fields you can get for a user's profile:
account_type, id, media_count, username
Can you get the user's name? Nope. Bio? Nope. Follower count? Nope. Website? Nope. Pretty close to nothing.
This is all publicly visible information by the way (so no, it isn't a matter of protecting privacy), and I'm not even talking about getting it for users who are followers/followed by the person who authorized the app; you can't even get the authenticated user's own info. It's absolutely ridiculous, and any attempts to fetch that info from the website via automated means gets severely throttled or shut down almost instantly.
I will never build anything else that even remotely relies on an existing social network for an important function.
[OP] commoner | 5 years ago
The open source federated equivalent to Instagram is Pixelfed:
https://pixelfed.org
There's an Android app for it called PixelDroid: https://gitlab.shinice.net/pixeldroid/PixelDroid
stuart78 | 5 years ago
I’ve been thinking of looking for this for quite some time, thanks for sharing. I miss Instagram all the time, but the experience got worse every year. Too many ads, too much wandering from the photo-first product I fell in love with, too much Facebook.
j1elo | 5 years ago
Here's something I never seem to get a clear picture of, with these federated options. The typical explanation that makes the concept easy to understand is that federated services are "like email, we can have different providers, e.g. you might have a gmail account and I might have a yahoo or outlook address, and we'd still be able to communicate".
I think that's a very good way to put it, but the issue is that with email providers most users have an account in a company that is well established and its future continuity is not in doubt, at least in a span of months or couple years. And even if yahoo happened to close their email service, there are good software solutions that are mature and can be easily found and used to move your emails from one IMAP address to another.
Now, with federated options, I see all these funny looking domaim names, which I'm sorry but to me they scream "I'll be gone by next week (or month or year)". In general, apart from the most prominent federated instances -those that typically belong to the creators or are endorsed by them-, there is a lot of small instances that don't transmit a lot of confidence in their long-term existence.
And I get it, these are hosted mostly by users of the network. But the thing is that I'm a user, not a sysadmin. I have enough work already at work, and for this kind of use I'd really like to not worry about hosting a service by my own (especially after seeing this list of requisites! [0]) or that the instance I chose 6 months ago is now disappearing without notice. Are any fediverse implementations working on this issue, such like promoting an instance rating / trust system, or something like that? Apart from, of course, tooling to make migration a one click process.
[0]: https://docs.pixelfed.org/running-pixelfed/prerequisites.htm...
TeMPOraL | 5 years ago
I just realized an important difference between e-mail addresses and "fediverse handle is like an e-mail address": with e-mail, I can use my own domain to ensure the address outlives any single company, but that doesn't mean I have to run my own server. I can delegate e-mail handling to third parties, and swap them out at any time, and nobody's the wiser.
Meanwhile, it seems (based on what I know right now) that Fediverse handles are owned by the servers, not by users. I can't make me@mydomain username and delegate its handling to one of the existing instances, I must run my own node.
(Or maybe I'm wrong and it works just like e-mail. I just never saw it used this way.)
[OP] commoner | 5 years ago
Signing up for an account on someone else's instance (pixelfed.social, mastodon.social, etc.) is like signing up for an email address through someone else's email service provider (Gmail, Yahoo Mail, etc.). @pixelfed.social accounts are exclusive to pixelfed.social, just as @gmail.com addresses are exclusive to Gmail. If you want to change instances or providers, you must also change your account's username or address.
To have an email address that remains the same when you change email service providers, you need your own domain and a provider that supports custom domains. You can also have a fediverse account on your own domain that works in the same way without self-hosting, since there are also hosting providers for some fediverse services that support custom domains. Here are a few that I found:
Spacebear (Pixelfed, PeerTube, Mastodon): https://app.spacebear.ee
Masto.host (Mastodon): https://masto.host
Hostdon (Pleroma, Mastodon): https://hostdon.jp (in Japanese)
The main difference is that joining someone else's fediverse instance lets other users in the instance discover what you are posting more easily when they are not subscribed to you. For email, it doesn't matter whether your email address is on Gmail or your personal domain, since all messages are private.
[OP] commoner | 5 years ago
Most fediverse services have a website that provides a list of instances with statistics. The site is usually named "join" + the name of the service. For Pixelfed, the list of instances is at joinpixelfed.org and it's in beta:
https://beta.joinpixelfed.org
That list omits the largest instance (https://pixelfed.social).
There are also third-party websites that provide statistics on fediverse nodes. The-Federation.info has a list for Pixelfed:
https://the-federation.info/pixelfed
If you want to choose an instance that will last, one of the most popular instances is usually a safe bet. On the other hand, if you are mainly interested in certain topics or if you want to interact with users from a certain region, some smaller instances may have like-minded communities that would be more appealing to you.
j1elo | 5 years ago
Nice, thanks. I guess I'llhave to look for a middle ground :-)
Maybe the ecosystem is missing more instances that allow using a custom domain, something that according to other commenter is possible
yosito | 5 years ago
Pixelfed is the kind of project I'm talking about. It's a great start of a project that needs a lot more work to become usable as a serious photography platform. I wish more people would put their effort into improving projects like Pixelfed rather than building front ends for Instagram that get shut down.
pcora | 5 years ago
How does Pixelfed makes money?
Jolter | 5 years ago
Looks like Patreon if you read the web site. And Liberapay, I guess. It’s an open source “host your own” software, I don’t think they are trying to monetize beyond paying a living wage for the developer.
messo | 5 years ago
It is not a company, but a federated network – anyone can run their own server and interact with the all other nodes (much like email). The software is open source and is a community effort, although the lead developer got a grant [1] that allows him to spend time to improve the project over time.
1: https://github.com/pixelfed/pixelfed#pixelfed-sponsors
cmckn | 5 years ago
Seems really cool, I'm going to spin up an instance. Their homepage is a bit odd though; very low density and you have to scroll alllll the way down to find the "Run your own server, or join one" links.
cmckn | 5 years ago
Yikes, so much for that; getting it running is like building a model airplane: https://docs.pixelfed.org/running-pixelfed/prerequisites.htm...
[OP] commoner | 5 years ago
The Pixelfed repo includes a Docker Compose file that is easier to set up:
https://github.com/pixelfed/pixelfed/blob/dev/docker-compose...
Another option is to set up Yunohost (free) or Cloudron (freemium), both of which support Pixelfed and a variety of self-hosted services:
https://github.com/YunoHost-Apps/pixelfed_ynh
https://www.cloudron.io/store/org.pixelfed.cloudronapp.html
intricatedetail | 5 years ago
These servers will not be viable once EU new terreg regulation is implemented. (Need for legal presence in the EU, censorship officer and 1hr SLA for deleting content). You cannot just block EU IP to bypass this.
annadane | 5 years ago
The next time you hear 'Facebook has purchased...' you know it's going to go to hell, Instagram is a prime example. Oh, now you need to log in to do anything. Oh, now there's an algorithmic feed...
Mark Zuckerberg: not even once
ojame | 5 years ago
While I generally agree, pre-acquisition Instagram didn’t have a web viewer. You could only use it via the app, which required you to log in.
annadane | 5 years ago
Fair enough
jeffgreco | 5 years ago
Since embeds are always accessible, I created a quick page and iOS Shortcut to allow for easier viewing of specific Instagram post links.
Just append the ID to https://instaembed.github.io/INSTA_ID_HERE
This shortcut will do it automatically if you share an Insta link to it:
https://www.icloud.com/shortcuts/e939f9755fc8499c85954aa1790...
grae_QED | 5 years ago
This is fantastic. I was just complaining today about how obnoxious not having an Instagram is. That is trying to view an Instagram profile without having one yourself.
Either you can only scroll so far down the profile page and be prompted to sign in, or you can't even view the profile without signing in. It's such cancer. But this is the exact solution I was looking for!
[OP] commoner | 5 years ago
Instagram has been requiring viewers to sign in after browsing a certain number of pages. Bibliogram is a way to bypass this registration wall.
List of instances: https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/...
Source code: https://sr.ht/~cadence/bibliogram/
Similar services
Invidious (YouTube): https://news.ycombinator.com/item?id=21535562
Nitter (Twitter): https://news.ycombinator.com/item?id=21849744
Teddit (Reddit): https://news.ycombinator.com/item?id=25310206
Related software
UntrackMe (Android app that converts links from Instagram and others to alternative front-ends): https://framagit.org/tom79/nitterizeme
Privacy Redirect (browser extension that redirects to these front-ends): https://github.com/SimonBrazell/privacy-redirect
Barinsta (open source Instagram client for Android): https://github.com/austinhuang0131/barinsta
0-_-0 | 5 years ago
It doesn't work though, and hasn't for a while, and likely never will [0]:
Timeline loading blocked
Instagram is refusing to provide data to this server.
This server will only be able to load the first page of timelines.
This error is permanent.
[0]: https://proxy.vulpes.one/gemini/cadence.moe/gemlog/2020-12-1...
matheusmoreira | 5 years ago
Why not make a free software replacement for the mobile app instead? Surely there's no way to block that.
sodality2 | 5 years ago
https://github.com/austinhuang0131/barinsta/ is one such alternative client
mackrevinack | 5 years ago
that seems to be fairly unreliable as well. some days it works, most days it doesn't
[OP] commoner | 5 years ago
It worked right before I submitted the link to HN. This may be the effect of a temporary traffic surge.
The software is open source, so anyone is able to start a new instance, as others did for Invidious and Nitter.
Edit: Added list of instances to GP. For some reason, the main instance is still working for me.
sixhobbits | 5 years ago
I have tried it locally and various hosted instances several times over the last few months and while it occasionally works that error is more common than not.
Teddit.net for reddit works amazingly though.
[OP] commoner | 5 years ago
Thanks, I've added Teddit to the list.
I'm hoping that the attention will help Bibliogram improve.
Rompect | 5 years ago
Improve how? It was already pretty good. The entire user page and even Instagram TV was supported. But the current situation is not Bibliogram's fault.
[OP] commoner | 5 years ago
More attention would encourage people to host new instances and help find workarounds for Instagram's rate limiting. There are also some features that are being worked on, such as a search function:
https://todo.sr.ht/~cadence/bibliogram-issues/6
sschueller | 5 years ago
Yeah, I am just starting to see 1 star reviews on my repost app (https://github.com/sschueller/easyrepost) . It's totally broken now. Good thing I open sourced it and gave up on monetization in part to HN horror stories of people building business on top of other services like Facebook.
I'm going to abandon this and move on to maybe working on a Pixelfed android client instead.
graderjs | 5 years ago
The thing is, what if you leveraged the "cloud" of people, to build a p2p instagram cache/clone perhaps on IPFS or some other p2p store or mesh, where the seeders are people with IG accounts who are logged in, and that living network of people then can feed out data to overyone else logging in to the "rebel front-end". That would be cool. It seems that kind of thing would be unshut-downable and with enough seeders, unstoppable and complete.
busymom0 | 5 years ago
Had a similar experience myself when 3 years ago IG and FB blocked all third party access to the API and my “best time to post” and scheduler apps all broke.
sprite | 5 years ago
Does anyone if there is any case law on this? Are you legally allowed to create 3rd party clients for various services?
Bjartr | 5 years ago
You're generally allowed to create them, and the service provider is generally allowed to change their service in ways that break them.
antif | 5 years ago
Craigslist v. 3Taps may be related/interesting: https://en.wikipedia.org/wiki/Craigslist_Inc._v._3Taps_Inc.
> case sets a precedent that allows businesses to use the CFAA to keep public data away from competitors
swiley | 5 years ago
It won't be long before they're just another pintrest.
Facebook is going to need to keep something it bought alive or it might struggle to keep the lights on.
swyx | 5 years ago
can someone do this for linkedin? tired of clicking on profiles from google only to be presented with the login wall. you shouldnt be allowed to treat googlebot better than you treat humans, that opens up all sorts of chicanery
css | 5 years ago
Projects like this make me sad for what we have lost. All of Instagram used to provide open RSS feeds [0]. They also used to brag about third parties making interesting things with Instagram data [1], [2].
You can see their old blog posts by going to [3], right-clicking and copying the link of a post, and appending `/embed` to the URL.
[0] https://instagram.tumblr.com/post/8755963247/introducing-has...
[1]: https://instagram.tumblr.com/post/8757679335/api-highlights-...
[2]: https://instagram.tumblr.com/post/8756150468/a-real-time-api...
[3]: https://instagram.tumblr.com/archive/filter-by/text
PostThisTooFast | 5 years ago
This is why you don't waste time or money building something on a third party's platform that can be taken away at any moment.
gryn | 5 years ago
well that's the difference between a company at a stage where it's trying to get more popular by getting approval from people and one where's it trying to squeeze what it can from you because it's established well enough.
I hope we can get a less closed corporate web in the future by some miracle, but I'm not optimistic about that.
rapnie | 5 years ago
How about a fully open standards-based non-corporate web: https://fediverse.party
edhelas | 5 years ago
We also have RSS/Atom for that ;)
XMPP can easily embed Atom in Pubsub feeds, this brings this kind of results https://mov.im/?node/news.movim.eu/TorrentFreak
valyagolev | 5 years ago
Apart from the obvious possibility of IP ban (that there's only one way to circumvent), I think parsing is the most brittle part of this. If I needed to make something that would just survive without me rewriting it all the time, I would do away with parsing somehow, at all. E.g. instead of trying to parse anything, just load it in a browser (headless, or even real) and just somehow see where the images are (from the requests log, or from the screenshot).