From 0f5917f4e2aadd79d4b153f5b66bfbe5f269f28a Mon Sep 17 00:00:00 2001 From: Bastian Hofmann Date: Sat, 19 May 2012 11:41:43 +0200 Subject: [PATCH 1/4] various enhancements: - travis ci support - composer support - psr-0 compatibility - encoding fixes - fallback to title and description meta tag if no og tags are available - exchanged file_get_content to buzz browser, so that content fetching can be mocked in tests - some code cleanup (doc comments, code formating) --- .gitignore | 3 + .travis.yml | 10 ++ OpenGraph.php | 154 -------------------- OpenGraphTest.php | 31 ---- composer.json | 30 ++++ composer.lock | 18 +++ phpunit.xml | 25 ++++ src/OpenGraph/OpenGraph.php | 242 +++++++++++++++++++++++++++++++ test/OpenGraph/OpenGraphTest.php | 57 ++++++++ 9 files changed, 385 insertions(+), 185 deletions(-) create mode 100644 .gitignore create mode 100644 .travis.yml delete mode 100644 OpenGraph.php delete mode 100644 OpenGraphTest.php create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 phpunit.xml create mode 100644 src/OpenGraph/OpenGraph.php create mode 100644 test/OpenGraph/OpenGraphTest.php diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1b0761d --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.idea +composer.phar +vendor \ No newline at end of file diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..e85ae18 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,10 @@ +language: php + +php: + - 5.3 + +before_script: + - wget -nc http://getcomposer.org/composer.phar + - php composer.phar install + +script: phpunit \ No newline at end of file diff --git a/OpenGraph.php b/OpenGraph.php deleted file mode 100644 index ee7cce8..0000000 --- a/OpenGraph.php +++ /dev/null @@ -1,154 +0,0 @@ - array('activity', 'sport'), - 'business' => array('bar', 'company', 'cafe', 'hotel', 'restaurant'), - 'group' => array('cause', 'sports_league', 'sports_team'), - 'organization' => array('band', 'government', 'non_profit', 'school', 'university'), - 'person' => array('actor', 'athlete', 'author', 'director', 'musician', 'politician', 'public_figure'), - 'place' => array('city', 'country', 'landmark', 'state_province'), - 'product' => array('album', 'book', 'drink', 'food', 'game', 'movie', 'product', 'song', 'tv_show'), - 'website' => array('blog', 'website'), - ); - - /** - * Holds all the Open Graph values we've parsed from a page - * - */ - private $_values = array(); - - /** - * Fetches a URI and parses it for Open Graph data, returns - * false on error. - * - * @param $URI URI to page to parse for Open Graph data - * @return OpenGraph - */ - static public function fetch($URI) { - return self::_parse(file_get_contents($URI)); - } - - /** - * Parses HTML and extracts Open Graph data, this assumes - * the document is at least well formed. - * - * @param $HTML HTML to parse - * @return OpenGraph - */ - static private function _parse($HTML) { - $old_libxml_error = libxml_use_internal_errors(true); - - $doc = new DOMDocument(); - $doc->loadHTML($HTML); - - libxml_use_internal_errors($old_libxml_error); - - $tags = $doc->getElementsByTagName('meta'); - if (!$tags || $tags->length === 0) { - return false; - } - - $page = new self(); - - foreach ($tags AS $tag) { - if ($tag->hasAttribute('property') && - strpos($tag->getAttribute('property'), 'og:') === 0) { - $key = strtr(substr($tag->getAttribute('property'), 3), '-', '_'); - $page->_values[$key] = $tag->getAttribute('content'); - } - } - - if (empty($page->_values)) { return false; } - - return $page; - } - - /** - * Helper method to access attributes directly - * Example: - * $graph->title - * - * @param $key Key to fetch from the lookup - */ - public function __get($key) { - if (array_key_exists($key, $this->_values)) { - return $this->_values[$key]; - } - - if ($key === 'schema') { - foreach (self::$TYPES AS $schema => $types) { - if (array_search($this->_values['type'], $types)) { - return $schema; - } - } - } - } - - /** - * Return all the keys found on the page - * - * @return array - */ - public function keys() { - return array_keys($this->_values); - } - - /** - * Helper method to check an attribute exists - * - * @param $key - */ - public function __isset($key) { - return array_key_exists($key, $this->_values); - } - - /** - * Will return true if the page has location data embedded - * - * @return boolean Check if the page has location data - */ - public function hasLocation() { - if (array_key_exists('latitude', $this->_values) && array_key_exists('longitude', $this->_values)) { - return true; - } - - $address_keys = array('street_address', 'locality', 'region', 'postal_code', 'country_name'); - $valid_address = true; - foreach ($address_keys AS $key) { - $valid_address = ($valid_address && array_key_exists($key, $this->_values)); - } - return $valid_address; - } - - /** - * Iterator code - */ - private $_position = 0; - public function rewind() { reset($this->_values); $this->_position = 0; } - public function current() { return current($this->_values); } - public function key() { return key($this->_values); } - public function next() { next($this->_values); ++$this->_position; } - public function valid() { return $this->_position < sizeof($this->_values); } -} diff --git a/OpenGraphTest.php b/OpenGraphTest.php deleted file mode 100644 index 130ca5f..0000000 --- a/OpenGraphTest.php +++ /dev/null @@ -1,31 +0,0 @@ -assertType('OpenGraph', $o); - - $this->assertAttributeEquals( - array( - 'title' => 'Oceans', - 'type' => 'movie', - 'image' => 'http://images.rottentomatoes.com/images/movie/custom/68/10011268.jpg', - 'url' => 'http://www.rottentomatoes.com/m/10011268-oceans/', - 'site_name' => 'Rotten Tomatoes', - ), - '_values', - $o - ); - } - - public function testFetchReturnsFalseForWebsiteWithNoOpenGraphMetadata() - { - $this->assertEquals(FALSE, OpenGraph::fetch('http://www.example.org/')); - } -} diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..98aa5ea --- /dev/null +++ b/composer.json @@ -0,0 +1,30 @@ +{ + "name":"scottmac/opengraph", + "description":"Helper class for accessing the OpenGraph Protocol", + "keywords":[ + "OpenGraph" + ], + "homepage":"http://github.com/scottmac/opengraph", + "type":"library", + "license":"Apache 2.0", + "authors":[ + { + "name":"Scott MacVicar", + "homepage":"http://www.macvicar.net" + }, + { + "name":"Bastian Hofmann", + "email":"bastian.hofmann@researchgate.net", + "homepage":"http://www.bastianhofmann.de" + } + ], + "require":{ + "php":">=5.3.2", + "kriswallsmith/buzz":"*" + }, + "autoload": { + "psr-0": { + "OpenGraph": "src/" + } + } +} \ No newline at end of file diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..3c430dd --- /dev/null +++ b/composer.lock @@ -0,0 +1,18 @@ +{ + "hash": "a8469d58b3775c606386faff0154ab19", + "packages": [ + { + "package": "kriswallsmith/buzz", + "version": "dev-master", + "source-reference": "1bab480dfdb3e4687dcb60a76eaed5b1e59a20cb" + } + ], + "packages-dev": null, + "aliases": [ + + ], + "minimum-stability": "dev", + "stability-flags": [ + + ] +} diff --git a/phpunit.xml b/phpunit.xml new file mode 100644 index 0000000..52c8535 --- /dev/null +++ b/phpunit.xml @@ -0,0 +1,25 @@ + + + + + test + + + \ No newline at end of file diff --git a/src/OpenGraph/OpenGraph.php b/src/OpenGraph/OpenGraph.php new file mode 100644 index 0000000..61b9b64 --- /dev/null +++ b/src/OpenGraph/OpenGraph.php @@ -0,0 +1,242 @@ + array('activity', 'sport'), + 'business' => array('bar', 'company', 'cafe', 'hotel', 'restaurant'), + 'group' => array('cause', 'sports_league', 'sports_team'), + 'organization' => array('band', 'government', 'non_profit', 'school', 'university'), + 'person' => array('actor', 'athlete', 'author', 'director', 'musician', 'politician', 'public_figure'), + 'place' => array('city', 'country', 'landmark', 'state_province'), + 'product' => array('album', 'book', 'drink', 'food', 'game', 'movie', 'product', 'song', 'tv_show'), + 'website' => array('blog', 'website'), + ); + + /** + * Holds all the Open Graph values we've parsed from a page + * @var array + */ + private $_values = array(); + + /** + * Fetches a URI and parses it for Open Graph data, returns + * false on error. + * + * @param string $URI URI to page to parse for Open Graph data + * @param \Buzz\Browser|null $browser + * @return \OpenGraph\OpenGraph + */ + static public function fetch($URI, \Buzz\Browser $browser = null) { + if ($browser === null) { + $browser = new \Buzz\Browser(); + } + /** @var \Buzz\Message\Response $response */ + $response = $browser->get($URI); + $responseHeaders = $response->getHeaders(); + + $charset = null; + + foreach ($responseHeaders as $responseHeader) { + if (strpos($responseHeader, 'Content-Type') !== 0) { + continue; + } + $matches = array(); + preg_match('/charset=([a-zA-Z0-9\-\_]+)/', $responseHeader, $matches); + + if (isset($matches[1])) { + $charset = $matches[1]; + } + } + + return self::_parse($response, $charset); + } + + /** + * Parses HTML and extracts Open Graph data, this assumes + * the document is at least well formed. + * + * @param string $HTML HTML to parse + * @param string $charset encoding of html page + * @return \OpenGraph\OpenGraph + */ + static private function _parse($HTML, $charset) { + if (!empty($HTML)) { + if (empty($charset)) { + $charset = mb_detect_encoding($HTML); + } + $headpos = mb_strpos($HTML, ''); + if (false === $headpos) { + $headpos = mb_strpos($HTML, ''); + } + if (false !== $headpos) { + $headpos += 6; + $HTML = mb_substr($HTML, 0, $headpos) . '' . mb_substr($HTML, $headpos); + } + $HTML = mb_convert_encoding($HTML, 'HTML-ENTITIES', $charset); + } + + $old_libxml_error = libxml_use_internal_errors(true); + + $doc = new \DOMDocument(); + $doc->loadHTML($HTML); + + libxml_use_internal_errors($old_libxml_error); + + $tags = $doc->getElementsByTagName('meta'); + if (!$tags || $tags->length === 0) { + return false; + } + + $page = new self(); + + $nonOgDescription = null; + + foreach ($tags AS $tag) { + /** @var \DOMElement $tag */ + if ($tag->hasAttribute('property') && + strpos($tag->getAttribute('property'), 'og:') === 0 + ) { + $key = strtr(substr($tag->getAttribute('property'), 3), '-', '_'); + $page->_values[$key] = $tag->getAttribute('content'); + } + if ($tag->hasAttribute('name') && $tag->getAttribute('name') === 'description') { + $nonOgDescription = $tag->getAttribute('content'); + } + } + + if (!isset($page->_values['title'])) { + $titles = $doc->getElementsByTagName('title'); + if ($titles->length > 0) { + $page->_values['title'] = $titles->item(0)->textContent; + } + } + if (!isset($page->_values['description']) && $nonOgDescription) { + $page->_values['description'] = $nonOgDescription; + } + + if (empty($page->_values)) { + return false; + } + + return $page; + } + + /** + * Helper method to access attributes directly + * Example: + * $graph->title + * + * @param string $key Key to fetch from the lookup + * @return string|null + */ + public function __get($key) { + if (array_key_exists($key, $this->_values)) { + return $this->_values[$key]; + } + + if ($key === 'schema') { + foreach (self::$TYPES AS $schema => $types) { + if (array_search($this->_values['type'], $types)) { + return $schema; + } + } + } + } + + /** + * Return all the keys found on the page + * + * @return array + */ + public function keys() { + return array_keys($this->_values); + } + + /** + * Helper method to check an attribute exists + * + * @param string $key + * @return bool + */ + public function __isset($key) { + return array_key_exists($key, $this->_values); + } + + /** + * Will return true if the page has location data embedded + * + * @return boolean Check if the page has location data + */ + public function hasLocation() { + if (array_key_exists('latitude', $this->_values) && array_key_exists('longitude', $this->_values)) { + return true; + } + + $address_keys = array('street_address', 'locality', 'region', 'postal_code', 'country_name'); + $valid_address = true; + foreach ($address_keys AS $key) { + $valid_address = ($valid_address && array_key_exists($key, $this->_values)); + } + return $valid_address; + } + + /** + * Iterator code + * @var int + */ + private $_position = 0; + + public function rewind() { + reset($this->_values); + $this->_position = 0; + } + + /** + * @return string + */ + public function current() { + return current($this->_values); + } + + /** + * @return string + */ + public function key() { + return key($this->_values); + } + + public function next() { + next($this->_values); + ++$this->_position; + } + + /** + * @return bool + */ + public function valid() { + return $this->_position < sizeof($this->_values); + } +} diff --git a/test/OpenGraph/OpenGraphTest.php b/test/OpenGraph/OpenGraphTest.php new file mode 100644 index 0000000..cf53939 --- /dev/null +++ b/test/OpenGraph/OpenGraphTest.php @@ -0,0 +1,57 @@ +assertInstanceOf('OpenGraph\OpenGraph', $o); + + $this->assertAttributeEquals( + array( + 'title' => 'Oceans (Disneynature\'s Oceans)', + 'type' => 'video.movie', + 'image' => 'http://content9.flixster.com/movie/11/04/79/11047971_pro.jpg', + 'url' => 'http://www.rottentomatoes.com/m/10011268-oceans/', + 'description' => 'Oceans adds another visually stunning chapter to the Disney Nature library.' + ), + '_values', + $o + ); + } + + public function testFetchParsesFallbacksForWebsiteWithNoOpenGraphMetadata() { + $o = OpenGraph::fetch( + 'http://www.example.org/' + ); + + $this->assertInstanceOf('OpenGraph\OpenGraph', $o); + + $this->assertAttributeEquals( + array( + 'title' => 'IANA — Example domains', + ), + '_values', + $o + ); + } +} From aadc9ed6e77ce1080ddb2d5320368fdf0a9730ec Mon Sep 17 00:00:00 2001 From: Bastian Hofmann Date: Sat, 19 May 2012 11:46:06 +0200 Subject: [PATCH 2/4] added ext-dom as a requirement --- composer.json | 1 + composer.lock | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 98aa5ea..445f2c3 100644 --- a/composer.json +++ b/composer.json @@ -20,6 +20,7 @@ ], "require":{ "php":">=5.3.2", + "ext-dom":"*", "kriswallsmith/buzz":"*" }, "autoload": { diff --git a/composer.lock b/composer.lock index 3c430dd..cea9d2d 100644 --- a/composer.lock +++ b/composer.lock @@ -1,5 +1,5 @@ { - "hash": "a8469d58b3775c606386faff0154ab19", + "hash": "21a3860ed8fa2a5c5da5c87ac73f5f80", "packages": [ { "package": "kriswallsmith/buzz", From 11344232424b55bbde9b35a2c9ffbf8ab3617f70 Mon Sep 17 00:00:00 2001 From: Bastian Hofmann Date: Sat, 19 May 2012 11:50:44 +0200 Subject: [PATCH 3/4] readme updates --- README.md | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index d9e1c02..a3dab27 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,29 @@ -# Open Graph Protocol helper for PHP +Open Graph Protocol helper for PHP +================================== A small library for making accessing of Open Graph Protocol data easier -## Note +Note +---- + Keys with a dash (-) in the name are converted to _ for easy access as a property in PHP -## Required Extensions +Installation +============ + +To use the library in your project, just install it with Composer (http://getcomposer.org/) +from the Packagist repository (http://packagist.org/). + +Required Extensions +------------------- + * DOM for parsing -## Usage - require_once('OpenGraph.php'); +Usage +===== - $graph = OpenGraph::fetch('http://www.rottentomatoes.com/m/10011268-oceans/'); + $graph = \OpenGraph\OpenGraph::fetch('http://www.rottentomatoes.com/m/10011268-oceans/'); var_dump($graph->keys()); var_dump($graph->schema); From f560c60131398af087c17d7d4b4567b9a48a5a01 Mon Sep 17 00:00:00 2001 From: Bastian Hofmann Date: Sat, 19 May 2012 12:01:38 +0200 Subject: [PATCH 4/4] test against fixtures instead of duing http requests --- test/OpenGraph/OpenGraphTest.php | 28 +- test/OpenGraph/_fixtures/non_og.txt | 87 + test/OpenGraph/_fixtures/og.txt | 15700 ++++++++++++++++++++++++++ 3 files changed, 15813 insertions(+), 2 deletions(-) create mode 100644 test/OpenGraph/_fixtures/non_og.txt create mode 100644 test/OpenGraph/_fixtures/og.txt diff --git a/test/OpenGraph/OpenGraphTest.php b/test/OpenGraph/OpenGraphTest.php index cf53939..f7a3c4f 100644 --- a/test/OpenGraph/OpenGraphTest.php +++ b/test/OpenGraph/OpenGraphTest.php @@ -21,7 +21,8 @@ class OpenGraphTest extends \PHPUnit_Framework_TestCase { public function testFetch() { $o = OpenGraph::fetch( - 'http://www.rottentomatoes.com/m/10011268-oceans/' + 'http://www.rottentomatoes.com/m/10011268-oceans/', + $this->getMockBrowser() ); $this->assertInstanceOf('OpenGraph\OpenGraph', $o); @@ -41,7 +42,8 @@ public function testFetch() { public function testFetchParsesFallbacksForWebsiteWithNoOpenGraphMetadata() { $o = OpenGraph::fetch( - 'http://www.example.org/' + 'http://www.example.org/', + $this->getMockBrowser() ); $this->assertInstanceOf('OpenGraph\OpenGraph', $o); @@ -54,4 +56,26 @@ public function testFetchParsesFallbacksForWebsiteWithNoOpenGraphMetadata() { $o ); } + + /** + * @return \PHPUnit_Framework_MockObject_MockObject|\Buzz\Browser + */ + private function getMockBrowser() { + $mockBrowser = $this->getMockBuilder('\Buzz\Browser')->disableOriginalConstructor()->getMock(); + + $ogResponse = new \Buzz\Message\Response(); + $ogResponse->setContent(file_get_contents(__DIR__ . '/_fixtures/og.txt')); + + $nonOgResponse = new \Buzz\Message\Response(); + $nonOgResponse->setContent(file_get_contents(__DIR__ . '/_fixtures/non_og.txt')); + + $mockBrowser->expects($this->exactly(1)) + ->method('get') + ->will($this->returnValueMap(array( + array('http://www.rottentomatoes.com/m/10011268-oceans/', array(), $ogResponse), + array('http://www.example.org/', array(), $nonOgResponse), + ))); + + return $mockBrowser; + } } diff --git a/test/OpenGraph/_fixtures/non_og.txt b/test/OpenGraph/_fixtures/non_og.txt new file mode 100644 index 0000000..bdeaab8 --- /dev/null +++ b/test/OpenGraph/_fixtures/non_og.txt @@ -0,0 +1,87 @@ + + + + IANA — Example domains + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +

