unfurled
v1.1.5
Published
Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based
Downloads
95
Maintainers
Readme
Unfurled
So, like, what does unfurl even mean?
Spread out from a rolled or folded state
Install
yarn add unfurled
Usage
unfurled(url [,opts])
url - string
of url or object
of:
uri
||url
- fully qualified uri or a parsed url object fromurl.parse()
baseUrl
- fully qualified uri string used as the base urlheaders
- http headers (default:{ 'user-agent': 'facebookexternalhit' }
)
opts - object
of:
ogp
- get open graph metadata (true || false
) (default:true
)twitter
- get twitter-card metadata (true || false
) (default:true
)oembed
- get oembed metadata (true || false
) (default:true
)other
- get other metadata too (e.g. description and title) (true || false
) (default:true
)
Examples
var unfurled = require('unfurled')
unfurled('http://example.com')
.then(console.log)
.catch(console.error)
Or if you're cool and use ES7 async await
var unfurled = require('unfurled')
;(async function () {
let result = await unfurl('https://imgur.com/gallery/fhAIf')
console.log('result', result)
})().catch(console.error)
Response (from https://imgur.com/gallery/fhAIf)
Note: Discovered metadata keys should be camelCased
{
other: {
viewport: 'width=1138',
robots: 'follow, index',
keywords: 'images, funny, image host, image sharing, reaction gif, viral images, current events, cute, visual storytelling, gif',
description: 'Album with topic of No Topic, tagged with and ; uploaded by kikiistgeil. When I log in to imgur and now I have to fight zombies',
copyright: 'Copyright 2017 Imgur, Inc.',
msapplicationTileColor: '#2cd63c',
msapplicationTileImage: '//s.imgur.com/images/favicon-144.png',
pDomainVerify: 'a1e7abe8af908cc6dfaf935dd9a20384',
fbAdmins: '12301369',
fbAppId: '127621437303857',
alAndroidUrl: 'imgur://imgur.com/gallery/fhAIf?from=fbreferral',
alAndroidAppName: 'Imgur',
alAndroidPackage: 'com.imgur.mobile',
alIosUrl: 'imgur://imgur.com/gallery/fhAIf?from=fbreferral',
alIosAppStoreId: '639881495',
alIosAppName: 'Imgur',
alWebUrl: 'http://imgur.com/gallery/fhAIf',
twitterDomain: 'imgur.com',
author: 'Imgur',
articleAuthor: 'Imgur',
articlePublisher: 'https://www.facebook.com/imgur'
},
oembed: {
version: '1.0',
type: 'rich',
providerName: 'Imgur',
providerUrl: 'https://imgur.com',
width: 540,
height: 500,
html: '<blockquote class="imgur-embed-pub" lang="en" data-id="a/fhAIf"><a href="http://imgur.com/a/fhAIf">When I log in to imgur and now I have to fight zombies</a></blockquote><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>'
},
ogp: {
ogUrl: 'http://imgur.com/gallery/fhAIf',
ogSiteName: 'Imgur',
ogTitle: 'When I log in to imgur and now I have to fight zombies',
ogType: 'article',
ogImage: [{
url: 'http://i.imgur.com/SIarU3i.jpg?fb',
width: '600',
height: '315'
}],
ogDescription: 'Imgur: The most awesome images on the Internet.'
},
twitter: {
twitterSite: '@imgur',
twitterAppIdGoogleplay: 'com.imgur.mobile',
twitterTitle: 'When I log in to imgur and now I have to fight zombies',
twitterCard: 'summary_large_image',
twitterImage: [{
url: 'https://i.imgur.com/SIarU3ih.jpg'
}],
twitterDescription: 'Imgur: The most awesome images on the Internet.'
}
}