Skip to content

oEmbed/2 gateway. Get embed data for any URL through single self-hosted API endpoint. Written in Node.JS. Handles oEmbed, Open Graph, Twitter Cards and close to 100 custom domains - out-of-the-box.

License

goofrider/iframely

 
 

Repository files navigation

Iframely Embeds Gateway

http://iframely.com

Build Status

Iframely is self-hosted embeds gateway, giving you single endpoint to get rich embeds data of any URL.

Iframely is Node.JS app (and/or package), but you can access it from other environments via API. Main endpoint (see example):

/iframely?uri={url encoded http link to a web page}

Iframely provides out-of-the-box:

  • Generic parsers of Open Graph, Twitter Cards, oEmbed v1 and Readability articles
  • Caching for performance optimizations (Memached, Redis or in-memory engines)
  • API for unified/merged meta, thumbnails (incl sizes), video, players, articles
  • Plugins arсhitecture to extend the logic or to implement custom domain parsers
  • More than 100 parsers for specific domains, like YouTube, Vimeo, Soundcloud, Instagram, etc.

(c) 2013 Itteco Software Corp. Licensed under MIT.

Itteco also is developing additional services for developers and publishers, which will help us finance the maintenance of this open-source project. Please, submit your email here to get notified and support our effort.

Getting Started

Do not forget :)

Community Endpoint

Please note: You may use skip installation and use community endpoint to rapidly develop against it:

http://iframely.com/iframely?uri=

This endpoint is provided courtesy of Itteco and has the latest version of iframely deployed. It is subject to restarts and rate-limits and thus is not suitable for production use.

Please deploy iframely on your own hardware before going live.

Quick API Response Intro

In response to /iframely?uri= requests, Iframely will return JSON with the embed links and unified meta semantics.

Response structure is close resemblance of the following analogue of <head> part of the URL's page:

<head>
    <meta name="..." value="..."/>
    <link rel="iframely player" href="..." type="text/html" media="aspect-ratio: 1.778" title="...">
</head>

JSON response will look like:

{
  "meta": {                                         -- Unified meta object, see description in next section.
    "title": "BLACK&BLUE",                          -- Page title attribte.
    ...
  },
  "links": [                                        -- Array of links which can be rendered.
    {
      "href": "//player.vimeo.com/video/67452063",  -- URI of link. If both http and https are available, starts with `//`
      "type": "text/html",                          -- MIME type of link content.
      "rel": [                                      -- Array of link semantic types.
        "player",                                   -- `player` - is widget playing some media.
        "iframely"                                  -- `iframely` - indicates custom code of Iframely:
                                                        in this example, we added responsive `aspect-ratio` and `//` 
      ],
      "title": "BLACK&BLUE",                        -- Usual html link title attribute, equals meta.title.
      "media": {                                    -- "media query" semantics to provide widget media properties.
        "aspect-ratio": 1.778                       -- This means widget is responsive and proportionally resizable.
      }
    },
    ...
  ]
}

You can use iframely.js jQuery script to communicate with Iframely endpoint and render the embeds. See docs folder for more details on API and iframely.js

Visual Debug Tool

The visusal debug tool is at http://iframely.com/debug. Once you deploy Iframely to your own servers, you will have your own copy of technical debug tool at /debug address.

You can also get a debugger as Google Chrome extension here.

Install & Other Docs

To get a copy of Iframely, you have three options:

Please, see the docs folder for more detailed install and configuration instructions as well as API description.

Sample Apps & Demos

Itteco has developed the following services based on Iframely technology:

If you'd like your app to be included into the list - please, fork repository and add it to README.md, then submit pull-request.

Contributing

Please, feel free to reach us on Twitter or to submit an issue.

Fork and do a pull-request, if you'de like to add more plugins and/or contribute fixes or improvements. By doing so, you make your work available under the same MIT license.

If you are a publisher and would like to make your embeds available as oEmbed/2 (and thus distributed through iframely) - please, do get in touch or cast your email here.

Authors

The authors and maintainers of the package are these guys from Itteco:

Please, check the contributors list to get to know awesome folks that also helped a lot.

About

oEmbed/2 gateway. Get embed data for any URL through single self-hosted API endpoint. Written in Node.JS. Handles oEmbed, Open Graph, Twitter Cards and close to 100 custom domains - out-of-the-box.

Resources

License

Stars

Watchers

Forks

Packages

No packages published