<o-embed> is Web Components for oEmbed generated by open-wc.
oEmbed means the following.
oEmbed is a format for allowing an embedded representation of a URL on third party sites.
For example, in the case of Tweet, you will see the following embed.
The URL for the Tweet is bellow.
https://twitter.com/openwc/status/1427617679427440643
The URL for Tweet's oEmbed API is bellow.
https://publish.twitter.com/oembed? url=https://twitter.com/openwc/status/1427617679427440643
<script type="module">
import { OEmbed } from 'https://cdn.skypack.dev/@silverbirder/o-embed';
window.customElements.define("o-embed", OEmbed);
</script>
<o-embed
src="https://twitter.com/openwc/status/1427617679427440643"
proxy="https://silverbirder-cors-anywhere.herokuapp.com"
></o-embed>| Attribute | Type | Required | Default | Description |
|---|---|---|---|---|
| src | String | true | "" |
URL to embed. It must be supported by the provider. |
| proxy | String | true | "" |
URL of proxy. The details is here(Proxy). |
| height | String | false | "" |
height of iframe |
| weight | String | false | "" |
weight of iframe |
| provider | String | false | "https://oembed.com/providers.json" |
URL of providers |
Some of provider is not allow cross-origin HTTP request and oembed will not work with those site. You need to put proxy url to make it work. I would suggest to use cors-anywhere.herokuapp.com as your proxy. Self hosted version is provide at https://github.com/Rob--W/cors-anywhere/.
※ https://www.webcomponents.org/element/thangman22/oembed-component
<o-embed>
<p slot="loading">Loading...</p>
<p slot="notFound">Not Found</p>
<p slot="error">Error</p>
</o-embed>| Slot | Condition |
|---|---|
| loading | While loading src |
| notFound | Provider of src does not exist |
| error | When unknown errors occur |
npm i @silverbirder/o-embed