OEmbed Providers Elixir
Compare URLs to a list of providers and get the OEmbed URL. This allows you to avoid unnecessary HTTP requests and prevent being throttled by services such as YouTube.
iex(1)> OEmbedProviders.oembed_url("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
{:ok,
"https://www.youtube.com/oembed?format=json&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DdQw4w9WgXcQ"}
iex(2)> OEmbedProviders.oembed_url("https://gleasonator.com/@alex")
{:error, :no_provider}
OEmbed Providers is not a full client library on its own, but rather one piece of a complete OEmbed implementation. It does not make HTTP requests or parse responses. It ONLY constructs OEmbed URLs for known providers.
Installation
The package can be installed
by adding oembed_providers
to your list of dependencies in mix.exs
:
def deps do
[
{:oembed_providers, "~> 0.1.0"}
]
end
Providers
Provider data is sourced from providers.json
and bundled with the library.
You can use a custom providers file in your application:
import Config
config :oembed_providers,
providers_file: "/absolute/path/to/file.json"
Be sure your JSON is valid and follows the same format as the original providers.json
.
Note that the providers file is read at compile time and cannot be configured dynamically.
License
OEmbed Providers Elixir is licensed under the MIT license.
See LICENSE.md
for a full copy of the license.