oembed-spec

A parser for oEmbed specification

Usage no npm install needed!

<script type="module">
  import oembedSpec from 'https://cdn.skypack.dev/oembed-spec';
</script>

README

microlink logo

Last version Build Status Coverage Status NPM Status

A parser for oEmbed specification.

Features

  • Always on sync with oEmbed providers (as npm postinstall hook).
  • Handle http/https & www/non-www URLs variations.
  • Ability to pass extra oEmbed parameters.
  • Built for speed (see benchmarks).

Install

$ npm install oembed-spec --save

Usage

const oEmbed = require('oembed-spec')

// Just pass the URL
oEmbed('https://youtu.be/I8u2NdWuaYs')
// {
//   provider_name: 'YouTube',
//   author_url: 'https://www.youtube.com/user/mirandaskiss'
//   html: '<iframe width="480" height="270" src="https://www.youtube.com/embed/I8u2NdWuaYs?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'
// }

// http/https and www/non-www are handled
oEmbed('http://www.youtu.be/I8u2NdWuaYs')
// {
//   provider_name: 'YouTube',
//   author_url: 'https://www.youtube.com/user/mirandaskiss'
//   html: '<iframe width="480" height="270" src="https://www.youtube.com/embed/I8u2NdWuaYs?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'
// }

// Pass specific oEmbed options as second parameter
oEmbed('http://www.youtu.be/I8u2NdWuaYs', { maxheight: 612 })
// {
//   provider_name: 'YouTube',
//   author_url: 'https://www.youtube.com/user/mirandaskiss'
//   html: '<iframe width="480" height="270" src="https://www.youtube.com/embed/I8u2NdWuaYs?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'
// }

API

oEmbed(input, [options])

input

Required
Type: string

A valid WHATWG URL.

options

Any option present will be passed against the consumer request (see oembed.com section 2.2).

.findProvider(url)

Standalone method for finding a provider.

.fetchProvider(provider, url, [opts], [gotOpts])

Standalone method for fetching an specific provider.

License

oembed-spec © microlink.io, released under the MIT License.
Authored and maintained by microlink.io with help from contributors.

microlink.io · GitHub microlink.io · Twitter @microlinkhq