Example Domains

+ +

As described in RFC 2606, + we maintain a number of domains such as EXAMPLE.COM and EXAMPLE.ORG + for documentation purposes. These domains may be used as illustrative + examples in documents without prior coordination with us. They are + not available for registration.

+ + +
+
+ + + + + + + diff --git a/test/OpenGraph/_fixtures/og.txt b/test/OpenGraph/_fixtures/og.txt new file mode 100644 index 0000000..ff25e62 --- /dev/null +++ b/test/OpenGraph/_fixtures/og.txt @@ -0,0 +1,15700 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Oceans (Disneynature's Oceans) - Rotten Tomatoes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ + Skip this ad » + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + +Rotten Tomatoes Logo + + + + + Do you want to see ‘Oceans (Disneynature's Oceans)’? + + + +
+
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Oceans (Disneynature's Oceans) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + +
+ + + + +
+ +
+

Oceans (Disneynature's Oceans) (2009)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+

tomatometer

+ + + + +
+ + + + + + + + + + + + + 81 + + + +

+ Average Rating: 7.4/10
+ Reviews Counted: 73
+ Fresh: 59 | Rotten: 14 +

+
+ +
+
+ +

Oceans adds another visually stunning chapter to the Disney Nature library.

+
+ + + + +
+
+ + + + +
+ + + + + + + + 86 +

+ Average Rating: 7.7/10
+ Critic Reviews: 21
+ Fresh: 18 | Rotten: 3

+
+ +
+
+ +

Oceans adds another visually stunning chapter to the Disney Nature library.

+
+ + + + +
+
+ + + + +

audience

+ + + 70 +

+ liked it
+ Average Rating: 2.9/5
+ User Ratings: 97,143 +

+ + + +
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +

My Rating

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ +
+ + + +
+
+

+
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Movie Info

+
+

+ + + + + Winged Migration co-directors Jacques Cluzaud and Jacques Perrin re-team for this documentary produced for Walt Disney Studios' Disneynature banner and exploring the many mysteries of our planet's oceans. Almost three-quarters of the earth's surface is covered by oceans, yet strangely we seem to know more about deep space than the world of the sea. There's no question that the ocean has played a crucial role in the history and sustenance of humankind, but what secrets does the underwater world + + + + + + + + + + + + + + + + + + + + + + + + + + +

+
+

+ + + G, + + 1 hr. 43 min. +

+ +

+ + + Documentary, + + Drama + + +

+ + +

+ + + + + + + + + + + + + + + + + + + + + + + + , + + + + + + + + + + + + + + + + + + + + + + + + +

+ + +
+
+

+

Oct 19, 2010

+

$19.0M

+

Disneynature

+
+
+ +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +

Oceans (Disneynature's Oceans) Trailer & Photos

+ + + + +
+
+ +
+ More Photos (27) +
    + +
  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • + +
  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • + +
  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • + +
  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • + +
+
+
+ More Trailers and Videos (10) + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +

Cast

+ + + + +
+
+ + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +

+ + + + + + + + + + + + + + + + + + + + + + + +Critic Reviews for Oceans (Disneynature's Oceans) +

+ + + + +
+
+ + + +

+ + + + + + + + + + + + + + + + + + + + + + + + +All Critics (75) + + | + + + + + + + + + + + + + + + + + + + + + + + +Top Critics (21) + + | + + + + + + + + + + + + + + + + + + + + + + + +Fresh (60) + + | + + + + + + + + + + + + + + + + + + + + + + + +Rotten (14) + + | + + + + + + + + + + + + + + + + + + + + + + + +DVD (5) + +

+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+
+

Visually [it's] quite seductive.

+
+ April 26, 2010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Full Review + + + + + + + + + + + + + + + + + + + +Source: At the Movies + + + + | + + + + + + + + + + + + + + + + + + + + + + + + + + +Comment (1) + +
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +Michael Phillips +
+ + + +
At the Movies
+ + +
+ + + + + + + + + + + + + + + + + + + +Top Critic IconTop Critic
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+
+

Oh, it's amazing.

+
+ April 26, 2010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Full Review + + + + + + + + + + + + + + + + + + + +Source: At the Movies + + + + | + + + + + + + + + + + + + + + + + + + + + + + + + + +Comment + +
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +A.O. Scott +
+ + + +
At the Movies
+ + +
+ + + + + + + + + + + + + + + + + + + +Top Critic IconTop Critic
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+
+

Its visual splendor more than makes up for its intellectual poverty.

+
+ April 23, 2010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Full Review + + + + + + + + + + + + + + + + + + + +Source: Slate + + + + | + + + + + + + + + + + + + + + + + + + + + + + + + + +Comment + +
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +Dana Stevens +
+ + + +
Slate
+ + +
+ + + + + + + + + + + + + + + + + + + +Top Critic IconTop Critic
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+
+

There are life-and-death dramas, moments of playfulness and tenderness, which create an ever-increasing sense of wonder.

+
+ April 23, 2010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Full Review + + + + + + + + + + + + + + + + + + + +Source: Globe and Mail + + + + | + + + + + + + + + + + + + + + + + + + + + + + + + + +Comments (2) + +
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +Liam Lacey +
+ + + +
Globe and Mail
+ + +
+ + + + + + + + + + + + + + + + + + + +Top Critic IconTop Critic
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+
+

Horseshoe crabs scuttle like possessed Nazi helmets and a school of fish morphs from dreidel to disco ball, as if choreographed by Busby Berkeley.

+
+ April 23, 2010 + + + + + + + + + + + + + + + + + + + + + + + + + + + +Comment + +
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +Jeannette Catsoulis +
+ + + +
New York Times
+ + +
+ + + + + + + + + + + + + + + + + + + +Top Critic IconTop Critic
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+
+

Oceans is more of a random collection of images from the deep. But, boy, what images.

+
+ April 23, 2010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Full Review + + + + + + + + + + + + + + + + + + + +Source: Dallas Morning News + + + + | + + + + + + + + + + + + + + + + + + + + + + + + + + +Comments (4) + +
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +Cary Darling +
+ + + +
Dallas Morning News
+ + +
+ + + + + + + + + + + + + + + + + + + +Top Critic IconTop Critic
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+
+

Oceans contains some of the most beautiful imagery ever seen in a feature-length documentary.

+
+ May 25, 2011 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Full Review + + + + + + + + + + + + + + + + + + + +Source: ABC Radio Brisbane + + + + | + + + + + + + + + + + + + + + + + + + + + + + + + + +Comment + +
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +Matthew Toomey +
+ + + +
ABC Radio Brisbane
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+
+

New technology has helped these filmmakers to build new tools for underwater cinematography that enables them to be more flexible, faster in the water, which is how they captured profile footage of dolphins speeding through the water, for example

+
+ May 21, 2011 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Full Review + + + + + + + + + + + + + + + + + + + +Source: Urban Cinefile + + + + | + + + + + + + + + + + + + + + + + + + + + + + + + + +Comment + +
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +Andrew L. Urban +
+ + + +
Urban Cinefile
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+
+

Enthralling, enlightening, meditative and often humorous, this is a wonderful documentary about the oceans and those who live within it

+
+ May 21, 2011 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Full Review + + + + + + + + + + + + + + + + + + + +Source: Urban Cinefile + + + + | + + + + + + + + + + + + + + + + + + + + + + + + + + +Comment + +
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +Louise Keller +
+ + + +
Urban Cinefile
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+
+

A visually stunning plunge into the life aquatic; shame about the narration.

+
+ May 18, 2011 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Full Review + + + + + + + + + + + + + + + + + + + +Source: sbs.com.au + + + + | + + + + + + + + + + + + + + + + + + + + + + + + + + +Comment + +
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +Don Groves +
+ + + +
sbs.com.au
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+
+

Compactly profound, appropriately humbling, and this is just the tip of the iceberg.

+
+ November 29, 2010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Full Review + + + + + + + + + + + + + + + + + + + +Source: Projection Booth + + + + | + + + + + + + + + + + + + + + + + + + + + + + + + + +Comment + +
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +Rob Humanick +
+ + + +
Projection Booth
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+
+

Where's SpongeBob SquarePants when you really need him?

+
+ November 27, 2010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Full Review + + + + + + + + + + + + + + + + + + + +Source: Film Threat + + + + | + + + + + + + + + + + + + + + + + + + + + + + + + + +Comment + +
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +Phil Hall +
+ + + +
Film Threat
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+
+

If the film does have a standout quality, it would be its meditativeness.

+
+ October 28, 2010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Full Review + + + + + + + + + + + + + + + + + + + +Source: ReelTalk Movie Reviews + + + + | + + + + + + + + + + + + + + + + + + + + + + + + + + +Comment + +
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +Jeffrey Chen +
+ + + +
ReelTalk Movie Reviews
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+
+

Oceans is bound to be a big hit among children, stoners, stoners' children, spinster stoners, and anyone that enjoy movies with immersive photography and intricate sound design.

+
+ October 24, 2010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Full Review + + + + + + + + + + + + + + + + + + + +Source: Slant Magazine + + + + | + + + + + + + + + + + + + + + + + + + + + + + + + + +Comment + +
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +Simon Abrams +
+ + + +
Slant Magazine
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+
+

Stunning images of some of the most breathtaking and fascinatingly odd creatures of the sea. No cute story added, or needed.

+
+ June 28, 2010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Full Review + + + + + + + + + + + + + + + + + + + +Source: Spectrum (St. George, Utah) + + + + | + + + + + + + + + + + + + + + + + + + + + + + + + + +Comment (1) + +
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +Bruce Bennett +
+ + + +
Spectrum (St. George, Utah)
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+
+

a beautiful--at times breathtaking--visual examination of the undersea world

+
+ May 24, 2010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Full Review + + + + + + + + + + + + + + + + + + + +Source: Q Network Film Desk + + + + | + + + + + + + + + + + + + + + + + + + + + + + + + + +Comment (1) + +
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +James Kendrick +
+ + + +
Q Network Film Desk
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+
+

Fantastic creatures, fantastic photography

+
+ May 16, 2010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Full Review + + + + + + + + + + + + + + + + + + + +Source: Laramie Movie Scope + + + + | + + + + + + + + + + + + + + + + + + + + + + + + + + +Comments (2) + +
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +Robert Roten +
+ + + +
Laramie Movie Scope
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+
+

Oceans presents the superb underwater photography and cool critters we have come to love from the best nature documentaries.

+
+ May 12, 2010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Full Review + + + + + + + + + + + + + + + + + + + +Source: Atlantic City Weekly + + + + | + + + + + + + + + + + + + + + + + + + + + + + + + + +Comments (2) + +
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +Lori Hoffman +
+ + + Atlantic City Weekly + + + + + + + + + + + + + + + + + + + +Source: Atlantic City Weekly + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+
+

Quite the beautiful picture to look at, but the person who swims with the Great White is totally insane.

+
+ May 6, 2010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Full Review + + + + + + + + + + + + + + + + + + + +Source: Reno News and Review + + + + | + + + + + + + + + + + + + + + + + + + + + + + + + + +Comment (1) + +
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +Bob Grimm +
+ + + +
Reno News and Review
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + +
+
+
+

Could the script have been less informative? Could it have been more soporifically read than Pierce Brosnan's rendition? I don't think so.

+
+ May 1, 2010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Full Review + + + + + + + + + + + + + + + + + + + +Source: tonymedley.com + + + + | + + + + + + + + + + + + + + + + + + + + + + + + + + +Comments (5) + +
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +Tony Medley +
+ + + tonymedley.com + + + + + + + + + + + + + + + + + + + +Source: tonymedley.com + + + + +
+
+
+ + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +More Critic Reviews + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +

Audience Reviews for Oceans (Disneynature's Oceans)

+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + +View All +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
+ +

+ I had high expectations for Oceans and they weren't met. After about 10 minutes I thought the movie was just starting off slow showing some images and then would dive deeper into some issues or facts. 20 minutes later I could see that this would never happen. Visually the movie is very good, with great footage of + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + July 5, 2011 +
+ +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + blkbomb + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Melvin White + +
+ +

Super Reviewer

+ +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
+ +

+ An ecological drama/documentary, filmed throughout the globe. Part thriller, part meditation on the vanishing wonders of the sub-aquatic world. Amazing! I loved this documentary. I saw some things I had never seen before. I was impress on how many different ways and shapes God has created these animals that live in the + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + April 29, 2010 +
+ +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + xXGiNoBiLiPRXx + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Manu Gino + +
+ +

Super Reviewer

+ +
+
+ + +
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +

+ + + + + + + + + + + + + + + + + + + +Oceans (Disneynature's Oceans) Quotes + + + +

+ + + +
+ + + + + + + + + + + + + + + + +View All
+
+
+ +

+ + + +
    + + +
  • +
      + + +
    1. Narrator: Down here, it's like Nature has given everything a try: every color, every way of life, every shape.
    2. + + +
    +
    – Submitted by + + + + + + + + + + + + + + + + + + + + + + + + + +Breanna M (10 months ago) + + +
    +
  • + +
+ + + +
+ + + + +
+ +
+ + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +

DVD

+ + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Top Rentals

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 29% + + + + + + + + + + + + + + + + + + + + + + + + + + + +The Vow +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 93% + + + + + + + + + + + + + + + + + + + + + + + + + + + +Mission: Impossible Ghost Protoc... +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 87% + + + + + + + + + + + + + + + + + + + + + + + + + + + +The Girl with the Dragon Tattoo +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 29% + + + + + + + + + + + + + + + + + + + + + + + + + + + +Underworld Awakening +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 85% + + + + + + + + + + + + + + + + + + + + + + + + + + + +Chronicle +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

New On DVD This Week

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 85% + + + + + + + + + + + + + + + + + + + + + + + + + + + +Chronicle +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 79% + + + + + + + + + + + + + + + + + + + + + + + + + + + +The Grey +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 7% + + + + + + + + + + + + + + + + + + + + + + + + + + + +The Devil Inside +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2% + + + + + + + + + + + + + + + + + + + + + + + + + + + +One for the Money +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 76% + + + + + + + + + + + + + + + + + + + + + + + + + + + +Rampart +
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +

Movies Like Oceans (Disneynature's Oceans)

+ + + + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + +Born To Be Wild +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + +The Cove +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +

Latest News for Oceans (Disneynature's Oceans)

+ + + + +
+
+ + +

+

April 23, 2010:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Critics Consensus: The Back-Up Plan Is Second Rate + + + +
+ + This week at the movies, we've got pregnancy pratfalls (The Back-up Plan, starring Jennifer Lopez... +

+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +

What's Hot On RT

+ + + + +
+
+ +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +Critics Consensus + + +
+ Critics Consensus +

Battleship sinks to high heaven

+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +Amazing Spider-Man + + +
+ Amazing Spider-Man +

Video: Your friendly four minute preview

+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +Skyfall + + +
+ Skyfall +

New 007 poster and pictures

+
+
+ +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +

Top Movie Quizzes

+ + + + +
+
+ + + +
+ +
+
LEGO Mania: 2011 Best Picture Nominees
+
by natalie - 21,849 taken
+ created 15 months ago +
+
+ + +
+ +
+
How Much Do You Know About Leonardo DiCaprio?
+
by natalie - 52,961 taken
+ created 18 months ago +
+
+ + +
+ +
+
Pixar Movies!
+
by jdikwlzviv - 32,161 taken
+ created 18 months ago +
+
+ + +
+ +
+
The Wizards of Harry Potter
+
by jdikwlzviv - 32,765 taken
+ created 18 months ago +
+
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +

Movie News

+ + + + +
+
+ +

Featured on RT

+
Comments
+ + + +

Top Headlines

+ + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +

Foreign Titles

+ + + + +
+
+ +
    + +
  • Unsere Ozeane (DE)
  • + +
  • Oceans (UK)
  • + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ + +
+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file