New oEmbed stack! 1000s of widgets all-in-one

New oEmbed Stack

Over the years there have been tons of stacks that control various embed widgets across many different websites. Sadly many of these have been discontinued. A new embed standard was introduced to the world called oEmbed. It was a standard interface where web services could supply embed codes for a URL on the fly.

oEmbed allows you embed a widget from thousands of websites with a single URL. It uses the open oEmbed Standard to access any website that supports it. For example, you can easily embed the following widgets: Twitter feeds, Instagram posts, Facebook Posts, YouTube videos, and so much more.

Ever heard of Embedly? Well, the oEmbed stack is sort of like your own private Embedly with zero branding.

Check out the oEmbed Product Page


Hi @joeworkman thanks for this.

Does it support loading the embedded content only after a click from the user? Looking at gdpr I need consent of the user before loading and displaying many contents.

Thanks :slight_smile:

Great idea! All of this is lazy loaded with JS so it’s possible. How would you envision this working?

In general like 🎬 2-Klick-Lösung für DSGVO-Konforme Verwendung von YouTube
(in german, but the code should speak for itself)

  1. Make sure no data like the viewers IP address is transmitted before the consent click. e. g. not download any preview pictures etc.

  2. Add a possibility to add a free form text. This should be a text field, since the text has to be generic and in different languages. One Example for youtube: “By viewing the video you agree that your data will be transferred to YouTube and that you have read the privacy policy.”

  3. Add a possibility to add a link. In this case it goes to the privacy policy of the website. But it could go to the privacy policy of youtube in the example, so just any link which could open in a new window.

  4. Add a button “Accept and Continue” - again in free text as to support different languages. Perhaps we can add a possibility to accept this for all content of the same origin, e. g. youtube.

I think Germany has the strictest GDPR regulations :frowning:


Looks really interesting Joe. I don’t suppose the Instagram widget can be used to bring in a gallery, rather than the most recent single image?



I wish. They don’t support that as of today.

Is LinkedIn supported?

Possibly. Found this via Google…

1 Like

Thinking out loud…

So the trick is getting this to work with the countless cookie warning and consent trackers out there. That is not scalable/maintainable. What I could do is watch for a click event on a button or link that has a particular class. If that link or button were clicked only then would be data be loaded.

I could store a session variable (not a cookie) so if the person clicked this button, it would then load the feeds on all subsequent page loads.

1 Like

oEmbed v1.1 adds GDPR and Privacy support

There is a new setting that allows you to only load oEmbed once a button or link is clicked. You only need to add the class, oembed-privacy, to your link, button, or container that contains a link or button. When the link/button is clicked, the embeds will be dynamically loaded. oEmbed will remember that the user consented to load the widget for the entire session and will load all remaining embeds on page load.

One interesting tactic is to add default content, then add the oembed-privacy class to oEmbed. Then you can simply put in a button that will load the embed on click. You can also just add the class directly to the button.

However, the button does not need to be inside of oEmbed, it can be anywhere you want on the page. It could also leverage an existing consent message as long as you can add the class to it.


Hi Rob. Not ideal but you can do this using the ‘Embed social’ service. I use it for a client and it’s still working fine. The only downside is that for the free version you can’t customise the look and you get an embed social icon above the gallery. It’s the only way I found to do it. I actually bought oEmbed to do this and was disappointed when I found it didn’t… Not Joe’s fault of course so I’m keeping it. Might come in useful for something else.

Thanks. At the moment 1LD’s Instagram stack is still working and I’m hoping the replacement will do the same. Appreciate the heads up.


1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.