I\'m making an application that retrieve tweets on Twitter of a user.
Those feeds contains links to external resources, such as Artciles, Webpage or YouTube video.
DISCLAIMER: OpenGraph.io is a commercial product I work on and support.
As you mentioned, often times there are no OG tags to work with. There are all sorts of scenarios you can come across (e.g. encoding, misusing HTML tags, etc). If you want to handle the edge cases I'd recommend http://www.opengraph.io/
One of its major benefits is that it will infer information like the title or description (if you end up needing it) from the content on the page if OpenGraph tags don't exist.
To get information about a site use (link should be URL encoded):
$.ajax('http://opengraph.io/api/1.0/site/http%3A%2F%2Fwww.washingtontimes.com%2F')
.done(function(data){
console.log(data);
});
Which will return something like:
{
"hybridGraph": {
"title": "Washington Times - Politics, Breaking News, US and World News",
"description": "The Washington Times delivers breaking news and commentary on the issues that affect the future of our nation.",
"image": "http://twt-assets.washtimes.com/v4/images/logo-twt.4b20fb5d7b29.svg",
"url": "http://www.washingtontimes.com/",
"type": "site",
"site_name": "Washington Times "
},
"openGraph": {...},
"htmlInferred": {...},
"requestInfo": {...}
}