Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Doist/media-parser
oEmbed library for JavaScript with a few additional non-oEmbed sources
https://github.com/Doist/media-parser
Last synced: about 2 months ago
JSON representation
oEmbed library for JavaScript with a few additional non-oEmbed sources
- Host: GitHub
- URL: https://github.com/Doist/media-parser
- Owner: Doist
- License: mit
- Created: 2014-04-16T16:11:48.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2022-02-01T19:21:23.000Z (over 2 years ago)
- Last Synced: 2024-07-27T17:52:13.488Z (about 2 months ago)
- Language: CoffeeScript
- Size: 31.3 KB
- Stars: 12
- Watchers: 4
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Parse media easily
Simple JavaScript library to ease integration with media and oEmbed. Useful for obtaining direct links to media content and thumbnails. Uses a combination of oEmbed APIs and custom APIs.You should see [media-embed-server](https://github.com/Doist/media-embed-server) for a server that provides this as a JSON/JSONP service.
## Installing the library
Installing the service is quite easy:
npm install media-parser## Parsing info about a resource
```js
// Signature (timeout is in milliseconds):
media_parser = require('media-parser')
media_parser.parse(content, callback, timeout=5000)
``````js
// Example
media_parser = require('media-parser')
callback = function(obj) {
console.log(obj);
console.log(obj.get_thumbnail_url(55));
}
media_parser.parse('This is a test http://www.youtube.com/watch?v=9bZkp7q19f0', callback)// Will print
{
"get_thumbnail_url": [Function],
"title": 'PSY - GANGNAM STYLE (강남스타일) M/V',
"raw": { .. raw oEmbed data .. }
}
```## Result description
```js
// Example
{
"title": "...",
"underlying_type": ... can be: [page, image, video, audio] ,
"content_url": ... direct link to the content (only for some),
"content_type": ... MIME type of content_url,
"raw": ... raw oEmbed response (only for oEmbed resources),
"get_thumbnail_url": function(min_size) { ... returns thumbnail }
}
```## Other useful functions
```js
// Extract supported URLs from content
media_parser.extractURLs(content)
``````js
// Return an object of supported services:
media_parser.getProviders()
``````js
// Return a pattern that can match supported services:
media_parser.getProvidersPattern()
```## Running tests
Requires [buster](https://www.npmjs.org/package/buster):
sh compile.sh; buster-test
## Adding a new service
It should be quite trivial to add a new service:
* Add a new handler in `src/media_services.coffee`
* Add the handler to `src/media_parser.coffee`
* Add a test suite in `tests/test_core.coffee`
* Test using `sh compile.sh; buster-test`
## Supported services
These services are supported:- 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)Related
=======
* [TodoistMediaParser](https://github.com/Doist/TodoistMediaParser) - similar version done in JavaAuthors
=======
* [Amir Salihefendic](https://github.com/amix)
* [Gonçalo Silva](https://github.com/goncalossilva)