npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

media-embed-server

v2.2.2

Published

Node oEmbed proxy that supports a few other non-oEmbed services and JSONP

Downloads

16

Readme

Embed media easily

media-embed-server is a node server that can parse content, extract links and return info about them. Info can be title, thumbnails, direct links etc. (depends on the service)

For some services it uses oEmbed, for others it uses other APIs.

It depends heavily on media-parser.

pars

Features

  • Non-blocking parallel fetching of data
  • Unified API for a lot of services
  • Ability to cache results in memcached
  • Minimal code base (around 100 lines for the server)
  • Support for JSONP

Installing the service

Installing the service is quite easy:

npm install media-server-embed -g

Running the service

The signature for running the service is:

media-server-embed -p <port> -c <memcached (optional)>

An example:

media-server-embed -p 8081 -c localhost:11211

API endpoints

/parseContent

Required arguments:

  • content: Content to extract media information from.

Optional arguments:

  • timeout=5: How long should we wait for the external service a timeout? Default is 5 sec.
  • min_tn_size=100: Minimum thumbnail size. Default is 100. This is useful when a resource has multiple thumbnails in different sizes.
  • callback: Wrap the result in a JavaScript function call (JSONP). Default is none.

Example:

An example of a parse request:

http://localhost:8080/parseContent?content=This+is+a+test+https://www.youtube.com/watch?v=lYHzdqGR9-U&min_tn_size=100

Successful return:

A JSON list of matched URLs and information attached to the URL. Example:

[
    {
        "url": "https://www.youtube.com/watch?v=lYHzdqGR9-U",
        "title": "[프로리그2014] 정우용(CJ) vs 김유진(진에어) 2세트 해비테이션...",
        "thumbnail": {
            "url": "...",
            "width": 100,
            "height": 100
        },
        "html": "..."
    }
]
    

Error Return

The errors are returned in the result dict as special JSON objects that have an error attribute.

Example:

[
    {
        "url": "https://www.youtube.com/watch?v=lYHzdqGR9-U",
        "error": "Service timeout"
    }
] 

Result specification

Always present:

  • url: The URL of the resource
  • title: The title of the resource
  • type: The type of the resource, can be website, image, video or audio

Can be present:

  • error: Something went wrong
  • description: The description of the URL
  • thumbnail: The thumbnail information. Will be an object that includes url, width and height
  • html: oEmbed HTML (in most cases it will be an iFrame)

/providers

Returns a list of providers that are supported, including a regular expressions that matches all the services that media-embed-server supports. If you store this regular expression locally you can answer locally if a service is supported or not.

Supported services

  • deviantart.com (oEmbed)
  • flickr.com (oEmbed)
  • hulu.com (oEmbed)
  • justin.tv (oEmbed)
  • rdio.com (oEmbed)
  • screenr.com (oEmbed)
  • slideshare.com (oEmbed)
  • soundcloud.com (oEmbed)
  • spotify.com (oEmbed)
  • ted.com (oEmbed)
  • vimeo.com (oEmbed)
  • youtube.com (oEmbed)
  • img.ly (custom)
  • instagr.am (custom)
  • twitpic.com (custom)
  • yfrog.com (custom)

Authors