Hey guys, first time posting here.
I’m a frequent visitor on a Discourse-based forum (from page source it looks like it is 3.2.0.beta1-dev, I have no idea what the current latest version is), and I was disappointed to see that Artstation links have no preview. Artstation pages seemingly have all the necessary meta tags, and Discord & Facebook have previews for them, but not Discourse.
https://www.artstation.com/artwork/xDol3X
This is what I see in the preview pane for the above link:
AI-generated summary
The discussion revolves around the issue of missing previews for Artstation links on Discourse forums. jurchiks initially reported the issue, pointing out that Artstation pages have the necessary meta tags, but Discourse fails to generate a preview. merefield suggested that the issue might not be a bug, but rather a result of the website denying access to Discourse’s server.
After further investigation, it was determined that the issue is indeed due to Artstation blocking Discourse’s server-side requests for metadata. merefield tried using the Onebox Assistant plugin, but it didn’t help. jurchiks wondered if the request headers might be causing the issue, but testing with Postman yielded a successful response.
merefield suggested contacting Artstation or using a proxy service to get around the block. However, jurchiks expressed skepticism about getting a meaningful response from Artstation.
The conversation then shifted to Twitter previews, with merefield explaining that enabling rich embeds is required for Twitter previews to work. jurchiks was disappointed to learn that enabling rich embeds for Artstation would require a paid solution.
The discussion concluded with merefield sharing a link to a native Twitter embed plugin, which jurchiks found inspiring and might attempt to replicate for Artstation.
Ok, apparently also no preview for Instagram:
https://www.instagram.com/p/CYg_FLqox8c/
Unlike the Artstation link, this one doesn’t even have any details in the preview pane… But there are the necessary og:* meta tags, so there is no reason for this not to work.
This doesn’t look like a bug. If you read the error, the website is denying your access (of your server). You could try my onebox assistant plugin to see if that helps.
The screenshot is from THIS forum. It’s probably the same for every Discourse forum out there.
Interestingly, on this forum there IS preview for Twitter posts:
while there isn’t in the forum I come from. Wonder what that’s all about.
So it’s denying Meta too.
Yeah, but why tho? Is the onebox metadata loaded server-side, not client-side?
Great. What else can be done about this? Seems like a rather weird thing to block - why would you have meta tags on your website if you can’t get to them in order to display a preview?
Could it be the request headers that are causing this? Although seems doubtful because I tried making a request from Postman and it came through fine.
- Contact them directly to ask them.
- Contact a proxy service and find out if they can get around it, then use that proxy service.
I’ve already shot an email to embed.rocks for point 2.
Contact who? Artstation, Instagram, and Twitter? ![]()
Ain’t no way in hell I’ll get a meaningful reply.
This is more than likely not caused by them.
Getting around these restrictions needs serious experience and expertise, and I don’t have the time to learn that niche of Information Technology, so you need to rely on those who spend all day doing it: ie a proxy service.
I’ll let you know if I get a response from Embed.rocks, then you could use my plugin.
Some websites force you to use registered embeds with a key.
Can you check what headers you’re sending when generating a onebox?
Sorry, don’t have any more time to spend on this. I’ll update here if I get a response from embed.rocks.
Btw, For Twitter you need to enable rich embeds:
That is almost certainly set up here
There might be potential for a similar solution for Artstation, but you might need to build it.
Oh damn! 100$/month just for that! So much for discoverability. What a shame.
yeah, the price is ridiculous, I’m not sure what planet they are on!
Check this out too:
Noice! Although the JavaScript can use some improvements. I guess I might make a PR, and maybe do the same thing for the other domains I’m interested in.
Please leave this part in:
Yes, ideally it should really use async loadScript (which returns a promise) so that the rest of the code doesn’t run until the script is guaranteed to have loaded.

