diff --git a/Gemfile b/Gemfile
index fe0e640d8a95d7122603ac02652c722070c3490c..0f5979e16c1eef175a0b19e001bdafc53aa062a2 100644
--- a/Gemfile
+++ b/Gemfile
@@ -59,12 +59,12 @@ gem 'messagebus_ruby_api', '1.0.3'
 
 # Parsing
 
-gem 'nokogiri',       '1.6.0'
-gem 'rails_autolink', '1.1.0'
-gem 'redcarpet',      '3.0.0'
-gem 'roxml',          '3.1.6'
-gem 'ruby-oembed',    '0.8.8'
-gem 'opengraph',      '0.0.4'
+gem 'nokogiri',         '1.6.0'
+gem 'rails_autolink',   '1.1.0'
+gem 'redcarpet',        '3.0.0'
+gem 'roxml',            '3.1.6'
+gem 'ruby-oembed',      '0.8.8'
+gem 'opengraph_parser', '0.2.3'
 
 
 # Please remove when migrating to Rails 4
diff --git a/Gemfile.lock b/Gemfile.lock
index 0f95c94378debca3bee6197bfd4fe02cea90879a..49589170ff5bbb1fa97e2ef821e97393d4c296d8 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -249,10 +249,9 @@ GEM
     omniauth-twitter (1.0.0)
       multi_json (~> 1.3)
       omniauth-oauth (~> 1.0)
-    opengraph (0.0.4)
-      hashie
-      nokogiri (~> 1.5.0)
-      rest-client (~> 1.6.0)
+    opengraph_parser (0.2.3)
+      addressable
+      nokogiri
     orm_adapter (0.4.0)
     polyglot (0.3.3)
     pry (0.9.12.2)
@@ -326,8 +325,6 @@ GEM
     redis-namespace (1.3.0)
       redis (~> 3.0.0)
     remotipart (1.2.1)
-    rest-client (1.6.7)
-      mime-types (>= 1.16)
     rmagick (2.13.2)
     roxml (3.1.6)
       activesupport (>= 2.3.0)
@@ -470,7 +467,7 @@ DEPENDENCIES
   omniauth-facebook (= 1.4.1)
   omniauth-tumblr (= 1.1)
   omniauth-twitter (= 1.0.0)
-  opengraph (= 0.0.4)
+  opengraph_parser (= 0.2.3)
   rack-cors (= 0.2.8)
   rack-google-analytics (= 0.11.0)
   rack-piwik (= 0.2.2)
diff --git a/app/models/open_graph_cache.rb b/app/models/open_graph_cache.rb
index f146da52f94e3250a14107ceaf6b5af207db0115..71ca83982414badf3a64f095b63263b6a164c315 100644
--- a/app/models/open_graph_cache.rb
+++ b/app/models/open_graph_cache.rb
@@ -22,28 +22,24 @@ class OpenGraphCache < ActiveRecord::Base
   end
 
   def self.find_or_create_by_url(url)
-   cache = OpenGraphCache.find_or_initialize_by_url(url)
-   return cache if cache.persisted?
-   cache.fetch_and_save_opengraph_data!
-   return cache if cache.persisted?
-   return nil
+    cache = OpenGraphCache.find_or_initialize_by_url(url)
+    cache.fetch_and_save_opengraph_data! unless cache.persisted?
+    cache if cache.persisted?
   end
 
   def fetch_and_save_opengraph_data!
-    begin
-      response = OpenGraph.fetch(self.url)
-      if !response
-        return
-      end
-    rescue => e
-      # noop
-    else
-      self.title = response.title
-      self.ob_type = response.type
-      self.image = response.image
-      self.url = response.url
-      self.description = response.description
-      self.save
+    response = OpenGraph.new(self.url)
+    if response.blank? || response.type.blank?
+      return
     end
+  rescue
+    # noop
+  else
+    self.title = response.title
+    self.ob_type = response.type
+    self.image = response.images[0]
+    self.url = response.url
+    self.description = response.description
+    self.save
   end
 end