From ca4d08063804fb264eb0ae9cc57894198f66e1fb Mon Sep 17 00:00:00 2001
From: =?utf8?q?Rog=C3=A9rio=20Brito?= <rbrito@ime.usp.br>
Date: Thu, 26 Dec 2013 16:41:27 -0200
Subject: [PATCH] Imported Upstream version 2013.12.23

---
 README.md                             |  65 +++++-
 README.txt                            | 134 ++++++++++--
 test/test_YoutubeDL.py                |  15 ++
 test/test_all_urls.py                 |   9 +-
 test/test_playlists.py                |  51 ++++-
 test/test_utils.py                    |  31 ++-
 test/test_write_info_json.py          |   1 +
 test/test_youtube_lists.py            |   8 +
 youtube-dl                            | Bin 283113 -> 313559 bytes
 youtube-dl.1                          | 148 +++++++++++--
 youtube-dl.bash-completion            |   2 +-
 youtube_dl/FileDownloader.py          |  89 +++++---
 youtube_dl/YoutubeDL.py               | 294 ++++++++++++++++++--------
 youtube_dl/__init__.py                |  96 +++++----
 youtube_dl/aes.py                     | 144 +++++++++++--
 youtube_dl/extractor/__init__.py      |  27 ++-
 youtube_dl/extractor/academicearth.py |  31 +++
 youtube_dl/extractor/addanime.py      |   2 +-
 youtube_dl/extractor/aparat.py        |  56 +++++
 youtube_dl/extractor/appletrailers.py |  25 ++-
 youtube_dl/extractor/archiveorg.py    |   2 +-
 youtube_dl/extractor/arte.py          |  25 ++-
 youtube_dl/extractor/auengine.py      |   2 +-
 youtube_dl/extractor/bambuser.py      |   2 +-
 youtube_dl/extractor/blinkx.py        |  90 ++++++++
 youtube_dl/extractor/bliptv.py        |  39 ++--
 youtube_dl/extractor/bloomberg.py     |   2 +-
 youtube_dl/extractor/brightcove.py    |  24 ++-
 youtube_dl/extractor/cbs.py           |  30 +++
 youtube_dl/extractor/channel9.py      | 267 +++++++++++++++++++++++
 youtube_dl/extractor/clipsyndicate.py |  10 +-
 youtube_dl/extractor/comedycentral.py |   2 +-
 youtube_dl/extractor/common.py        | 110 ++++++----
 youtube_dl/extractor/crunchyroll.py   | 171 +++++++++++++++
 youtube_dl/extractor/cspan.py         |   2 +-
 youtube_dl/extractor/dailymotion.py   |  17 +-
 youtube_dl/extractor/daum.py          |   2 +-
 youtube_dl/extractor/dreisat.py       |   2 +-
 youtube_dl/extractor/eighttracks.py   |   2 +-
 youtube_dl/extractor/exfm.py          |   2 +-
 youtube_dl/extractor/facebook.py      |   4 +-
 youtube_dl/extractor/faz.py           |   2 +-
 youtube_dl/extractor/fktv.py          |   4 +-
 youtube_dl/extractor/francetv.py      | 106 ++++++++--
 youtube_dl/extractor/gamekings.py     |   2 +-
 youtube_dl/extractor/gametrailers.py  |   3 +-
 youtube_dl/extractor/generic.py       | 147 ++++++++++---
 youtube_dl/extractor/hotnewhiphop.py  |   2 +-
 youtube_dl/extractor/ign.py           |   4 +-
 youtube_dl/extractor/imdb.py          |   8 +-
 youtube_dl/extractor/instagram.py     |   2 +-
 youtube_dl/extractor/ivi.py           | 154 ++++++++++++++
 youtube_dl/extractor/jukebox.py       |   2 +-
 youtube_dl/extractor/liveleak.py      |   2 +-
 youtube_dl/extractor/livestream.py    |   2 +-
 youtube_dl/extractor/mdr.py           |  63 ++++++
 youtube_dl/extractor/metacafe.py      |  48 +++--
 youtube_dl/extractor/metacritic.py    |   9 +-
 youtube_dl/extractor/mixcloud.py      |  23 +-
 youtube_dl/extractor/mtv.py           |  38 ++--
 youtube_dl/extractor/muzu.py          |   2 +-
 youtube_dl/extractor/myspass.py       |   2 +-
 youtube_dl/extractor/naver.py         |   2 +-
 youtube_dl/extractor/ndtv.py          |  64 ++++++
 youtube_dl/extractor/ninegag.py       |  43 ++++
 youtube_dl/extractor/ooyala.py        |   5 +
 youtube_dl/extractor/orf.py           |   2 +-
 youtube_dl/extractor/pbs.py           |   2 +-
 youtube_dl/extractor/pornhd.py        |  38 ++++
 youtube_dl/extractor/pornhub.py       |   2 +-
 youtube_dl/extractor/pyvideo.py       |  51 +++++
 youtube_dl/extractor/radiofrance.py   |  55 +++++
 youtube_dl/extractor/rtlnow.py        |   7 +-
 youtube_dl/extractor/rutube.py        |   2 +-
 youtube_dl/extractor/slashdot.py      |   2 +-
 youtube_dl/extractor/smotri.py        | 167 +++++++++++++--
 youtube_dl/extractor/soundcloud.py    |  60 ++++--
 youtube_dl/extractor/space.py         |   2 +-
 youtube_dl/extractor/stanfordoc.py    |  22 +-
 youtube_dl/extractor/tf1.py           |   2 +-
 youtube_dl/extractor/theplatform.py   |  80 +++++++
 youtube_dl/extractor/unistra.py       |   2 +-
 youtube_dl/extractor/vbox7.py         |   2 +-
 youtube_dl/extractor/veehd.py         |   2 +-
 youtube_dl/extractor/vevo.py          |   9 +-
 youtube_dl/extractor/vice.py          |   2 +-
 youtube_dl/extractor/viddler.py       |   5 +-
 youtube_dl/extractor/videofyme.py     |   2 +-
 youtube_dl/extractor/videopremium.py  |   1 +
 youtube_dl/extractor/vimeo.py         |  77 ++++++-
 youtube_dl/extractor/wat.py           |   2 +-
 youtube_dl/extractor/wimp.py          |  23 +-
 youtube_dl/extractor/wistia.py        |  55 +++++
 youtube_dl/extractor/xhamster.py      |   4 +-
 youtube_dl/extractor/xtube.py         |   2 +-
 youtube_dl/extractor/yahoo.py         |   2 +-
 youtube_dl/extractor/youjizz.py       |   2 +-
 youtube_dl/extractor/youtube.py       | 190 +++++++++--------
 youtube_dl/extractor/zdf.py           |   4 +-
 youtube_dl/utils.py                   |  85 +++++++-
 youtube_dl/version.py                 |   2 +-
 101 files changed, 3102 insertions(+), 639 deletions(-)
 create mode 100644 youtube_dl/extractor/academicearth.py
 create mode 100644 youtube_dl/extractor/aparat.py
 create mode 100644 youtube_dl/extractor/blinkx.py
 create mode 100644 youtube_dl/extractor/cbs.py
 create mode 100644 youtube_dl/extractor/channel9.py
 create mode 100644 youtube_dl/extractor/crunchyroll.py
 create mode 100644 youtube_dl/extractor/ivi.py
 create mode 100644 youtube_dl/extractor/mdr.py
 create mode 100644 youtube_dl/extractor/ndtv.py
 create mode 100644 youtube_dl/extractor/ninegag.py
 create mode 100644 youtube_dl/extractor/pornhd.py
 create mode 100644 youtube_dl/extractor/pyvideo.py
 create mode 100644 youtube_dl/extractor/radiofrance.py
 create mode 100644 youtube_dl/extractor/theplatform.py
 create mode 100644 youtube_dl/extractor/wistia.py

diff --git a/README.md b/README.md
index 029c418..caed948 100644
--- a/README.md
+++ b/README.md
@@ -38,6 +38,8 @@ which means you can modify it, redistribute it or use it however you like.
                                default $XDG_CACHE_HOME/youtube-dl or ~/.cache
                                /youtube-dl .
     --no-cache-dir             Disable filesystem caching
+    --bidi-workaround          Work around terminals that lack bidirectional
+                               text support. Requires fribidi executable in PATH
 
 ## Video Selection:
     --playlist-start NUMBER    playlist video to start at (default is 1)
@@ -54,6 +56,10 @@ which means you can modify it, redistribute it or use it however you like.
     --date DATE                download only videos uploaded in this date
     --datebefore DATE          download only videos uploaded before this date
     --dateafter DATE           download only videos uploaded after this date
+    --min-views COUNT          Do not download any videos with less than COUNT
+                               views
+    --max-views COUNT          Do not download any videos with more than COUNT
+                               views
     --no-playlist              download only the currently playing video
     --age-limit YEARS          download only videos suitable for the given age
     --download-archive FILE    Download only videos not listed in the archive
@@ -98,6 +104,8 @@ which means you can modify it, redistribute it or use it however you like.
     --restrict-filenames       Restrict filenames to only ASCII characters, and
                                avoid "&" and spaces in filenames
     -a, --batch-file FILE      file containing URLs to download ('-' for stdin)
+    --load-info FILE           json file containing the video information
+                               (created with the "--write-json" option
     -w, --no-overwrites        do not overwrite files
     -c, --continue             force resume of partially downloaded files. By
                                default, youtube-dl will resume downloads if
@@ -123,6 +131,7 @@ which means you can modify it, redistribute it or use it however you like.
     --get-id                   simulate, quiet but print id
     --get-thumbnail            simulate, quiet but print thumbnail URL
     --get-description          simulate, quiet but print video description
+    --get-duration             simulate, quiet but print video length
     --get-filename             simulate, quiet but print output filename
     --get-format               simulate, quiet but print output format
     -j, --dump-json            simulate, quiet but print JSON information
@@ -274,14 +283,54 @@ This README file was originally written by Daniel Bolton (<https://github.com/db
 
 # BUGS
 
-Bugs and suggestions should be reported at: <https://github.com/rg3/youtube-dl/issues>
+Bugs and suggestions should be reported at: <https://github.com/rg3/youtube-dl/issues> . Unless you were prompted so or there is another pertinent reason (e.g. GitHub fails to accept the bug report), please do not send bug reports via personal email.
 
-Please include:
-
-* Your exact command line, like `youtube-dl -t "http://www.youtube.com/watch?v=uHlDtZ6Oc3s&feature=channel_video_title"`. A common mistake is not to escape the `&`. Putting URLs in quotes should solve this problem.
-* If possible re-run the command with `--verbose`, and include the full output, it is really helpful to us.
-* The output of `youtube-dl --version`
-* The output of `python --version`
-* The name and version of your Operating System ("Ubuntu 11.04 x64" or "Windows 7 x64" is usually enough).
+Please include the full output of the command when run with `--verbose`. The output (including the first lines) contain important debugging information. Issues without the full output are often not reproducible and therefore do not get solved in short order, if ever.
 
 For discussions, join us in the irc channel #youtube-dl on freenode.
+
+When you submit a request, please re-read it once to avoid a couple of mistakes (you can and should use this as a checklist):
+
+### Is the description of the issue itself sufficient?
+
+We often get issue reports that we cannot really decipher. While in most cases we eventually get the required information after asking back multiple times, this poses an unnecessary drain on our resources. Many contributors, including myself, are also not native speakers, so we may misread some parts.
+
+So please elaborate on what feature you are requesting, or what bug you want to be fixed. Make sure that it's obvious
+
+- What the problem is
+- How it could be fixed
+- How your proposed solution would look like
+
+If your report is shorter than two lines, it is almost certainly missing some of these, which makes it hard for us to respond to it. We're often too polite to close the issue outright, but the missing info makes misinterpretation likely. As a commiter myself, I often get frustrated by these issues, since the only possible way for me to move forward on them is to ask for clarification over and over.
+
+For bug reports, this means that your report should contain the *complete* output of youtube-dl when called with the -v flag. The error message you get for (most) bugs even says so, but you would not believe how many of our bug reports do not contain this information.
+
+Site support requests must contain an example URL. An example URL is a URL you might want to download, like http://www.youtube.com/watch?v=BaW_jenozKc . There should be an obvious video present. Except under very special circumstances, the main page of a video service (e.g. http://www.youtube.com/ ) is *not* an example URL.
+
+###  Are you using the latest version?
+
+Before reporting any issue, type youtube-dl -U. This should report that you're up-to-date. Ábout 20% of the reports we receive are already fixed, but people are using outdated versions. This goes for feature requests as well.
+
+###  Is the issue already documented?
+
+Make sure that someone has not already opened the issue you're trying to open. Search at the top of the window or at https://github.com/rg3/youtube-dl/search?type=Issues . If there is an issue, feel free to write something along the lines of "This affects me as well, with version 2015.01.01. Here is some more information on the issue: ...". While some issues may be old, a new post into them often spurs rapid activity.
+
+###  Why are existing options not enough?
+
+Before requesting a new feature, please have a quick peek at [the list of supported options](https://github.com/rg3/youtube-dl/blob/master/README.md#synopsis). Many feature requests are for features that actually exist already! Please, absolutely do show off your work in the issue report and detail how the existing similar options do *not* solve your problem.
+
+###  Is there enough context in your bug report?
+
+People want to solve problems, and often think they do us a favor by breaking down their larger problems (e.g. wanting to skip already downloaded files) to a specific request (e.g. requesting us to look whether the file exists before downloading the info page). However, what often happens is that they break down the problem into two steps: One simple, and one impossible (or extremely complicated one).
+
+We are then presented with a very complicated request when the original problem could be solved far easier, e.g. by recording the downloaded video IDs in a separate file. To avoid this, you must include the greater context where it is non-obvious. In particular, every feature request that does not consist of adding support for a new site should contain a use case scenario that explains in what situation the missing feature would be useful.
+
+###  Does the issue involve one problem, and one problem only?
+
+Some of our users seem to think there is a limit of issues they can or should open. There is no limit of issues they can or should open. While it may seem appealing to be able to dump all your issues into one ticket, that means that someone who solves one of your issues cannot mark the issue as closed. Typically, reporting a bunch of issues leads to the ticket lingering since nobody wants to attack that behemoth, until someone mercifully splits the issue into multiple ones.
+
+In particular, every site support request issue should only pertain to services at one site (generally under a common domain, but always using the same backend technology). Do not request support for vimeo user videos, Whitehouse podcasts, and Google Plus pages in the same issue. Also, make sure that you don't post bug reports alongside feature requests. As a rule of thumb, a feature request does not include outputs of youtube-dl that are not immediately related to the feature at hand. Do not post reports of a network error alongside the request for a new video service.
+
+###  Is anyone going to need the feature?
+
+Only post features that you (or an incapicated friend you can personally talk to) require. Do not post features because they seem like a good idea. If they are really useful, they will be requested by someone who requires them.
diff --git a/README.txt b/README.txt
index fc9f17e..3645b8c 100644
--- a/README.txt
+++ b/README.txt
@@ -45,6 +45,8 @@ OPTIONS
                                default $XDG_CACHE_HOME/youtube-dl or ~/.cache
                                /youtube-dl .
     --no-cache-dir             Disable filesystem caching
+    --bidi-workaround          Work around terminals that lack bidirectional
+                               text support. Requires fribidi executable in PATH
 
 Video Selection:
 ----------------
@@ -63,6 +65,10 @@ Video Selection:
     --date DATE                download only videos uploaded in this date
     --datebefore DATE          download only videos uploaded before this date
     --dateafter DATE           download only videos uploaded after this date
+    --min-views COUNT          Do not download any videos with less than COUNT
+                               views
+    --max-views COUNT          Do not download any videos with more than COUNT
+                               views
     --no-playlist              download only the currently playing video
     --age-limit YEARS          download only videos suitable for the given age
     --download-archive FILE    Download only videos not listed in the archive
@@ -111,6 +117,8 @@ Filesystem Options:
     --restrict-filenames       Restrict filenames to only ASCII characters, and
                                avoid "&" and spaces in filenames
     -a, --batch-file FILE      file containing URLs to download ('-' for stdin)
+    --load-info FILE           json file containing the video information
+                               (created with the "--write-json" option
     -w, --no-overwrites        do not overwrite files
     -c, --continue             force resume of partially downloaded files. By
                                default, youtube-dl will resume downloads if
@@ -138,6 +146,7 @@ Verbosity / Simulation Options:
     --get-id                   simulate, quiet but print id
     --get-thumbnail            simulate, quiet but print thumbnail URL
     --get-description          simulate, quiet but print video description
+    --get-duration             simulate, quiet but print video length
     --get-filename             simulate, quiet but print output filename
     --get-format               simulate, quiet but print output format
     -j, --dump-json            simulate, quiet but print JSON information
@@ -354,19 +363,118 @@ BUGS
 ====
 
 Bugs and suggestions should be reported at:
-https://github.com/rg3/youtube-dl/issues
+https://github.com/rg3/youtube-dl/issues . Unless you were prompted so
+or there is another pertinent reason (e.g. GitHub fails to accept the
+bug report), please do not send bug reports via personal email.
 
-Please include:
-
--   Your exact command line, like
-    youtube-dl -t "http://www.youtube.com/watch?v=uHlDtZ6Oc3s&feature=channel_video_title".
-    A common mistake is not to escape the &. Putting URLs in quotes
-    should solve this problem.
--   If possible re-run the command with --verbose, and include the full
-    output, it is really helpful to us.
--   The output of youtube-dl --version
--   The output of python --version
--   The name and version of your Operating System ("Ubuntu 11.04 x64" or
-    "Windows 7 x64" is usually enough).
+Please include the full output of the command when run with --verbose.
+The output (including the first lines) contain important debugging
+information. Issues without the full output are often not reproducible
+and therefore do not get solved in short order, if ever.
 
 For discussions, join us in the irc channel #youtube-dl on freenode.
+
+When you submit a request, please re-read it once to avoid a couple of
+mistakes (you can and should use this as a checklist):
+
+Is the description of the issue itself sufficient?
+
+We often get issue reports that we cannot really decipher. While in most
+cases we eventually get the required information after asking back
+multiple times, this poses an unnecessary drain on our resources. Many
+contributors, including myself, are also not native speakers, so we may
+misread some parts.
+
+So please elaborate on what feature you are requesting, or what bug you
+want to be fixed. Make sure that it's obvious
+
+-   What the problem is
+-   How it could be fixed
+-   How your proposed solution would look like
+
+If your report is shorter than two lines, it is almost certainly missing
+some of these, which makes it hard for us to respond to it. We're often
+too polite to close the issue outright, but the missing info makes
+misinterpretation likely. As a commiter myself, I often get frustrated
+by these issues, since the only possible way for me to move forward on
+them is to ask for clarification over and over.
+
+For bug reports, this means that your report should contain the complete
+output of youtube-dl when called with the -v flag. The error message you
+get for (most) bugs even says so, but you would not believe how many of
+our bug reports do not contain this information.
+
+Site support requests must contain an example URL. An example URL is a
+URL you might want to download, like
+http://www.youtube.com/watch?v=BaW_jenozKc . There should be an obvious
+video present. Except under very special circumstances, the main page of
+a video service (e.g. http://www.youtube.com/ ) is not an example URL.
+
+Are you using the latest version?
+
+Before reporting any issue, type youtube-dl -U. This should report that
+you're up-to-date. Ábout 20% of the reports we receive are already
+fixed, but people are using outdated versions. This goes for feature
+requests as well.
+
+Is the issue already documented?
+
+Make sure that someone has not already opened the issue you're trying to
+open. Search at the top of the window or at
+https://github.com/rg3/youtube-dl/search?type=Issues . If there is an
+issue, feel free to write something along the lines of "This affects me
+as well, with version 2015.01.01. Here is some more information on the
+issue: ...". While some issues may be old, a new post into them often
+spurs rapid activity.
+
+Why are existing options not enough?
+
+Before requesting a new feature, please have a quick peek at the list of
+supported options. Many feature requests are for features that actually
+exist already! Please, absolutely do show off your work in the issue
+report and detail how the existing similar options do not solve your
+problem.
+
+Is there enough context in your bug report?
+
+People want to solve problems, and often think they do us a favor by
+breaking down their larger problems (e.g. wanting to skip already
+downloaded files) to a specific request (e.g. requesting us to look
+whether the file exists before downloading the info page). However, what
+often happens is that they break down the problem into two steps: One
+simple, and one impossible (or extremely complicated one).
+
+We are then presented with a very complicated request when the original
+problem could be solved far easier, e.g. by recording the downloaded
+video IDs in a separate file. To avoid this, you must include the
+greater context where it is non-obvious. In particular, every feature
+request that does not consist of adding support for a new site should
+contain a use case scenario that explains in what situation the missing
+feature would be useful.
+
+Does the issue involve one problem, and one problem only?
+
+Some of our users seem to think there is a limit of issues they can or
+should open. There is no limit of issues they can or should open. While
+it may seem appealing to be able to dump all your issues into one
+ticket, that means that someone who solves one of your issues cannot
+mark the issue as closed. Typically, reporting a bunch of issues leads
+to the ticket lingering since nobody wants to attack that behemoth,
+until someone mercifully splits the issue into multiple ones.
+
+In particular, every site support request issue should only pertain to
+services at one site (generally under a common domain, but always using
+the same backend technology). Do not request support for vimeo user
+videos, Whitehouse podcasts, and Google Plus pages in the same issue.
+Also, make sure that you don't post bug reports alongside feature
+requests. As a rule of thumb, a feature request does not include outputs
+of youtube-dl that are not immediately related to the feature at hand.
+Do not post reports of a network error alongside the request for a new
+video service.
+
+Is anyone going to need the feature?
+
+Only post features that you (or an incapicated friend you can personally
+talk to) require. Do not post features because they seem like a good
+idea. If they are really useful, they will be requested by someone who
+requires them.
diff --git a/test/test_YoutubeDL.py b/test/test_YoutubeDL.py
index 58cf9c3..3100c36 100644
--- a/test/test_YoutubeDL.py
+++ b/test/test_YoutubeDL.py
@@ -7,6 +7,7 @@ import unittest
 sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
 
 from test.helper import FakeYDL
+from youtube_dl import YoutubeDL
 
 
 class YDL(FakeYDL):
@@ -140,6 +141,20 @@ class TestFormatSelection(unittest.TestCase):
         self.assertEqual(test_dict['extractor'], 'Foo')
         self.assertEqual(test_dict['playlist'], 'funny videos')
 
+    def test_prepare_filename(self):
+        info = {
+            u'id': u'1234',
+            u'ext': u'mp4',
+            u'width': None,
+        }
+        def fname(templ):
+            ydl = YoutubeDL({'outtmpl': templ})
+            return ydl.prepare_filename(info)
+        self.assertEqual(fname(u'%(id)s.%(ext)s'), u'1234.mp4')
+        self.assertEqual(fname(u'%(id)s-%(width)s.%(ext)s'), u'1234-NA.mp4')
+        # Replace missing fields with 'NA'
+        self.assertEqual(fname(u'%(uploader_date)s-%(id)s.%(ext)s'), u'NA-1234.mp4')
+
 
 if __name__ == '__main__':
     unittest.main()
diff --git a/test/test_all_urls.py b/test/test_all_urls.py
index 6b9764c..bd77b7c 100644
--- a/test/test_all_urls.py
+++ b/test/test_all_urls.py
@@ -10,6 +10,7 @@ sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
 from test.helper import get_testcases
 
 from youtube_dl.extractor import (
+    FacebookIE,
     gen_extractors,
     JustinTVIE,
     YoutubeIE,
@@ -87,12 +88,15 @@ class TestAllURLsMatching(unittest.TestCase):
         assertExtractId('http://www.youtube.com/watch?v=BaW_jenozKcsharePLED17F32AD9753930', 'BaW_jenozKc')
         assertExtractId('BaW_jenozKc', 'BaW_jenozKc')
 
+    def test_facebook_matching(self):
+        self.assertTrue(FacebookIE.suitable(u'https://www.facebook.com/Shiniknoh#!/photo.php?v=10153317450565268'))
+
     def test_no_duplicates(self):
         ies = gen_extractors()
         for tc in get_testcases():
             url = tc['url']
             for ie in ies:
-                if type(ie).__name__ in ['GenericIE', tc['name'] + 'IE']:
+                if type(ie).__name__ in ('GenericIE', tc['name'] + 'IE'):
                     self.assertTrue(ie.suitable(url), '%s should match URL %r' % (type(ie).__name__, url))
                 else:
                     self.assertFalse(ie.suitable(url), '%s should not match URL %r' % (type(ie).__name__, url))
@@ -110,6 +114,9 @@ class TestAllURLsMatching(unittest.TestCase):
         self.assertMatch('http://vimeo.com/channels/tributes', ['vimeo:channel'])
         self.assertMatch('http://vimeo.com/user7108434', ['vimeo:user'])
 
+    # https://github.com/rg3/youtube-dl/issues/1930
+    def test_soundcloud_not_matching_sets(self):
+        self.assertMatch('http://soundcloud.com/floex/sets/gone-ep', ['soundcloud:set'])
 
 if __name__ == '__main__':
     unittest.main()
diff --git a/test/test_playlists.py b/test/test_playlists.py
index 00c9501..1b7b4e3 100644
--- a/test/test_playlists.py
+++ b/test/test_playlists.py
@@ -12,10 +12,13 @@ from test.helper import FakeYDL
 
 
 from youtube_dl.extractor import (
+    AcademicEarthCourseIE,
     DailymotionPlaylistIE,
     DailymotionUserIE,
     VimeoChannelIE,
     VimeoUserIE,
+    VimeoAlbumIE,
+    VimeoGroupsIE,
     UstreamChannelIE,
     SoundcloudSetIE,
     SoundcloudUserIE,
@@ -24,7 +27,8 @@ from youtube_dl.extractor import (
     BambuserChannelIE,
     BandcampAlbumIE,
     SmotriCommunityIE,
-    SmotriUserIE
+    SmotriUserIE,
+    IviCompilationIE
 )
 
 
@@ -65,6 +69,22 @@ class TestPlaylists(unittest.TestCase):
         self.assertEqual(result['title'], u'Nki')
         self.assertTrue(len(result['entries']) > 65)
 
+    def test_vimeo_album(self):
+        dl = FakeYDL()
+        ie = VimeoAlbumIE(dl)
+        result = ie.extract('http://vimeo.com/album/2632481')
+        self.assertIsPlaylist(result)
+        self.assertEqual(result['title'], u'Staff Favorites: November 2013')
+        self.assertTrue(len(result['entries']) > 12)
+
+    def test_vimeo_groups(self):
+        dl = FakeYDL()
+        ie = VimeoGroupsIE(dl)
+        result = ie.extract('http://vimeo.com/groups/rolexawards')
+        self.assertIsPlaylist(result)
+        self.assertEqual(result['title'], u'Rolex Awards for Enterprise')
+        self.assertTrue(len(result['entries']) > 72)
+
     def test_ustream_channel(self):
         dl = FakeYDL()
         ie = UstreamChannelIE(dl)
@@ -140,5 +160,34 @@ class TestPlaylists(unittest.TestCase):
         self.assertEqual(result['title'], u'Inspector')
         self.assertTrue(len(result['entries']) >= 9)
 
+    def test_AcademicEarthCourse(self):
+        dl = FakeYDL()
+        ie = AcademicEarthCourseIE(dl)
+        result = ie.extract(u'http://academicearth.org/courses/building-dynamic-websites/')
+        self.assertIsPlaylist(result)
+        self.assertEqual(result['id'], u'building-dynamic-websites')
+        self.assertEqual(result['title'], u'Building Dynamic Websites')
+        self.assertEqual(result['description'], u"Today's websites are increasingly dynamic. Pages are no longer static HTML files but instead generated by scripts and database calls. User interfaces are more seamless, with technologies like Ajax replacing traditional page reloads. This course teaches students how to build dynamic websites with Ajax and with Linux, Apache, MySQL, and PHP (LAMP), one of today's most popular frameworks. Students learn how to set up domain names with DNS, how to structure pages with XHTML and CSS, how to program in JavaScript and PHP, how to configure Apache and MySQL, how to design and query databases with SQL, how to use Ajax with both XML and JSON, and how to build mashups. The course explores issues of security, scalability, and cross-browser support and also discusses enterprise-level deployments of websites, including third-party hosting, virtualization, colocation in data centers, firewalling, and load-balancing.")
+        self.assertEqual(len(result['entries']), 10)
+        
+    def test_ivi_compilation(self):
+        dl = FakeYDL()
+        ie = IviCompilationIE(dl)
+        result = ie.extract('http://www.ivi.ru/watch/dezhurnyi_angel')
+        self.assertIsPlaylist(result)
+        self.assertEqual(result['id'], u'dezhurnyi_angel')
+        self.assertEqual(result['title'], u'Дежурный ангел (2010 - 2012)')
+        self.assertTrue(len(result['entries']) >= 36)
+        
+    def test_ivi_compilation_season(self):
+        dl = FakeYDL()
+        ie = IviCompilationIE(dl)
+        result = ie.extract('http://www.ivi.ru/watch/dezhurnyi_angel/season2')
+        self.assertIsPlaylist(result)
+        self.assertEqual(result['id'], u'dezhurnyi_angel/season2')
+        self.assertEqual(result['title'], u'Дежурный ангел (2010 - 2012) 2 сезон')
+        self.assertTrue(len(result['entries']) >= 20)
+
+
 if __name__ == '__main__':
     unittest.main()
diff --git a/test/test_utils.py b/test/test_utils.py
index e9e590e..e5778cd 100644
--- a/test/test_utils.py
+++ b/test/test_utils.py
@@ -13,19 +13,21 @@ import xml.etree.ElementTree
 
 #from youtube_dl.utils import htmlentity_transform
 from youtube_dl.utils import (
-    timeconvert,
-    sanitize_filename,
-    unescapeHTML,
-    orderedSet,
     DateRange,
-    unified_strdate,
+    encodeFilename,
     find_xpath_attr,
     get_meta_content,
-    xpath_with_ns,
+    orderedSet,
+    sanitize_filename,
+    shell_quote,
     smuggle_url,
+    str_to_int,
+    timeconvert,
+    unescapeHTML,
+    unified_strdate,
     unsmuggle_url,
-    shell_quote,
-    encodeFilename,
+    url_basename,
+    xpath_with_ns,
 )
 
 if sys.version_info < (3, 0):
@@ -176,6 +178,19 @@ class TestUtil(unittest.TestCase):
         args = ['ffmpeg', '-i', encodeFilename(u'ñ€ß\'.mp4')]
         self.assertEqual(shell_quote(args), u"""ffmpeg -i 'ñ€ß'"'"'.mp4'""")
 
+    def test_str_to_int(self):
+        self.assertEqual(str_to_int('123,456'), 123456)
+        self.assertEqual(str_to_int('123.456'), 123456)
+
+    def test_url_basename(self):
+        self.assertEqual(url_basename(u'http://foo.de/'), u'')
+        self.assertEqual(url_basename(u'http://foo.de/bar/baz'), u'baz')
+        self.assertEqual(url_basename(u'http://foo.de/bar/baz?x=y'), u'baz')
+        self.assertEqual(url_basename(u'http://foo.de/bar/baz#x=y'), u'baz')
+        self.assertEqual(url_basename(u'http://foo.de/bar/baz/'), u'baz')
+        self.assertEqual(
+            url_basename(u'http://media.w3.org/2010/05/sintel/trailer.mp4'),
+            u'trailer.mp4')
 
 if __name__ == '__main__':
     unittest.main()
diff --git a/test/test_write_info_json.py b/test/test_write_info_json.py
index d717761..90426a5 100644
--- a/test/test_write_info_json.py
+++ b/test/test_write_info_json.py
@@ -33,6 +33,7 @@ TEST_ID = 'BaW_jenozKc'
 INFO_JSON_FILE = TEST_ID + '.info.json'
 DESCRIPTION_FILE = TEST_ID + '.mp4.description'
 EXPECTED_DESCRIPTION = u'''test chars:  "'/\ä↭𝕐
+test URL: https://github.com/rg3/youtube-dl/issues/1892
 
 This is a test video for youtube-dl.
 
diff --git a/test/test_youtube_lists.py b/test/test_youtube_lists.py
index 95f07d1..d9fe5af 100644
--- a/test/test_youtube_lists.py
+++ b/test/test_youtube_lists.py
@@ -15,6 +15,7 @@ from youtube_dl.extractor import (
     YoutubeIE,
     YoutubeChannelIE,
     YoutubeShowIE,
+    YoutubeTopListIE,
 )
 
 
@@ -116,5 +117,12 @@ class TestYoutubeLists(unittest.TestCase):
         original_video = entries[0]
         self.assertEqual(original_video['id'], 'rjFaenf1T-Y')
 
+    def test_youtube_toplist(self):
+        dl = FakeYDL()
+        ie = YoutubeTopListIE(dl)
+        result = ie.extract('yttoplist:music:Top Tracks')
+        entries = result['entries']
+        self.assertTrue(len(entries) >= 5)
+
 if __name__ == '__main__':
     unittest.main()
diff --git a/youtube-dl b/youtube-dl
index 899ca28bd80ce245f7afd7cbadc2eae53755a5ff..2e3e8a9b6cf644d8b656750bfe3386298e6609d3 100755
GIT binary patch
delta 190601
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

delta 159813
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
LgChedBB=iZQht?z

diff --git a/youtube-dl.1 b/youtube-dl.1
index a172bf8..c99538c 100644
--- a/youtube-dl.1
+++ b/youtube-dl.1
@@ -42,6 +42,8 @@ redistribute it or use it however you like.
 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ default\ $XDG_CACHE_HOME/youtube\-dl\ or\ ~/.cache
 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ /youtube\-dl\ .
 \-\-no\-cache\-dir\ \ \ \ \ \ \ \ \ \ \ \ \ Disable\ filesystem\ caching
+\-\-bidi\-workaround\ \ \ \ \ \ \ \ \ \ Work\ around\ terminals\ that\ lack\ bidirectional
+\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ text\ support.\ Requires\ fribidi\ executable\ in\ PATH
 \f[]
 .fi
 .SS Video Selection:
@@ -62,6 +64,10 @@ redistribute it or use it however you like.
 \-\-date\ DATE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ download\ only\ videos\ uploaded\ in\ this\ date
 \-\-datebefore\ DATE\ \ \ \ \ \ \ \ \ \ download\ only\ videos\ uploaded\ before\ this\ date
 \-\-dateafter\ DATE\ \ \ \ \ \ \ \ \ \ \ download\ only\ videos\ uploaded\ after\ this\ date
+\-\-min\-views\ COUNT\ \ \ \ \ \ \ \ \ \ Do\ not\ download\ any\ videos\ with\ less\ than\ COUNT
+\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ views
+\-\-max\-views\ COUNT\ \ \ \ \ \ \ \ \ \ Do\ not\ download\ any\ videos\ with\ more\ than\ COUNT
+\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ views
 \-\-no\-playlist\ \ \ \ \ \ \ \ \ \ \ \ \ \ download\ only\ the\ currently\ playing\ video
 \-\-age\-limit\ YEARS\ \ \ \ \ \ \ \ \ \ download\ only\ videos\ suitable\ for\ the\ given\ age
 \-\-download\-archive\ FILE\ \ \ \ Download\ only\ videos\ not\ listed\ in\ the\ archive
@@ -114,6 +120,8 @@ redistribute it or use it however you like.
 \-\-restrict\-filenames\ \ \ \ \ \ \ Restrict\ filenames\ to\ only\ ASCII\ characters,\ and
 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ avoid\ "&"\ and\ spaces\ in\ filenames
 \-a,\ \-\-batch\-file\ FILE\ \ \ \ \ \ file\ containing\ URLs\ to\ download\ (\[aq]\-\[aq]\ for\ stdin)
+\-\-load\-info\ FILE\ \ \ \ \ \ \ \ \ \ \ json\ file\ containing\ the\ video\ information
+\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (created\ with\ the\ "\-\-write\-json"\ option
 \-w,\ \-\-no\-overwrites\ \ \ \ \ \ \ \ do\ not\ overwrite\ files
 \-c,\ \-\-continue\ \ \ \ \ \ \ \ \ \ \ \ \ force\ resume\ of\ partially\ downloaded\ files.\ By
 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ default,\ youtube\-dl\ will\ resume\ downloads\ if
@@ -143,6 +151,7 @@ redistribute it or use it however you like.
 \-\-get\-id\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ simulate,\ quiet\ but\ print\ id
 \-\-get\-thumbnail\ \ \ \ \ \ \ \ \ \ \ \ simulate,\ quiet\ but\ print\ thumbnail\ URL
 \-\-get\-description\ \ \ \ \ \ \ \ \ \ simulate,\ quiet\ but\ print\ video\ description
+\-\-get\-duration\ \ \ \ \ \ \ \ \ \ \ \ \ simulate,\ quiet\ but\ print\ video\ length
 \-\-get\-filename\ \ \ \ \ \ \ \ \ \ \ \ \ simulate,\ quiet\ but\ print\ output\ filename
 \-\-get\-format\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ simulate,\ quiet\ but\ print\ output\ format
 \-j,\ \-\-dump\-json\ \ \ \ \ \ \ \ \ \ \ \ simulate,\ quiet\ but\ print\ JSON\ information
@@ -383,23 +392,132 @@ domain.
 .SH BUGS
 .PP
 Bugs and suggestions should be reported at:
-<https://github.com/rg3/youtube-dl/issues>
+<https://github.com/rg3/youtube-dl/issues> .
+Unless you were prompted so or there is another pertinent reason (e.g.
+GitHub fails to accept the bug report), please do not send bug reports
+via personal email.
 .PP
-Please include:
-.IP \[bu] 2
-Your exact command line, like
-\f[C]youtube\-dl\ \-t\ "http://www.youtube.com/watch?v=uHlDtZ6Oc3s&feature=channel_video_title"\f[].
-A common mistake is not to escape the \f[C]&\f[].
-Putting URLs in quotes should solve this problem.
-.IP \[bu] 2
-If possible re\-run the command with \f[C]\-\-verbose\f[], and include
-the full output, it is really helpful to us.
+Please include the full output of the command when run with
+\f[C]\-\-verbose\f[].
+The output (including the first lines) contain important debugging
+information.
+Issues without the full output are often not reproducible and therefore
+do not get solved in short order, if ever.
+.PP
+For discussions, join us in the irc channel #youtube\-dl on freenode.
+.PP
+When you submit a request, please re\-read it once to avoid a couple of
+mistakes (you can and should use this as a checklist):
+.SS Is the description of the issue itself sufficient?
+.PP
+We often get issue reports that we cannot really decipher.
+While in most cases we eventually get the required information after
+asking back multiple times, this poses an unnecessary drain on our
+resources.
+Many contributors, including myself, are also not native speakers, so we
+may misread some parts.
+.PP
+So please elaborate on what feature you are requesting, or what bug you
+want to be fixed.
+Make sure that it\[aq]s obvious
 .IP \[bu] 2
-The output of \f[C]youtube\-dl\ \-\-version\f[]
+What the problem is
 .IP \[bu] 2
-The output of \f[C]python\ \-\-version\f[]
+How it could be fixed
 .IP \[bu] 2
-The name and version of your Operating System ("Ubuntu 11.04 x64" or
-"Windows 7 x64" is usually enough).
+How your proposed solution would look like
 .PP
-For discussions, join us in the irc channel #youtube\-dl on freenode.
+If your report is shorter than two lines, it is almost certainly missing
+some of these, which makes it hard for us to respond to it.
+We\[aq]re often too polite to close the issue outright, but the missing
+info makes misinterpretation likely.
+As a commiter myself, I often get frustrated by these issues, since the
+only possible way for me to move forward on them is to ask for
+clarification over and over.
+.PP
+For bug reports, this means that your report should contain the
+\f[I]complete\f[] output of youtube\-dl when called with the \-v flag.
+The error message you get for (most) bugs even says so, but you would
+not believe how many of our bug reports do not contain this information.
+.PP
+Site support requests must contain an example URL.
+An example URL is a URL you might want to download, like
+http://www.youtube.com/watch?v=BaW_jenozKc .
+There should be an obvious video present.
+Except under very special circumstances, the main page of a video
+service (e.g.
+http://www.youtube.com/ ) is \f[I]not\f[] an example URL.
+.SS Are you using the latest version?
+.PP
+Before reporting any issue, type youtube\-dl \-U.
+This should report that you\[aq]re up\-to\-date.
+Ábout 20% of the reports we receive are already fixed, but people are
+using outdated versions.
+This goes for feature requests as well.
+.SS Is the issue already documented?
+.PP
+Make sure that someone has not already opened the issue you\[aq]re
+trying to open.
+Search at the top of the window or at
+https://github.com/rg3/youtube\-dl/search?type=Issues .
+If there is an issue, feel free to write something along the lines of
+"This affects me as well, with version 2015.01.01.
+Here is some more information on the issue: ...".
+While some issues may be old, a new post into them often spurs rapid
+activity.
+.SS Why are existing options not enough?
+.PP
+Before requesting a new feature, please have a quick peek at the list of
+supported
+options (https://github.com/rg3/youtube-dl/blob/master/README.md#synopsis).
+Many feature requests are for features that actually exist already!
+Please, absolutely do show off your work in the issue report and detail
+how the existing similar options do \f[I]not\f[] solve your problem.
+.SS Is there enough context in your bug report?
+.PP
+People want to solve problems, and often think they do us a favor by
+breaking down their larger problems (e.g.
+wanting to skip already downloaded files) to a specific request (e.g.
+requesting us to look whether the file exists before downloading the
+info page).
+However, what often happens is that they break down the problem into two
+steps: One simple, and one impossible (or extremely complicated one).
+.PP
+We are then presented with a very complicated request when the original
+problem could be solved far easier, e.g.
+by recording the downloaded video IDs in a separate file.
+To avoid this, you must include the greater context where it is
+non\-obvious.
+In particular, every feature request that does not consist of adding
+support for a new site should contain a use case scenario that explains
+in what situation the missing feature would be useful.
+.SS Does the issue involve one problem, and one problem only?
+.PP
+Some of our users seem to think there is a limit of issues they can or
+should open.
+There is no limit of issues they can or should open.
+While it may seem appealing to be able to dump all your issues into one
+ticket, that means that someone who solves one of your issues cannot
+mark the issue as closed.
+Typically, reporting a bunch of issues leads to the ticket lingering
+since nobody wants to attack that behemoth, until someone mercifully
+splits the issue into multiple ones.
+.PP
+In particular, every site support request issue should only pertain to
+services at one site (generally under a common domain, but always using
+the same backend technology).
+Do not request support for vimeo user videos, Whitehouse podcasts, and
+Google Plus pages in the same issue.
+Also, make sure that you don\[aq]t post bug reports alongside feature
+requests.
+As a rule of thumb, a feature request does not include outputs of
+youtube\-dl that are not immediately related to the feature at hand.
+Do not post reports of a network error alongside the request for a new
+video service.
+.SS Is anyone going to need the feature?
+.PP
+Only post features that you (or an incapicated friend you can personally
+talk to) require.
+Do not post features because they seem like a good idea.
+If they are really useful, they will be requested by someone who
+requires them.
diff --git a/youtube-dl.bash-completion b/youtube-dl.bash-completion
index 9c30e7b..0cb7e92 100644
--- a/youtube-dl.bash-completion
+++ b/youtube-dl.bash-completion
@@ -4,7 +4,7 @@ __youtube_dl()
     COMPREPLY=()
     cur="${COMP_WORDS[COMP_CWORD]}"
     prev="${COMP_WORDS[COMP_CWORD-1]}"
-    opts="--help --version --update --ignore-errors --abort-on-error --dump-user-agent --user-agent --referer --list-extractors --extractor-descriptions --proxy --no-check-certificate --cache-dir --no-cache-dir --socket-timeout --playlist-start --playlist-end --match-title --reject-title --max-downloads --min-filesize --max-filesize --date --datebefore --dateafter --no-playlist --age-limit --download-archive --rate-limit --retries --buffer-size --no-resize-buffer --test --title --id --literal --auto-number --output --autonumber-size --restrict-filenames --batch-file --no-overwrites --continue --no-continue --cookies --no-part --no-mtime --write-description --write-info-json --write-annotations --write-thumbnail --quiet --simulate --skip-download --get-url --get-title --get-id --get-thumbnail --get-description --get-filename --get-format --dump-json --newline --no-progress --console-title --verbose --dump-intermediate-pages --write-pages --youtube-print-sig-code --format --all-formats --prefer-free-formats --max-quality --list-formats --write-sub --write-auto-sub --all-subs --list-subs --sub-format --sub-lang --username --password --netrc --video-password --extract-audio --audio-format --audio-quality --recode-video --keep-video --no-post-overwrites --embed-subs --add-metadata"
+    opts="--help --version --update --ignore-errors --abort-on-error --dump-user-agent --user-agent --referer --list-extractors --extractor-descriptions --proxy --no-check-certificate --cache-dir --no-cache-dir --socket-timeout --bidi-workaround --playlist-start --playlist-end --match-title --reject-title --max-downloads --min-filesize --max-filesize --date --datebefore --dateafter --min-views --max-views --no-playlist --age-limit --download-archive --rate-limit --retries --buffer-size --no-resize-buffer --test --title --id --literal --auto-number --output --autonumber-size --restrict-filenames --batch-file --load-info --no-overwrites --continue --no-continue --cookies --no-part --no-mtime --write-description --write-info-json --write-annotations --write-thumbnail --quiet --simulate --skip-download --get-url --get-title --get-id --get-thumbnail --get-description --get-duration --get-filename --get-format --dump-json --newline --no-progress --console-title --verbose --dump-intermediate-pages --write-pages --youtube-print-sig-code --format --all-formats --prefer-free-formats --max-quality --list-formats --write-sub --write-auto-sub --all-subs --list-subs --sub-format --sub-lang --username --password --netrc --video-password --extract-audio --audio-format --audio-quality --recode-video --keep-video --no-post-overwrites --embed-subs --add-metadata"
     keywords=":ytfavorites :ytrecommended :ytsubscriptions :ytwatchlater :ythistory"
     fileopts="-a|--batch-file|--download-archive|--cookies"
     diropts="--cache-dir"
diff --git a/youtube_dl/FileDownloader.py b/youtube_dl/FileDownloader.py
index 3ff9716..4712493 100644
--- a/youtube_dl/FileDownloader.py
+++ b/youtube_dl/FileDownloader.py
@@ -204,11 +204,27 @@ class FileDownloader(object):
         """Report destination filename."""
         self.to_screen(u'[download] Destination: ' + filename)
 
+    def _report_progress_status(self, msg, is_last_line=False):
+        fullmsg = u'[download] ' + msg
+        if self.params.get('progress_with_newline', False):
+            self.to_screen(fullmsg)
+        else:
+            if os.name == 'nt':
+                prev_len = getattr(self, '_report_progress_prev_line_length',
+                                   0)
+                if prev_len > len(fullmsg):
+                    fullmsg += u' ' * (prev_len - len(fullmsg))
+                self._report_progress_prev_line_length = len(fullmsg)
+                clear_line = u'\r'
+            else:
+                clear_line = (u'\r\x1b[K' if sys.stderr.isatty() else u'\r')
+            self.to_screen(clear_line + fullmsg, skip_eol=not is_last_line)
+        self.to_console_title(u'youtube-dl ' + msg)
+
     def report_progress(self, percent, data_len_str, speed, eta):
         """Report download progress."""
         if self.params.get('noprogress', False):
             return
-        clear_line = (u'\x1b[K' if sys.stderr.isatty() and os.name != 'nt' else u'')
         if eta is not None:
             eta_str = self.format_eta(eta)
         else:
@@ -218,14 +234,29 @@ class FileDownloader(object):
         else:
             percent_str = 'Unknown %'
         speed_str = self.format_speed(speed)
-        if self.params.get('progress_with_newline', False):
-            self.to_screen(u'[download] %s of %s at %s ETA %s' %
-                (percent_str, data_len_str, speed_str, eta_str))
+
+        msg = (u'%s of %s at %s ETA %s' %
+               (percent_str, data_len_str, speed_str, eta_str))
+        self._report_progress_status(msg)
+
+    def report_progress_live_stream(self, downloaded_data_len, speed, elapsed):
+        if self.params.get('noprogress', False):
+            return
+        downloaded_str = format_bytes(downloaded_data_len)
+        speed_str = self.format_speed(speed)
+        elapsed_str = FileDownloader.format_seconds(elapsed)
+        msg = u'%s at %s (%s)' % (downloaded_str, speed_str, elapsed_str)
+        self._report_progress_status(msg)
+
+    def report_finish(self, data_len_str, tot_time):
+        """Report download finished."""
+        if self.params.get('noprogress', False):
+            self.to_screen(u'[download] Download completed')
         else:
-            self.to_screen(u'\r%s[download] %s of %s at %s ETA %s' %
-                (clear_line, percent_str, data_len_str, speed_str, eta_str), skip_eol=True)
-        self.to_console_title(u'youtube-dl - %s of %s at %s ETA %s' %
-                (percent_str.strip(), data_len_str.strip(), speed_str.strip(), eta_str.strip()))
+            self._report_progress_status(
+                (u'100%% of %s in %s' %
+                 (data_len_str, self.format_seconds(tot_time))),
+                is_last_line=True)
 
     def report_resuming_byte(self, resume_len):
         """Report attempt to resume at given byte."""
@@ -246,16 +277,7 @@ class FileDownloader(object):
         """Report it was impossible to resume download."""
         self.to_screen(u'[download] Unable to resume')
 
-    def report_finish(self, data_len_str, tot_time):
-        """Report download finished."""
-        if self.params.get('noprogress', False):
-            self.to_screen(u'[download] Download completed')
-        else:
-            clear_line = (u'\x1b[K' if sys.stderr.isatty() and os.name != 'nt' else u'')
-            self.to_screen(u'\r%s[download] 100%% of %s in %s' %
-                (clear_line, data_len_str, self.format_seconds(tot_time)))
-
-    def _download_with_rtmpdump(self, filename, url, player_url, page_url, play_path, tc_url, live):
+    def _download_with_rtmpdump(self, filename, url, player_url, page_url, play_path, tc_url, live, conn):
         def run_rtmpdump(args):
             start = time.time()
             resume_percent = None
@@ -301,11 +323,27 @@ class FileDownloader(object):
                         'eta': eta,
                         'speed': speed,
                     })
-                elif self.params.get('verbose', False):
-                    if not cursor_in_new_line:
-                        self.to_screen(u'')
-                    cursor_in_new_line = True
-                    self.to_screen(u'[rtmpdump] '+line)
+                else:
+                    # no percent for live streams
+                    mobj = re.search(r'([0-9]+\.[0-9]{3}) kB / [0-9]+\.[0-9]{2} sec', line)
+                    if mobj:
+                        downloaded_data_len = int(float(mobj.group(1))*1024)
+                        time_now = time.time()
+                        speed = self.calc_speed(start, time_now, downloaded_data_len)
+                        self.report_progress_live_stream(downloaded_data_len, speed, time_now - start)
+                        cursor_in_new_line = False
+                        self._hook_progress({
+                            'downloaded_bytes': downloaded_data_len,
+                            'tmpfilename': tmpfilename,
+                            'filename': filename,
+                            'status': 'downloading',
+                            'speed': speed,
+                        })
+                    elif self.params.get('verbose', False):
+                        if not cursor_in_new_line:
+                            self.to_screen(u'')
+                        cursor_in_new_line = True
+                        self.to_screen(u'[rtmpdump] '+line)
             proc.wait()
             if not cursor_in_new_line:
                 self.to_screen(u'')
@@ -338,6 +376,8 @@ class FileDownloader(object):
             basic_args += ['--stop', '1']
         if live:
             basic_args += ['--live']
+        if conn:
+            basic_args += ['--conn', conn]
         args = basic_args + [[], ['--resume', '--skip', '1']][self.params.get('continuedl', False)]
 
         if sys.platform == 'win32' and sys.version_info < (3, 0):
@@ -479,7 +519,8 @@ class FileDownloader(object):
                                                 info_dict.get('page_url', None),
                                                 info_dict.get('play_path', None),
                                                 info_dict.get('tc_url', None),
-                                                info_dict.get('rtmp_live', False))
+                                                info_dict.get('rtmp_live', False),
+                                                info_dict.get('rtmp_conn', None))
 
         # Attempt to download using mplayer
         if url.startswith('mms') or url.startswith('rtsp'):
diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py
index b68b110..2a078ad 100644
--- a/youtube_dl/YoutubeDL.py
+++ b/youtube_dl/YoutubeDL.py
@@ -3,6 +3,7 @@
 
 from __future__ import absolute_import
 
+import collections
 import errno
 import io
 import json
@@ -22,7 +23,6 @@ if os.name == 'nt':
 from .utils import (
     compat_cookiejar,
     compat_http_client,
-    compat_print,
     compat_str,
     compat_urllib_error,
     compat_urllib_request,
@@ -34,6 +34,8 @@ from .utils import (
     encodeFilename,
     ExtractorError,
     format_bytes,
+    formatSeconds,
+    get_term_width,
     locked_file,
     make_HTTPS_handler,
     MaxDownloadsReached,
@@ -45,6 +47,7 @@ from .utils import (
     subtitles_filename,
     takewhile_inclusive,
     UnavailableVideoError,
+    url_basename,
     write_json_file,
     write_string,
     YoutubeDLHandler,
@@ -93,6 +96,7 @@ class YoutubeDL(object):
     forcethumbnail:    Force printing thumbnail URL.
     forcedescription:  Force printing description.
     forcefilename:     Force printing final filename.
+    forceduration:     Force printing duration.
     forcejson:         Force printing info_dict as JSON.
     simulate:          Do not download the video files.
     format:            Video format code.
@@ -126,13 +130,24 @@ class YoutubeDL(object):
     noplaylist:        Download single video instead of a playlist if in doubt.
     age_limit:         An integer representing the user's age in years.
                        Unsuitable videos for the given age are skipped.
-    download_archive:   File name of a file where all downloads are recorded.
+    min_views:         An integer representing the minimum view count the video
+                       must have in order to not be skipped.
+                       Videos without view count information are always
+                       downloaded. None for no limit.
+    max_views:         An integer representing the maximum view count.
+                       Videos that are more popular than that are not
+                       downloaded.
+                       Videos without view count information are always
+                       downloaded. None for no limit.
+    download_archive:  File name of a file where all downloads are recorded.
                        Videos already present in the file are not downloaded
                        again.
     cookiefile:        File name where cookies should be read from and dumped to.
     nocheckcertificate:Do not verify SSL certificates
     proxy:             URL of the proxy server to use
     socket_timeout:    Time to wait for unresponsive hosts, in seconds
+    bidi_workaround:   Work around buggy terminals without bidirectional text
+                       support, using fridibi
 
     The following parameters are not used by YoutubeDL itself, they are used by
     the FileDownloader:
@@ -156,8 +171,30 @@ class YoutubeDL(object):
         self._download_retcode = 0
         self._num_downloads = 0
         self._screen_file = [sys.stdout, sys.stderr][params.get('logtostderr', False)]
+        self._err_file = sys.stderr
         self.params = {} if params is None else params
 
+        if params.get('bidi_workaround', False):
+            try:
+                import pty
+                master, slave = pty.openpty()
+                width = get_term_width()
+                if width is None:
+                    width_args = []
+                else:
+                    width_args = ['-w', str(width)]
+                self._fribidi = subprocess.Popen(
+                    ['fribidi', '-c', 'UTF-8'] + width_args,
+                    stdin=subprocess.PIPE,
+                    stdout=slave,
+                    stderr=self._err_file)
+                self._fribidi_channel = os.fdopen(master, 'rb')
+            except OSError as ose:
+                if ose.errno == 2:
+                    self.report_warning(u'Could not find fribidi executable, ignoring --bidi-workaround . Make sure that  fribidi  is an executable file in one of the directories in your $PATH.')
+                else:
+                    raise
+
         if (sys.version_info >= (3,) and sys.platform != 'win32' and
                 sys.getfilesystemencoding() in ['ascii', 'ANSI_X3.4-1968']
                 and not params['restrictfilenames']):
@@ -205,13 +242,31 @@ class YoutubeDL(object):
         self._pps.append(pp)
         pp.set_downloader(self)
 
+    def _bidi_workaround(self, message):
+        if not hasattr(self, '_fribidi_channel'):
+            return message
+
+        assert type(message) == type(u'')
+        line_count = message.count(u'\n') + 1
+        self._fribidi.stdin.write((message + u'\n').encode('utf-8'))
+        self._fribidi.stdin.flush()
+        res = u''.join(self._fribidi_channel.readline().decode('utf-8')
+                       for _ in range(line_count))
+        return res[:-len(u'\n')]
+
     def to_screen(self, message, skip_eol=False):
+        """Print message to stdout if not in quiet mode."""
+        return self.to_stdout(message, skip_eol, check_quiet=True)
+
+    def to_stdout(self, message, skip_eol=False, check_quiet=False):
         """Print message to stdout if not in quiet mode."""
         if self.params.get('logger'):
             self.params['logger'].debug(message)
-        elif not self.params.get('quiet', False):
+        elif not check_quiet or not self.params.get('quiet', False):
+            message = self._bidi_workaround(message)
             terminator = [u'\n', u''][skip_eol]
             output = message + terminator
+
             write_string(output, self._screen_file)
 
     def to_stderr(self, message):
@@ -220,10 +275,9 @@ class YoutubeDL(object):
         if self.params.get('logger'):
             self.params['logger'].error(message)
         else:
+            message = self._bidi_workaround(message)
             output = message + u'\n'
-            if 'b' in getattr(self._screen_file, 'mode', '') or sys.version_info[0] < 3: # Python 2 lies about the mode of sys.stdout/sys.stderr
-                output = output.encode(preferredencoding())
-            sys.stderr.write(output)
+            write_string(output, self._err_file)
 
     def to_console_title(self, message):
         if not self.params.get('consoletitle', False):
@@ -294,7 +348,7 @@ class YoutubeDL(object):
         Print the message to stderr, it will be prefixed with 'WARNING:'
         If stderr is a tty file the 'WARNING:' will be colored
         '''
-        if sys.stderr.isatty() and os.name != 'nt':
+        if self._err_file.isatty() and os.name != 'nt':
             _msg_header = u'\033[0;33mWARNING:\033[0m'
         else:
             _msg_header = u'WARNING:'
@@ -306,29 +360,13 @@ class YoutubeDL(object):
         Do the same as trouble, but prefixes the message with 'ERROR:', colored
         in red if stderr is a tty file.
         '''
-        if sys.stderr.isatty() and os.name != 'nt':
+        if self._err_file.isatty() and os.name != 'nt':
             _msg_header = u'\033[0;31mERROR:\033[0m'
         else:
             _msg_header = u'ERROR:'
         error_message = u'%s %s' % (_msg_header, message)
         self.trouble(error_message, tb)
 
-    def report_writedescription(self, descfn):
-        """ Report that the description file is being written """
-        self.to_screen(u'[info] Writing video description to: ' + descfn)
-
-    def report_writesubtitles(self, sub_filename):
-        """ Report that the subtitles file is being written """
-        self.to_screen(u'[info] Writing video subtitles to: ' + sub_filename)
-
-    def report_writeinfojson(self, infofn):
-        """ Report that the metadata file has been written """
-        self.to_screen(u'[info] Video description metadata as JSON to: ' + infofn)
-
-    def report_writeannotations(self, annofn):
-        """ Report that the annotations file has been written. """
-        self.to_screen(u'[info] Writing video annotations to: ' + annofn)
-
     def report_file_already_downloaded(self, file_name):
         """Report file has already been fully downloaded."""
         try:
@@ -355,18 +393,17 @@ class YoutubeDL(object):
                 template_dict['playlist_index'] = u'%05d' % template_dict['playlist_index']
 
             sanitize = lambda k, v: sanitize_filename(
-                u'NA' if v is None else compat_str(v),
+                compat_str(v),
                 restricted=self.params.get('restrictfilenames'),
                 is_id=(k == u'id'))
             template_dict = dict((k, sanitize(k, v))
-                                 for k, v in template_dict.items())
+                                 for k, v in template_dict.items()
+                                 if v is not None)
+            template_dict = collections.defaultdict(lambda: u'NA', template_dict)
 
             tmpl = os.path.expanduser(self.params['outtmpl'])
             filename = tmpl % template_dict
             return filename
-        except KeyError as err:
-            self.report_error(u'Erroneous output template')
-            return None
         except ValueError as err:
             self.report_error(u'Error in output template: ' + str(err) + u' (encoding: ' + repr(preferredencoding()) + ')')
             return None
@@ -374,13 +411,14 @@ class YoutubeDL(object):
     def _match_entry(self, info_dict):
         """ Returns None iff the file should be downloaded """
 
+        video_title = info_dict.get('title', info_dict.get('id', u'video'))
         if 'title' in info_dict:
             # This can happen when we're just evaluating the playlist
             title = info_dict['title']
             matchtitle = self.params.get('matchtitle', False)
             if matchtitle:
                 if not re.search(matchtitle, title, re.IGNORECASE):
-                    return u'[download] "' + title + '" title did not match pattern "' + matchtitle + '"'
+                    return u'"' + title + '" title did not match pattern "' + matchtitle + '"'
             rejecttitle = self.params.get('rejecttitle', False)
             if rejecttitle:
                 if re.search(rejecttitle, title, re.IGNORECASE):
@@ -389,14 +427,21 @@ class YoutubeDL(object):
         if date is not None:
             dateRange = self.params.get('daterange', DateRange())
             if date not in dateRange:
-                return u'[download] %s upload date is not in range %s' % (date_from_str(date).isoformat(), dateRange)
+                return u'%s upload date is not in range %s' % (date_from_str(date).isoformat(), dateRange)
+        view_count = info_dict.get('view_count', None)
+        if view_count is not None:
+            min_views = self.params.get('min_views')
+            if min_views is not None and view_count < min_views:
+                return u'Skipping %s, because it has not reached minimum view count (%d/%d)' % (video_title, view_count, min_views)
+            max_views = self.params.get('max_views')
+            if max_views is not None and view_count > max_views:
+                return u'Skipping %s, because it has exceeded the maximum view count (%d/%d)' % (video_title, view_count, max_views)
         age_limit = self.params.get('age_limit')
         if age_limit is not None:
             if age_limit < info_dict.get('age_limit', 0):
                 return u'Skipping "' + title + '" because it is age restricted'
         if self.in_download_archive(info_dict):
-            return (u'%s has already been recorded in archive'
-                    % info_dict.get('title', info_dict.get('id', u'video')))
+            return u'%s has already been recorded in archive' % video_title
         return None
 
     @staticmethod
@@ -405,7 +450,8 @@ class YoutubeDL(object):
         for key, value in extra_info.items():
             info_dict.setdefault(key, value)
 
-    def extract_info(self, url, download=True, ie_key=None, extra_info={}):
+    def extract_info(self, url, download=True, ie_key=None, extra_info={},
+                     process=True):
         '''
         Returns a list with a dictionary for each video we find.
         If 'download', also downloads the videos.
@@ -439,9 +485,13 @@ class YoutubeDL(object):
                     {
                         'extractor': ie.IE_NAME,
                         'webpage_url': url,
+                        'webpage_url_basename': url_basename(url),
                         'extractor_key': ie.ie_key(),
                     })
-                return self.process_ie_result(ie_result, download, extra_info)
+                if process:
+                    return self.process_ie_result(ie_result, download, extra_info)
+                else:
+                    return ie_result
             except ExtractorError as de: # An error we somewhat expected
                 self.report_error(compat_str(de), de.format_traceback())
                 break
@@ -474,8 +524,33 @@ class YoutubeDL(object):
                                      download,
                                      ie_key=ie_result.get('ie_key'),
                                      extra_info=extra_info)
+        elif result_type == 'url_transparent':
+            # Use the information from the embedding page
+            info = self.extract_info(
+                ie_result['url'], ie_key=ie_result.get('ie_key'),
+                extra_info=extra_info, download=False, process=False)
+
+            def make_result(embedded_info):
+                new_result = ie_result.copy()
+                for f in ('_type', 'url', 'ext', 'player_url', 'formats',
+                          'entries', 'urlhandle', 'ie_key', 'duration',
+                          'subtitles', 'annotations', 'format',
+                          'thumbnail', 'thumbnails'):
+                    if f in new_result:
+                        del new_result[f]
+                    if f in embedded_info:
+                        new_result[f] = embedded_info[f]
+                return new_result
+            new_result = make_result(info)
+
+            assert new_result.get('_type') != 'url_transparent'
+            if new_result.get('_type') == 'compat_list':
+                new_result['entries'] = [
+                    make_result(e) for e in new_result['entries']]
+
+            return self.process_ie_result(
+                new_result, download=download, extra_info=extra_info)
         elif result_type == 'playlist':
-
             # We process each entry in the playlist
             playlist = ie_result.get('title', None) or ie_result.get('id', None)
             self.to_screen(u'[download] Downloading playlist: %s' % playlist)
@@ -484,16 +559,16 @@ class YoutubeDL(object):
 
             n_all_entries = len(ie_result['entries'])
             playliststart = self.params.get('playliststart', 1) - 1
-            playlistend = self.params.get('playlistend', -1)
-
+            playlistend = self.params.get('playlistend', None)
+            # For backwards compatibility, interpret -1 as whole list
             if playlistend == -1:
-                entries = ie_result['entries'][playliststart:]
-            else:
-                entries = ie_result['entries'][playliststart:playlistend]
+                playlistend = None
 
+            entries = ie_result['entries'][playliststart:playlistend]
             n_entries = len(entries)
 
-            self.to_screen(u"[%s] playlist '%s': Collected %d video ids (downloading %d of them)" %
+            self.to_screen(
+                u"[%s] playlist '%s': Collected %d video ids (downloading %d of them)" %
                 (ie_result['extractor'], playlist, n_all_entries, n_entries))
 
             for i, entry in enumerate(entries, 1):
@@ -503,6 +578,7 @@ class YoutubeDL(object):
                     'playlist_index': i + playliststart,
                     'extractor': ie_result['extractor'],
                     'webpage_url': ie_result['webpage_url'],
+                    'webpage_url_basename': url_basename(ie_result['webpage_url']),
                     'extractor_key': ie_result['extractor_key'],
                 }
 
@@ -523,6 +599,7 @@ class YoutubeDL(object):
                     {
                         'extractor': ie_result['extractor'],
                         'webpage_url': ie_result['webpage_url'],
+                        'webpage_url_basename': url_basename(ie_result['webpage_url']),
                         'extractor_key': ie_result['extractor_key'],
                     })
                 return r
@@ -666,22 +743,25 @@ class YoutubeDL(object):
 
         # Forced printings
         if self.params.get('forcetitle', False):
-            compat_print(info_dict['fulltitle'])
+            self.to_stdout(info_dict['fulltitle'])
         if self.params.get('forceid', False):
-            compat_print(info_dict['id'])
+            self.to_stdout(info_dict['id'])
         if self.params.get('forceurl', False):
             # For RTMP URLs, also include the playpath
-            compat_print(info_dict['url'] + info_dict.get('play_path', u''))
+            self.to_stdout(info_dict['url'] + info_dict.get('play_path', u''))
         if self.params.get('forcethumbnail', False) and info_dict.get('thumbnail') is not None:
-            compat_print(info_dict['thumbnail'])
+            self.to_stdout(info_dict['thumbnail'])
         if self.params.get('forcedescription', False) and info_dict.get('description') is not None:
-            compat_print(info_dict['description'])
+            self.to_stdout(info_dict['description'])
         if self.params.get('forcefilename', False) and filename is not None:
-            compat_print(filename)
+            self.to_stdout(filename)
+        if self.params.get('forceduration', False) and info_dict.get('duration') is not None:
+            self.to_stdout(formatSeconds(info_dict['duration']))
         if self.params.get('forceformat', False):
-            compat_print(info_dict['format'])
+            self.to_stdout(info_dict['format'])
         if self.params.get('forcejson', False):
-            compat_print(json.dumps(info_dict))
+            info_dict['_filename'] = filename
+            self.to_stdout(json.dumps(info_dict))
 
         # Do nothing else if in simulate mode
         if self.params.get('simulate', False):
@@ -699,28 +779,34 @@ class YoutubeDL(object):
             return
 
         if self.params.get('writedescription', False):
-            try:
-                descfn = filename + u'.description'
-                self.report_writedescription(descfn)
-                with io.open(encodeFilename(descfn), 'w', encoding='utf-8') as descfile:
-                    descfile.write(info_dict['description'])
-            except (KeyError, TypeError):
-                self.report_warning(u'There\'s no description to write.')
-            except (OSError, IOError):
-                self.report_error(u'Cannot write description file ' + descfn)
-                return
+            descfn = filename + u'.description'
+            if self.params.get('nooverwrites', False) and os.path.exists(encodeFilename(descfn)):
+                self.to_screen(u'[info] Video description is already present')
+            else:
+                try:
+                    self.to_screen(u'[info] Writing video description to: ' + descfn)
+                    with io.open(encodeFilename(descfn), 'w', encoding='utf-8') as descfile:
+                        descfile.write(info_dict['description'])
+                except (KeyError, TypeError):
+                    self.report_warning(u'There\'s no description to write.')
+                except (OSError, IOError):
+                    self.report_error(u'Cannot write description file ' + descfn)
+                    return
 
         if self.params.get('writeannotations', False):
-            try:
-                annofn = filename + u'.annotations.xml'
-                self.report_writeannotations(annofn)
-                with io.open(encodeFilename(annofn), 'w', encoding='utf-8') as annofile:
-                    annofile.write(info_dict['annotations'])
-            except (KeyError, TypeError):
-                self.report_warning(u'There are no annotations to write.')
-            except (OSError, IOError):
-                self.report_error(u'Cannot write annotations file: ' + annofn)
-                return
+            annofn = filename + u'.annotations.xml'
+            if self.params.get('nooverwrites', False) and os.path.exists(encodeFilename(annofn)):
+                self.to_screen(u'[info] Video annotations are already present')
+            else:
+                try:
+                    self.to_screen(u'[info] Writing video annotations to: ' + annofn)
+                    with io.open(encodeFilename(annofn), 'w', encoding='utf-8') as annofile:
+                        annofile.write(info_dict['annotations'])
+                except (KeyError, TypeError):
+                    self.report_warning(u'There are no annotations to write.')
+                except (OSError, IOError):
+                    self.report_error(u'Cannot write annotations file: ' + annofn)
+                    return
 
         subtitles_are_requested = any([self.params.get('writesubtitles', False),
                                        self.params.get('writeautomaticsub')])
@@ -736,38 +822,48 @@ class YoutubeDL(object):
                     continue
                 try:
                     sub_filename = subtitles_filename(filename, sub_lang, sub_format)
-                    self.report_writesubtitles(sub_filename)
-                    with io.open(encodeFilename(sub_filename), 'w', encoding='utf-8') as subfile:
-                            subfile.write(sub)
+                    if self.params.get('nooverwrites', False) and os.path.exists(encodeFilename(sub_filename)):
+                        self.to_screen(u'[info] Video subtitle %s.%s is already_present' % (sub_lang, sub_format))
+                    else:
+                        self.to_screen(u'[info] Writing video subtitles to: ' + sub_filename)
+                        with io.open(encodeFilename(sub_filename), 'w', encoding='utf-8') as subfile:
+                                subfile.write(sub)
                 except (OSError, IOError):
                     self.report_error(u'Cannot write subtitles file ' + descfn)
                     return
 
         if self.params.get('writeinfojson', False):
             infofn = os.path.splitext(filename)[0] + u'.info.json'
-            self.report_writeinfojson(infofn)
-            try:
-                json_info_dict = dict((k, v) for k, v in info_dict.items() if not k in ['urlhandle'])
-                write_json_file(json_info_dict, encodeFilename(infofn))
-            except (OSError, IOError):
-                self.report_error(u'Cannot write metadata to JSON file ' + infofn)
-                return
+            if self.params.get('nooverwrites', False) and os.path.exists(encodeFilename(infofn)):
+                self.to_screen(u'[info] Video description metadata is already present')
+            else:
+                self.to_screen(u'[info] Writing video description metadata as JSON to: ' + infofn)
+                try:
+                    json_info_dict = dict((k, v) for k, v in info_dict.items() if not k in ['urlhandle'])
+                    write_json_file(json_info_dict, encodeFilename(infofn))
+                except (OSError, IOError):
+                    self.report_error(u'Cannot write metadata to JSON file ' + infofn)
+                    return
 
         if self.params.get('writethumbnail', False):
             if info_dict.get('thumbnail') is not None:
                 thumb_format = determine_ext(info_dict['thumbnail'], u'jpg')
-                thumb_filename = filename.rpartition('.')[0] + u'.' + thumb_format
-                self.to_screen(u'[%s] %s: Downloading thumbnail ...' %
-                               (info_dict['extractor'], info_dict['id']))
-                try:
-                    uf = compat_urllib_request.urlopen(info_dict['thumbnail'])
-                    with open(thumb_filename, 'wb') as thumbf:
-                        shutil.copyfileobj(uf, thumbf)
-                    self.to_screen(u'[%s] %s: Writing thumbnail to: %s' %
-                        (info_dict['extractor'], info_dict['id'], thumb_filename))
-                except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
-                    self.report_warning(u'Unable to download thumbnail "%s": %s' %
-                        (info_dict['thumbnail'], compat_str(err)))
+                thumb_filename = os.path.splitext(filename)[0] + u'.' + thumb_format
+                if self.params.get('nooverwrites', False) and os.path.exists(encodeFilename(thumb_filename)):
+                    self.to_screen(u'[%s] %s: Thumbnail is already present' %
+                                   (info_dict['extractor'], info_dict['id']))
+                else:
+                    self.to_screen(u'[%s] %s: Downloading thumbnail ...' %
+                                   (info_dict['extractor'], info_dict['id']))
+                    try:
+                        uf = compat_urllib_request.urlopen(info_dict['thumbnail'])
+                        with open(thumb_filename, 'wb') as thumbf:
+                            shutil.copyfileobj(uf, thumbf)
+                        self.to_screen(u'[%s] %s: Writing thumbnail to: %s' %
+                            (info_dict['extractor'], info_dict['id'], thumb_filename))
+                    except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
+                        self.report_warning(u'Unable to download thumbnail "%s": %s' %
+                            (info_dict['thumbnail'], compat_str(err)))
 
         if not self.params.get('skip_download', False):
             if self.params.get('nooverwrites', False) and os.path.exists(encodeFilename(filename)):
@@ -812,6 +908,20 @@ class YoutubeDL(object):
 
         return self._download_retcode
 
+    def download_with_info_file(self, info_filename):
+        with io.open(info_filename, 'r', encoding='utf-8') as f:
+            info = json.load(f)
+        try:
+            self.process_ie_result(info, download=True)
+        except DownloadError:
+            webpage_url = info.get('webpage_url')
+            if webpage_url is not None:
+                self.report_warning(u'The info failed to download, trying with "%s"' % webpage_url)
+                return self.download([webpage_url])
+            else:
+                raise
+        return self._download_retcode
+
     def post_process(self, filename, ie_info):
         """Run all the postprocessors on the given file."""
         info = dict(ie_info)
diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py
index d2446b6..6343730 100644
--- a/youtube_dl/__init__.py
+++ b/youtube_dl/__init__.py
@@ -37,6 +37,7 @@ __authors__  = (
     'Anton Larionov',
     'Takuya Tsuchida',
     'Sergey M.',
+    'Michael Orlitzky',
 )
 
 __license__ = 'Public Domain'
@@ -48,7 +49,6 @@ import os
 import random
 import re
 import shlex
-import subprocess
 import sys
 
 
@@ -56,12 +56,13 @@ from .utils import (
     compat_print,
     DateRange,
     decodeOption,
-    determine_ext,
+    get_term_width,
     DownloadError,
     get_cachedir,
     MaxDownloadsReached,
     preferredencoding,
     SameFileError,
+    setproctitle,
     std_headers,
     write_string,
 )
@@ -113,19 +114,6 @@ def parseOpts(overrideArguments=None):
     def _comma_separated_values_options_callback(option, opt_str, value, parser):
         setattr(parser.values, option.dest, value.split(','))
 
-    def _find_term_columns():
-        columns = os.environ.get('COLUMNS', None)
-        if columns:
-            return int(columns)
-
-        try:
-            sp = subprocess.Popen(['stty', 'size'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
-            out,err = sp.communicate()
-            return int(out.split()[1])
-        except:
-            pass
-        return None
-
     def _hide_login_info(opts):
         opts = list(opts)
         for private_opt in ['-p', '--password', '-u', '--username', '--video-password']:
@@ -140,7 +128,7 @@ def parseOpts(overrideArguments=None):
     max_help_position = 80
 
     # No need to wrap help messages if we're on a wide console
-    columns = _find_term_columns()
+    columns = get_term_width()
     if columns: max_width = columns
 
     fmt = optparse.IndentedHelpFormatter(width=max_width, max_help_position=max_help_position)
@@ -204,12 +192,19 @@ def parseOpts(overrideArguments=None):
     general.add_option(
         '--socket-timeout', dest='socket_timeout',
         type=float, default=None, help=optparse.SUPPRESS_HELP)
-
-
-    selection.add_option('--playlist-start',
-            dest='playliststart', metavar='NUMBER', help='playlist video to start at (default is %default)', default=1)
-    selection.add_option('--playlist-end',
-            dest='playlistend', metavar='NUMBER', help='playlist video to end at (default is last)', default=-1)
+    general.add_option(
+        '--bidi-workaround', dest='bidi_workaround', action='store_true',
+        help=u'Work around terminals that lack bidirectional text support. Requires fribidi executable in PATH')
+
+
+    selection.add_option(
+        '--playlist-start',
+        dest='playliststart', metavar='NUMBER', default=1, type=int,
+        help='playlist video to start at (default is %default)')
+    selection.add_option(
+        '--playlist-end',
+        dest='playlistend', metavar='NUMBER', default=None, type=int,
+        help='playlist video to end at (default is last)')
     selection.add_option('--match-title', dest='matchtitle', metavar='REGEX',help='download only matching titles (regex or caseless sub-string)')
     selection.add_option('--reject-title', dest='rejecttitle', metavar='REGEX',help='skip download for matching titles (regex or caseless sub-string)')
     selection.add_option('--max-downloads', metavar='NUMBER',
@@ -220,6 +215,14 @@ def parseOpts(overrideArguments=None):
     selection.add_option('--date', metavar='DATE', dest='date', help='download only videos uploaded in this date', default=None)
     selection.add_option('--datebefore', metavar='DATE', dest='datebefore', help='download only videos uploaded before this date', default=None)
     selection.add_option('--dateafter', metavar='DATE', dest='dateafter', help='download only videos uploaded after this date', default=None)
+    selection.add_option(
+        '--min-views', metavar='COUNT', dest='min_views',
+        default=None, type=int,
+        help="Do not download any videos with less than COUNT views",)
+    selection.add_option(
+        '--max-views', metavar='COUNT', dest='max_views',
+        default=None, type=int,
+        help="Do not download any videos with more than COUNT views",)
     selection.add_option('--no-playlist', action='store_true', dest='noplaylist', help='download only the currently playing video', default=False)
     selection.add_option('--age-limit', metavar='YEARS', dest='age_limit',
                          help='download only videos suitable for the given age',
@@ -300,6 +303,9 @@ def parseOpts(overrideArguments=None):
     verbosity.add_option('--get-description',
             action='store_true', dest='getdescription',
             help='simulate, quiet but print video description', default=False)
+    verbosity.add_option('--get-duration',
+            action='store_true', dest='getduration',
+            help='simulate, quiet but print video length', default=False)
     verbosity.add_option('--get-filename',
             action='store_true', dest='getfilename',
             help='simulate, quiet but print output filename', default=False)
@@ -360,6 +366,9 @@ def parseOpts(overrideArguments=None):
             help='Restrict filenames to only ASCII characters, and avoid "&" and spaces in filenames', default=False)
     filesystem.add_option('-a', '--batch-file',
             dest='batchfile', metavar='FILE', help='file containing URLs to download (\'-\' for stdin)')
+    filesystem.add_option('--load-info',
+            dest='load_info_filename', metavar='FILE',
+            help='json file containing the video information (created with the "--write-json" option')
     filesystem.add_option('-w', '--no-overwrites',
             action='store_true', dest='nooverwrites', help='do not overwrite files', default=False)
     filesystem.add_option('-c', '--continue',
@@ -467,12 +476,15 @@ def parseOpts(overrideArguments=None):
 
     return parser, opts, args
 
+
 def _real_main(argv=None):
     # Compatibility fixes for Windows
     if sys.platform == 'win32':
         # https://github.com/rg3/youtube-dl/issues/820
         codecs.register(lambda name: codecs.lookup('utf-8') if name == 'cp65001' else None)
 
+    setproctitle(u'youtube-dl')
+
     parser, opts, args = parseOpts(argv)
 
     # Set user agent
@@ -512,7 +524,6 @@ def _real_main(argv=None):
         for ie in sorted(extractors, key=lambda ie: ie.IE_NAME.lower()):
             compat_print(ie.IE_NAME + (' (CURRENTLY BROKEN)' if not ie._WORKING else ''))
             matchedUrls = [url for url in all_urls if ie.suitable(url)]
-            all_urls = [url for url in all_urls if url not in matchedUrls]
             for mu in matchedUrls:
                 compat_print(u'  ' + mu)
         sys.exit(0)
@@ -567,18 +578,10 @@ def _real_main(argv=None):
         if numeric_buffersize is None:
             parser.error(u'invalid buffer size specified')
         opts.buffersize = numeric_buffersize
-    try:
-        opts.playliststart = int(opts.playliststart)
-        if opts.playliststart <= 0:
-            raise ValueError(u'Playlist start must be positive')
-    except (TypeError, ValueError):
-        parser.error(u'invalid playlist start number specified')
-    try:
-        opts.playlistend = int(opts.playlistend)
-        if opts.playlistend != -1 and (opts.playlistend <= 0 or opts.playlistend < opts.playliststart):
-            raise ValueError(u'Playlist end must be greater than playlist start')
-    except (TypeError, ValueError):
-        parser.error(u'invalid playlist end number specified')
+    if opts.playliststart <= 0:
+        raise ValueError(u'Playlist start must be positive')
+    if opts.playlistend not in (-1, None) and opts.playlistend < opts.playliststart:
+        raise ValueError(u'Playlist end must be greater than playlist start')
     if opts.extractaudio:
         if opts.audioformat not in ['best', 'aac', 'mp3', 'm4a', 'opus', 'vorbis', 'wav']:
             parser.error(u'invalid audio format specified')
@@ -611,27 +614,30 @@ def _real_main(argv=None):
             or (opts.useid and u'%(id)s.%(ext)s')
             or (opts.autonumber and u'%(autonumber)s-%(id)s.%(ext)s')
             or u'%(title)s-%(id)s.%(ext)s')
-    if '%(ext)s' not in outtmpl and opts.extractaudio:
+    if not os.path.splitext(outtmpl)[1] and opts.extractaudio:
         parser.error(u'Cannot download a video and extract audio into the same'
-                     u' file! Use "%%(ext)s" instead of %r' %
-                     determine_ext(outtmpl, u''))
+                     u' file! Use "{0}.%(ext)s" instead of "{0}" as the output'
+                     u' template'.format(outtmpl))
+
+    any_printing = opts.geturl or opts.gettitle or opts.getid or opts.getthumbnail or opts.getdescription or opts.getfilename or opts.getformat or opts.getduration or opts.dumpjson
 
     ydl_opts = {
         'usenetrc': opts.usenetrc,
         'username': opts.username,
         'password': opts.password,
         'videopassword': opts.videopassword,
-        'quiet': (opts.quiet or opts.geturl or opts.gettitle or opts.getid or opts.getthumbnail or opts.getdescription or opts.getfilename or opts.getformat or opts.dumpjson),
+        'quiet': (opts.quiet or any_printing),
         'forceurl': opts.geturl,
         'forcetitle': opts.gettitle,
         'forceid': opts.getid,
         'forcethumbnail': opts.getthumbnail,
         'forcedescription': opts.getdescription,
+        'forceduration': opts.getduration,
         'forcefilename': opts.getfilename,
         'forceformat': opts.getformat,
         'forcejson': opts.dumpjson,
         'simulate': opts.simulate,
-        'skip_download': (opts.skip_download or opts.simulate or opts.geturl or opts.gettitle or opts.getid or opts.getthumbnail or opts.getdescription or opts.getfilename or opts.getformat or opts.dumpjson),
+        'skip_download': (opts.skip_download or opts.simulate or any_printing),
         'format': opts.format,
         'format_limit': opts.format_limit,
         'listformats': opts.listformats,
@@ -675,6 +681,8 @@ def _real_main(argv=None):
         'keepvideo': opts.keepvideo,
         'min_filesize': opts.min_filesize,
         'max_filesize': opts.max_filesize,
+        'min_views': opts.min_views,
+        'max_views': opts.max_views,
         'daterange': date,
         'cachedir': opts.cachedir,
         'youtube_print_sig_code': opts.youtube_print_sig_code,
@@ -684,6 +692,7 @@ def _real_main(argv=None):
         'nocheckcertificate': opts.no_check_certificate,
         'proxy': opts.proxy,
         'socket_timeout': opts.socket_timeout,
+        'bidi_workaround': opts.bidi_workaround,
     }
 
     with YoutubeDL(ydl_opts) as ydl:
@@ -706,14 +715,17 @@ def _real_main(argv=None):
             update_self(ydl.to_screen, opts.verbose)
 
         # Maybe do nothing
-        if len(all_urls) < 1:
+        if (len(all_urls) < 1) and (opts.load_info_filename is None):
             if not opts.update_self:
                 parser.error(u'you must provide at least one URL')
             else:
                 sys.exit()
 
         try:
-            retcode = ydl.download(all_urls)
+            if opts.load_info_filename is not None:
+                retcode = ydl.download_with_info_file(opts.load_info_filename)
+            else:
+                retcode = ydl.download(all_urls)
         except MaxDownloadsReached:
             ydl.to_screen(u'--max-download limit reached, aborting.')
             retcode = 101
diff --git a/youtube_dl/aes.py b/youtube_dl/aes.py
index 9a0c93f..e9c5e21 100644
--- a/youtube_dl/aes.py
+++ b/youtube_dl/aes.py
@@ -1,4 +1,4 @@
-__all__ = ['aes_encrypt', 'key_expansion', 'aes_ctr_decrypt', 'aes_decrypt_text']
+__all__ = ['aes_encrypt', 'key_expansion', 'aes_ctr_decrypt', 'aes_cbc_decrypt', 'aes_decrypt_text']
 
 import base64
 from math import ceil
@@ -32,6 +32,31 @@ def aes_ctr_decrypt(data, key, counter):
     
     return decrypted_data
 
+def aes_cbc_decrypt(data, key, iv):
+    """
+    Decrypt with aes in CBC mode
+    
+    @param {int[]} data        cipher
+    @param {int[]} key         16/24/32-Byte cipher key
+    @param {int[]} iv          16-Byte IV
+    @returns {int[]}           decrypted data
+    """
+    expanded_key = key_expansion(key)
+    block_count = int(ceil(float(len(data)) / BLOCK_SIZE_BYTES))
+    
+    decrypted_data=[]
+    previous_cipher_block = iv
+    for i in range(block_count):
+        block = data[i*BLOCK_SIZE_BYTES : (i+1)*BLOCK_SIZE_BYTES]
+        block += [0]*(BLOCK_SIZE_BYTES - len(block))
+        
+        decrypted_block = aes_decrypt(block, expanded_key)
+        decrypted_data += xor(decrypted_block, previous_cipher_block)
+        previous_cipher_block = block
+    decrypted_data = decrypted_data[:len(data)]
+    
+    return decrypted_data
+
 def key_expansion(data):
     """
     Generate key schedule
@@ -75,7 +100,7 @@ def aes_encrypt(data, expanded_key):
     @returns {int[]}             16-Byte cipher
     """
     rounds = len(expanded_key) // BLOCK_SIZE_BYTES - 1
-    
+
     data = xor(data, expanded_key[:BLOCK_SIZE_BYTES])
     for i in range(1, rounds+1):
         data = sub_bytes(data)
@@ -83,6 +108,26 @@ def aes_encrypt(data, expanded_key):
         if i != rounds:
             data = mix_columns(data)
         data = xor(data, expanded_key[i*BLOCK_SIZE_BYTES : (i+1)*BLOCK_SIZE_BYTES])
+
+    return data
+
+def aes_decrypt(data, expanded_key):
+    """
+    Decrypt one block with aes
+    
+    @param {int[]} data          16-Byte cipher
+    @param {int[]} expanded_key  176/208/240-Byte expanded key
+    @returns {int[]}             16-Byte state
+    """
+    rounds = len(expanded_key) // BLOCK_SIZE_BYTES - 1
+    
+    for i in range(rounds, 0, -1):
+        data = xor(data, expanded_key[i*BLOCK_SIZE_BYTES : (i+1)*BLOCK_SIZE_BYTES])
+        if i != rounds:
+            data = mix_columns_inv(data)
+        data = shift_rows_inv(data)
+        data = sub_bytes_inv(data)
+    data = xor(data, expanded_key[:BLOCK_SIZE_BYTES])
     
     return data
 
@@ -139,14 +184,69 @@ SBOX = (0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B,
         0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9E,
         0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xDF,
         0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x16)
-MIX_COLUMN_MATRIX = ((2,3,1,1),
-                     (1,2,3,1),
-                     (1,1,2,3),
-                     (3,1,1,2))
+SBOX_INV = (0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb,
+            0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb,
+            0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e,
+            0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25,
+            0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92,
+            0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84,
+            0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06,
+            0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b,
+            0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73,
+            0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e,
+            0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b,
+            0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4,
+            0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f,
+            0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef,
+            0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61,
+            0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d)
+MIX_COLUMN_MATRIX = ((0x2,0x3,0x1,0x1),
+                     (0x1,0x2,0x3,0x1),
+                     (0x1,0x1,0x2,0x3),
+                     (0x3,0x1,0x1,0x2))
+MIX_COLUMN_MATRIX_INV = ((0xE,0xB,0xD,0x9),
+                         (0x9,0xE,0xB,0xD),
+                         (0xD,0x9,0xE,0xB),
+                         (0xB,0xD,0x9,0xE))
+RIJNDAEL_EXP_TABLE = (0x01, 0x03, 0x05, 0x0F, 0x11, 0x33, 0x55, 0xFF, 0x1A, 0x2E, 0x72, 0x96, 0xA1, 0xF8, 0x13, 0x35,
+                      0x5F, 0xE1, 0x38, 0x48, 0xD8, 0x73, 0x95, 0xA4, 0xF7, 0x02, 0x06, 0x0A, 0x1E, 0x22, 0x66, 0xAA,
+                      0xE5, 0x34, 0x5C, 0xE4, 0x37, 0x59, 0xEB, 0x26, 0x6A, 0xBE, 0xD9, 0x70, 0x90, 0xAB, 0xE6, 0x31,
+                      0x53, 0xF5, 0x04, 0x0C, 0x14, 0x3C, 0x44, 0xCC, 0x4F, 0xD1, 0x68, 0xB8, 0xD3, 0x6E, 0xB2, 0xCD,
+                      0x4C, 0xD4, 0x67, 0xA9, 0xE0, 0x3B, 0x4D, 0xD7, 0x62, 0xA6, 0xF1, 0x08, 0x18, 0x28, 0x78, 0x88,
+                      0x83, 0x9E, 0xB9, 0xD0, 0x6B, 0xBD, 0xDC, 0x7F, 0x81, 0x98, 0xB3, 0xCE, 0x49, 0xDB, 0x76, 0x9A,
+                      0xB5, 0xC4, 0x57, 0xF9, 0x10, 0x30, 0x50, 0xF0, 0x0B, 0x1D, 0x27, 0x69, 0xBB, 0xD6, 0x61, 0xA3,
+                      0xFE, 0x19, 0x2B, 0x7D, 0x87, 0x92, 0xAD, 0xEC, 0x2F, 0x71, 0x93, 0xAE, 0xE9, 0x20, 0x60, 0xA0,
+                      0xFB, 0x16, 0x3A, 0x4E, 0xD2, 0x6D, 0xB7, 0xC2, 0x5D, 0xE7, 0x32, 0x56, 0xFA, 0x15, 0x3F, 0x41,
+                      0xC3, 0x5E, 0xE2, 0x3D, 0x47, 0xC9, 0x40, 0xC0, 0x5B, 0xED, 0x2C, 0x74, 0x9C, 0xBF, 0xDA, 0x75,
+                      0x9F, 0xBA, 0xD5, 0x64, 0xAC, 0xEF, 0x2A, 0x7E, 0x82, 0x9D, 0xBC, 0xDF, 0x7A, 0x8E, 0x89, 0x80,
+                      0x9B, 0xB6, 0xC1, 0x58, 0xE8, 0x23, 0x65, 0xAF, 0xEA, 0x25, 0x6F, 0xB1, 0xC8, 0x43, 0xC5, 0x54,
+                      0xFC, 0x1F, 0x21, 0x63, 0xA5, 0xF4, 0x07, 0x09, 0x1B, 0x2D, 0x77, 0x99, 0xB0, 0xCB, 0x46, 0xCA,
+                      0x45, 0xCF, 0x4A, 0xDE, 0x79, 0x8B, 0x86, 0x91, 0xA8, 0xE3, 0x3E, 0x42, 0xC6, 0x51, 0xF3, 0x0E,
+                      0x12, 0x36, 0x5A, 0xEE, 0x29, 0x7B, 0x8D, 0x8C, 0x8F, 0x8A, 0x85, 0x94, 0xA7, 0xF2, 0x0D, 0x17,
+                      0x39, 0x4B, 0xDD, 0x7C, 0x84, 0x97, 0xA2, 0xFD, 0x1C, 0x24, 0x6C, 0xB4, 0xC7, 0x52, 0xF6, 0x01)
+RIJNDAEL_LOG_TABLE = (0x00, 0x00, 0x19, 0x01, 0x32, 0x02, 0x1a, 0xc6, 0x4b, 0xc7, 0x1b, 0x68, 0x33, 0xee, 0xdf, 0x03,
+                      0x64, 0x04, 0xe0, 0x0e, 0x34, 0x8d, 0x81, 0xef, 0x4c, 0x71, 0x08, 0xc8, 0xf8, 0x69, 0x1c, 0xc1,
+                      0x7d, 0xc2, 0x1d, 0xb5, 0xf9, 0xb9, 0x27, 0x6a, 0x4d, 0xe4, 0xa6, 0x72, 0x9a, 0xc9, 0x09, 0x78,
+                      0x65, 0x2f, 0x8a, 0x05, 0x21, 0x0f, 0xe1, 0x24, 0x12, 0xf0, 0x82, 0x45, 0x35, 0x93, 0xda, 0x8e,
+                      0x96, 0x8f, 0xdb, 0xbd, 0x36, 0xd0, 0xce, 0x94, 0x13, 0x5c, 0xd2, 0xf1, 0x40, 0x46, 0x83, 0x38,
+                      0x66, 0xdd, 0xfd, 0x30, 0xbf, 0x06, 0x8b, 0x62, 0xb3, 0x25, 0xe2, 0x98, 0x22, 0x88, 0x91, 0x10,
+                      0x7e, 0x6e, 0x48, 0xc3, 0xa3, 0xb6, 0x1e, 0x42, 0x3a, 0x6b, 0x28, 0x54, 0xfa, 0x85, 0x3d, 0xba,
+                      0x2b, 0x79, 0x0a, 0x15, 0x9b, 0x9f, 0x5e, 0xca, 0x4e, 0xd4, 0xac, 0xe5, 0xf3, 0x73, 0xa7, 0x57,
+                      0xaf, 0x58, 0xa8, 0x50, 0xf4, 0xea, 0xd6, 0x74, 0x4f, 0xae, 0xe9, 0xd5, 0xe7, 0xe6, 0xad, 0xe8,
+                      0x2c, 0xd7, 0x75, 0x7a, 0xeb, 0x16, 0x0b, 0xf5, 0x59, 0xcb, 0x5f, 0xb0, 0x9c, 0xa9, 0x51, 0xa0,
+                      0x7f, 0x0c, 0xf6, 0x6f, 0x17, 0xc4, 0x49, 0xec, 0xd8, 0x43, 0x1f, 0x2d, 0xa4, 0x76, 0x7b, 0xb7,
+                      0xcc, 0xbb, 0x3e, 0x5a, 0xfb, 0x60, 0xb1, 0x86, 0x3b, 0x52, 0xa1, 0x6c, 0xaa, 0x55, 0x29, 0x9d,
+                      0x97, 0xb2, 0x87, 0x90, 0x61, 0xbe, 0xdc, 0xfc, 0xbc, 0x95, 0xcf, 0xcd, 0x37, 0x3f, 0x5b, 0xd1,
+                      0x53, 0x39, 0x84, 0x3c, 0x41, 0xa2, 0x6d, 0x47, 0x14, 0x2a, 0x9e, 0x5d, 0x56, 0xf2, 0xd3, 0xab,
+                      0x44, 0x11, 0x92, 0xd9, 0x23, 0x20, 0x2e, 0x89, 0xb4, 0x7c, 0xb8, 0x26, 0x77, 0x99, 0xe3, 0xa5,
+                      0x67, 0x4a, 0xed, 0xde, 0xc5, 0x31, 0xfe, 0x18, 0x0d, 0x63, 0x8c, 0x80, 0xc0, 0xf7, 0x70, 0x07)
 
 def sub_bytes(data):
     return [SBOX[x] for x in data]
 
+def sub_bytes_inv(data):
+    return [SBOX_INV[x] for x in data]
+
 def rotate(data):
     return data[1:] + [data[0]]
 
@@ -160,30 +260,31 @@ def key_schedule_core(data, rcon_iteration):
 def xor(data1, data2):
     return [x^y for x, y in zip(data1, data2)]
 
-def mix_column(data):
+def rijndael_mul(a, b):
+    if(a==0 or b==0):
+        return 0
+    return RIJNDAEL_EXP_TABLE[(RIJNDAEL_LOG_TABLE[a] + RIJNDAEL_LOG_TABLE[b]) % 0xFF]
+
+def mix_column(data, matrix):
     data_mixed = []
     for row in range(4):
         mixed = 0
         for column in range(4):
-            addend = data[column]
-            if MIX_COLUMN_MATRIX[row][column] in (2,3):
-                addend <<= 1
-                if addend > 0xff:
-                    addend &= 0xff
-                    addend ^= 0x1b
-                if MIX_COLUMN_MATRIX[row][column] == 3:
-                    addend ^= data[column]
-            mixed ^= addend & 0xff
+            # xor is (+) and (-)
+            mixed ^= rijndael_mul(data[column], matrix[row][column])
         data_mixed.append(mixed)
     return data_mixed
 
-def mix_columns(data):
+def mix_columns(data, matrix=MIX_COLUMN_MATRIX):
     data_mixed = []
     for i in range(4):
         column = data[i*4 : (i+1)*4]
-        data_mixed += mix_column(column)
+        data_mixed += mix_column(column, matrix)
     return data_mixed
 
+def mix_columns_inv(data):
+    return mix_columns(data, MIX_COLUMN_MATRIX_INV)
+
 def shift_rows(data):
     data_shifted = []
     for column in range(4):
@@ -191,6 +292,13 @@ def shift_rows(data):
             data_shifted.append( data[((column + row) & 0b11) * 4 + row] )
     return data_shifted
 
+def shift_rows_inv(data):
+    data_shifted = []
+    for column in range(4):
+        for row in range(4):
+            data_shifted.append( data[((column - row) & 0b11) * 4 + row] )
+    return data_shifted
+
 def inc(data):
     data = data[:] # copy
     for i in range(len(data)-1,-1,-1):
diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py
index bd99648..a39a1e2 100644
--- a/youtube_dl/extractor/__init__.py
+++ b/youtube_dl/extractor/__init__.py
@@ -1,6 +1,8 @@
-from .appletrailers import AppleTrailersIE
+from .academicearth import AcademicEarthCourseIE
 from .addanime import AddAnimeIE
 from .anitube import AnitubeIE
+from .aparat import AparatIE
+from .appletrailers import AppleTrailersIE
 from .archiveorg import ArchiveOrgIE
 from .ard import ARDIE
 from .arte import (
@@ -8,10 +10,12 @@ from .arte import (
     ArteTVPlus7IE,
     ArteTVCreativeIE,
     ArteTVFutureIE,
+    ArteTVDDCIE,
 )
 from .auengine import AUEngineIE
 from .bambuser import BambuserIE, BambuserChannelIE
 from .bandcamp import BandcampIE, BandcampAlbumIE
+from .blinkx import BlinkxIE
 from .bliptv import BlipTVIE, BlipTVUserIE
 from .bloomberg import BloombergIE
 from .breakcom import BreakIE
@@ -19,6 +23,8 @@ from .brightcove import BrightcoveIE
 from .c56 import C56IE
 from .canalplus import CanalplusIE
 from .canalc2 import Canalc2IE
+from .cbs import CBSIE
+from .channel9 import Channel9IE
 from .cinemassacre import CinemassacreIE
 from .clipfish import ClipfishIE
 from .clipsyndicate import ClipsyndicateIE
@@ -27,6 +33,7 @@ from .collegehumor import CollegeHumorIE
 from .comedycentral import ComedyCentralIE, ComedyCentralShowsIE
 from .condenast import CondeNastIE
 from .criterion import CriterionIE
+from .crunchyroll import CrunchyrollIE
 from .cspan import CSpanIE
 from .d8 import D8IE
 from .dailymotion import (
@@ -56,7 +63,7 @@ from .flickr import FlickrIE
 from .francetv import (
     PluzzIE,
     FranceTvInfoIE,
-    France2IE,
+    FranceTVIE,
     GenerationQuoiIE
 )
 from .freesound import FreesoundIE
@@ -77,6 +84,10 @@ from .ina import InaIE
 from .infoq import InfoQIE
 from .instagram import InstagramIE
 from .internetvideoarchive import InternetVideoArchiveIE
+from .ivi import (
+    IviIE,
+    IviCompilationIE
+)
 from .jeuxvideo import JeuxVideoIE
 from .jukebox import JukeboxIE
 from .justintv import JustinTVIE
@@ -86,6 +97,7 @@ from .kickstarter import KickStarterIE
 from .keek import KeekIE
 from .liveleak import LiveLeakIE
 from .livestream import LivestreamIE, LivestreamOriginalIE
+from .mdr import MDRIE
 from .metacafe import MetacafeIE
 from .metacritic import MetacriticIE
 from .mit import TechTVMITIE, MITIE
@@ -99,17 +111,22 @@ from .myvideo import MyVideoIE
 from .naver import NaverIE
 from .nba import NBAIE
 from .nbc import NBCNewsIE
+from .ndtv import NDTVIE
 from .newgrounds import NewgroundsIE
 from .nhl import NHLIE, NHLVideocenterIE
 from .niconico import NiconicoIE
+from .ninegag import NineGagIE
 from .nowvideo import NowVideoIE
 from .ooyala import OoyalaIE
 from .orf import ORFIE
 from .pbs import PBSIE
 from .photobucket import PhotobucketIE
 from .podomatic import PodomaticIE
+from .pornhd import PornHdIE
 from .pornhub import PornHubIE
 from .pornotube import PornotubeIE
+from .pyvideo import PyvideoIE
+from .radiofrance import RadioFranceIE
 from .rbmaradio import RBMARadioIE
 from .redtube import RedTubeIE
 from .ringtv import RingTVIE
@@ -125,6 +142,7 @@ from .smotri import (
     SmotriIE,
     SmotriCommunityIE,
     SmotriUserIE,
+    SmotriBroadcastIE,
 )
 from .sohu import SohuIE
 from .soundcloud import SoundcloudIE, SoundcloudSetIE, SoundcloudUserIE
@@ -144,6 +162,7 @@ from .teamcoco import TeamcocoIE
 from .techtalks import TechTalksIE
 from .ted import TEDIE
 from .tf1 import TF1IE
+from .theplatform import ThePlatformIE
 from .thisav import ThisAVIE
 from .toutv import TouTvIE
 from .traileraddict import TrailerAddictIE
@@ -168,6 +187,8 @@ from .vimeo import (
     VimeoIE,
     VimeoChannelIE,
     VimeoUserIE,
+    VimeoAlbumIE,
+    VimeoGroupsIE,
 )
 from .vine import VineIE
 from .viki import VikiIE
@@ -176,6 +197,7 @@ from .wat import WatIE
 from .websurg import WeBSurgIE
 from .weibo import WeiboIE
 from .wimp import WimpIE
+from .wistia import WistiaIE
 from .worldstarhiphop import WorldStarHipHopIE
 from .xhamster import XHamsterIE
 from .xnxx import XNXXIE
@@ -203,6 +225,7 @@ from .youtube import (
     YoutubeWatchLaterIE,
     YoutubeFavouritesIE,
     YoutubeHistoryIE,
+    YoutubeTopListIE,
 )
 from .zdf import ZDFIE
 
diff --git a/youtube_dl/extractor/academicearth.py b/youtube_dl/extractor/academicearth.py
new file mode 100644
index 0000000..ac05f82
--- /dev/null
+++ b/youtube_dl/extractor/academicearth.py
@@ -0,0 +1,31 @@
+import re
+
+from .common import InfoExtractor
+
+
+class AcademicEarthCourseIE(InfoExtractor):
+    _VALID_URL = r'^https?://(?:www\.)?academicearth\.org/(?:courses|playlists)/(?P<id>[^?#/]+)'
+    IE_NAME = u'AcademicEarth:Course'
+
+    def _real_extract(self, url):
+        m = re.match(self._VALID_URL, url)
+        playlist_id = m.group('id')
+
+        webpage = self._download_webpage(url, playlist_id)
+        title = self._html_search_regex(
+            r'<h1 class="playlist-name">(.*?)</h1>', webpage, u'title')
+        description = self._html_search_regex(
+            r'<p class="excerpt">(.*?)</p>',
+            webpage, u'description', fatal=False)
+        urls = re.findall(
+            r'<h3 class="lecture-title"><a target="_blank" href="([^"]+)">',
+            webpage)
+        entries = [self.url_result(u) for u in urls]
+
+        return {
+            '_type': 'playlist',
+            'id': playlist_id,
+            'title': title,
+            'description': description,
+            'entries': entries,
+        }
diff --git a/youtube_dl/extractor/addanime.py b/youtube_dl/extractor/addanime.py
index b99d4b9..a3a1b99 100644
--- a/youtube_dl/extractor/addanime.py
+++ b/youtube_dl/extractor/addanime.py
@@ -13,7 +13,7 @@ from ..utils import (
 
 class AddAnimeIE(InfoExtractor):
 
-    _VALID_URL = r'^http://(?:\w+\.)?add-anime\.net/watch_video.php\?(?:.*?)v=(?P<video_id>[\w_]+)(?:.*)'
+    _VALID_URL = r'^http://(?:\w+\.)?add-anime\.net/watch_video\.php\?(?:.*?)v=(?P<video_id>[\w_]+)(?:.*)'
     IE_NAME = u'AddAnime'
     _TEST = {
         u'url': u'http://www.add-anime.net/watch_video.php?v=24MR3YO5SAS9',
diff --git a/youtube_dl/extractor/aparat.py b/youtube_dl/extractor/aparat.py
new file mode 100644
index 0000000..7e93bc4
--- /dev/null
+++ b/youtube_dl/extractor/aparat.py
@@ -0,0 +1,56 @@
+#coding: utf-8
+
+import re
+
+from .common import InfoExtractor
+from ..utils import (
+    ExtractorError,
+    HEADRequest,
+)
+
+
+class AparatIE(InfoExtractor):
+    _VALID_URL = r'^https?://(?:www\.)?aparat\.com/(?:v/|video/video/embed/videohash/)(?P<id>[a-zA-Z0-9]+)'
+
+    _TEST = {
+        u'url': u'http://www.aparat.com/v/wP8On',
+        u'file': u'wP8On.mp4',
+        u'md5': u'6714e0af7e0d875c5a39c4dc4ab46ad1',
+        u'info_dict': {
+            u"title": u"تیم گلکسی 11 - زومیت",
+        },
+        #u'skip': u'Extremely unreliable',
+    }
+
+    def _real_extract(self, url):
+        m = re.match(self._VALID_URL, url)
+        video_id = m.group('id')
+
+        # Note: There is an easier-to-parse configuration at
+        # http://www.aparat.com/video/video/config/videohash/%video_id
+        # but the URL in there does not work
+        embed_url = (u'http://www.aparat.com/video/video/embed/videohash/' +
+                     video_id + u'/vt/frame')
+        webpage = self._download_webpage(embed_url, video_id)
+
+        video_urls = re.findall(r'fileList\[[0-9]+\]\s*=\s*"([^"]+)"', webpage)
+        for i, video_url in enumerate(video_urls):
+            req = HEADRequest(video_url)
+            res = self._request_webpage(
+                req, video_id, note=u'Testing video URL %d' % i, errnote=False)
+            if res:
+                break
+        else:
+            raise ExtractorError(u'No working video URLs found')
+
+        title = self._search_regex(r'\s+title:\s*"([^"]+)"', webpage, u'title')
+        thumbnail = self._search_regex(
+            r'\s+image:\s*"([^"]+)"', webpage, u'thumbnail', fatal=False)
+
+        return {
+            'id': video_id,
+            'title': title,
+            'url': video_url,
+            'ext': 'mp4',
+            'thumbnail': thumbnail,
+        }
diff --git a/youtube_dl/extractor/appletrailers.py b/youtube_dl/extractor/appletrailers.py
index 4befff3..ef5644a 100644
--- a/youtube_dl/extractor/appletrailers.py
+++ b/youtube_dl/extractor/appletrailers.py
@@ -1,5 +1,4 @@
 import re
-import xml.etree.ElementTree
 import json
 
 from .common import InfoExtractor
@@ -10,7 +9,7 @@ from ..utils import (
 
 
 class AppleTrailersIE(InfoExtractor):
-    _VALID_URL = r'https?://(?:www\.)?trailers.apple.com/trailers/(?P<company>[^/]+)/(?P<movie>[^/]+)'
+    _VALID_URL = r'https?://(?:www\.)?trailers\.apple\.com/trailers/(?P<company>[^/]+)/(?P<movie>[^/]+)'
     _TEST = {
         u"url": u"http://trailers.apple.com/trailers/wb/manofsteel/",
         u"playlist": [
@@ -65,18 +64,18 @@ class AppleTrailersIE(InfoExtractor):
         uploader_id = mobj.group('company')
 
         playlist_url = compat_urlparse.urljoin(url, u'includes/playlists/itunes.inc')
-        playlist_snippet = self._download_webpage(playlist_url, movie)
-        playlist_cleaned = re.sub(r'(?s)<script[^<]*?>.*?</script>', u'', playlist_snippet)
-        playlist_cleaned = re.sub(r'<img ([^<]*?)>', r'<img \1/>', playlist_cleaned)
-        # The ' in the onClick attributes are not escaped, it couldn't be parsed
-        # with xml.etree.ElementTree.fromstring
-        # like: http://trailers.apple.com/trailers/wb/gravity/
-        def _clean_json(m):
-            return u'iTunes.playURL(%s);' % m.group(1).replace('\'', '&#39;')
-        playlist_cleaned = re.sub(self._JSON_RE, _clean_json, playlist_cleaned)
-        playlist_html = u'<html>' + playlist_cleaned + u'</html>'
+        def fix_html(s):
+            s = re.sub(r'(?s)<script[^<]*?>.*?</script>', u'', s)
+            s = re.sub(r'<img ([^<]*?)>', r'<img \1/>', s)
+            # The ' in the onClick attributes are not escaped, it couldn't be parsed
+            # like: http://trailers.apple.com/trailers/wb/gravity/
+            def _clean_json(m):
+                return u'iTunes.playURL(%s);' % m.group(1).replace('\'', '&#39;')
+            s = re.sub(self._JSON_RE, _clean_json, s)
+            s = u'<html>' + s + u'</html>'
+            return s
+        doc = self._download_xml(playlist_url, movie, transform_source=fix_html)
 
-        doc = xml.etree.ElementTree.fromstring(playlist_html)
         playlist = []
         for li in doc.findall('./div/ul/li'):
             on_click = li.find('.//a').attrib['onClick']
diff --git a/youtube_dl/extractor/archiveorg.py b/youtube_dl/extractor/archiveorg.py
index 3ae0aeb..8bb5464 100644
--- a/youtube_dl/extractor/archiveorg.py
+++ b/youtube_dl/extractor/archiveorg.py
@@ -11,7 +11,7 @@ from ..utils import (
 class ArchiveOrgIE(InfoExtractor):
     IE_NAME = 'archive.org'
     IE_DESC = 'archive.org videos'
-    _VALID_URL = r'(?:https?://)?(?:www\.)?archive.org/details/(?P<id>[^?/]+)(?:[?].*)?$'
+    _VALID_URL = r'(?:https?://)?(?:www\.)?archive\.org/details/(?P<id>[^?/]+)(?:[?].*)?$'
     _TEST = {
         u"url": u"http://archive.org/details/XD300-23_68HighlightsAResearchCntAugHumanIntellect",
         u'file': u'XD300-23_68HighlightsAResearchCntAugHumanIntellect.ogv',
diff --git a/youtube_dl/extractor/arte.py b/youtube_dl/extractor/arte.py
index 8b62ee7..9254fbf 100644
--- a/youtube_dl/extractor/arte.py
+++ b/youtube_dl/extractor/arte.py
@@ -10,6 +10,7 @@ from ..utils import (
     determine_ext,
     get_element_by_id,
     compat_str,
+    get_element_by_attribute,
 )
 
 # There are different sources of video in arte.tv, the extraction process 
@@ -17,8 +18,8 @@ from ..utils import (
 # add tests.
 
 class ArteTvIE(InfoExtractor):
-    _VIDEOS_URL = r'(?:http://)?videos.arte.tv/(?P<lang>fr|de)/.*-(?P<id>.*?).html'
-    _LIVEWEB_URL = r'(?:http://)?liveweb.arte.tv/(?P<lang>fr|de)/(?P<subpage>.+?)/(?P<name>.+)'
+    _VIDEOS_URL = r'(?:http://)?videos\.arte\.tv/(?P<lang>fr|de)/.*-(?P<id>.*?)\.html'
+    _LIVEWEB_URL = r'(?:http://)?liveweb\.arte\.tv/(?P<lang>fr|de)/(?P<subpage>.+?)/(?P<name>.+)'
     _LIVE_URL = r'index-[0-9]+\.html$'
 
     IE_NAME = u'arte.tv'
@@ -142,7 +143,9 @@ class ArteTVPlus7IE(InfoExtractor):
 
     def _extract_from_webpage(self, webpage, video_id, lang):
         json_url = self._html_search_regex(r'arte_vp_url="(.*?)"', webpage, 'json url')
+        return self._extract_from_json_url(json_url, video_id, lang)
 
+    def _extract_from_json_url(self, json_url, video_id, lang):
         json_info = self._download_webpage(json_url, video_id, 'Downloading info json')
         self.report_extraction(video_id)
         info = json.loads(json_info)
@@ -257,3 +260,21 @@ class ArteTVFutureIE(ArteTVPlus7IE):
         webpage = self._download_webpage(url, anchor_id)
         row = get_element_by_id(anchor_id, webpage)
         return self._extract_from_webpage(row, anchor_id, lang)
+
+
+class ArteTVDDCIE(ArteTVPlus7IE):
+    IE_NAME = u'arte.tv:ddc'
+    _VALID_URL = r'http?://ddc\.arte\.tv/(?P<lang>emission|folge)/(?P<id>.+)'
+
+    def _real_extract(self, url):
+        video_id, lang = self._extract_url_info(url)
+        if lang == 'folge':
+            lang = 'de'
+        elif lang == 'emission':
+            lang = 'fr'
+        webpage = self._download_webpage(url, video_id)
+        scriptElement = get_element_by_attribute('class', 'visu_video_block', webpage)
+        script_url = self._html_search_regex(r'src="(.*?)"', scriptElement, 'script url')
+        javascriptPlayerGenerator = self._download_webpage(script_url, video_id, 'Download javascript player generator')
+        json_url = self._search_regex(r"json_url=(.*)&rendering_place.*", javascriptPlayerGenerator, 'json url')
+        return self._extract_from_json_url(json_url, video_id, lang)
diff --git a/youtube_dl/extractor/auengine.py b/youtube_dl/extractor/auengine.py
index 95c0380..bcccc0b 100644
--- a/youtube_dl/extractor/auengine.py
+++ b/youtube_dl/extractor/auengine.py
@@ -16,7 +16,7 @@ class AUEngineIE(InfoExtractor):
             u"title": u"[Commie]The Legend of the Legendary Heroes - 03 - Replication Eye (Alpha Stigma)[F9410F5A]"
         }
     }
-    _VALID_URL = r'(?:http://)?(?:www\.)?auengine\.com/embed.php\?.*?file=([^&]+).*?'
+    _VALID_URL = r'(?:http://)?(?:www\.)?auengine\.com/embed\.php\?.*?file=([^&]+).*?'
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
diff --git a/youtube_dl/extractor/bambuser.py b/youtube_dl/extractor/bambuser.py
index b80508e..d48c0c3 100644
--- a/youtube_dl/extractor/bambuser.py
+++ b/youtube_dl/extractor/bambuser.py
@@ -54,7 +54,7 @@ class BambuserIE(InfoExtractor):
 
 class BambuserChannelIE(InfoExtractor):
     IE_NAME = u'bambuser:channel'
-    _VALID_URL = r'http://bambuser.com/channel/(?P<user>.*?)(?:/|#|\?|$)'
+    _VALID_URL = r'https?://bambuser\.com/channel/(?P<user>.*?)(?:/|#|\?|$)'
     # The maximum number we can get with each request
     _STEP = 50
 
diff --git a/youtube_dl/extractor/blinkx.py b/youtube_dl/extractor/blinkx.py
new file mode 100644
index 0000000..144ce64
--- /dev/null
+++ b/youtube_dl/extractor/blinkx.py
@@ -0,0 +1,90 @@
+import datetime
+import json
+import re
+
+from .common import InfoExtractor
+from ..utils import (
+    remove_start,
+)
+
+
+class BlinkxIE(InfoExtractor):
+    _VALID_URL = r'^(?:https?://(?:www\.)blinkx\.com/#?ce/|blinkx:)(?P<id>[^?]+)'
+    _IE_NAME = u'blinkx'
+
+    _TEST = {
+        u'url': u'http://www.blinkx.com/ce/8aQUy7GVFYgFzpKhT0oqsilwOGFRVXk3R1ZGWWdGenBLaFQwb3FzaWx3OGFRVXk3R1ZGWWdGenB',
+        u'file': u'8aQUy7GV.mp4',
+        u'md5': u'2e9a07364af40163a908edbf10bb2492',
+        u'info_dict': {
+            u"title": u"Police Car Rolls Away",
+            u"uploader": u"stupidvideos.com",
+            u"upload_date": u"20131215",
+            u"description": u"A police car gently rolls away from a fight. Maybe it felt weird being around a confrontation and just had to get out of there!",
+            u"duration": 14.886,
+            u"thumbnails": [{
+                "width": 100,
+                "height": 76,
+                "url": "http://cdn.blinkx.com/stream/b/41/StupidVideos/20131215/1873969261/1873969261_tn_0.jpg",
+            }],
+        },
+    }
+
+    def _real_extract(self, url):
+        m = re.match(self._VALID_URL, url)
+        video_id = m.group('id')
+        display_id = video_id[:8]
+
+        api_url = (u'https://apib4.blinkx.com/api.php?action=play_video&' +
+                   u'video=%s' % video_id)
+        data_json = self._download_webpage(api_url, display_id)
+        data = json.loads(data_json)['api']['results'][0]
+        dt = datetime.datetime.fromtimestamp(data['pubdate_epoch'])
+        upload_date = dt.strftime('%Y%m%d')
+
+        duration = None
+        thumbnails = []
+        formats = []
+        for m in data['media']:
+            if m['type'] == 'jpg':
+                thumbnails.append({
+                    'url': m['link'],
+                    'width': int(m['w']),
+                    'height': int(m['h']),
+                })
+            elif m['type'] == 'original':
+                duration = m['d']
+            elif m['type'] == 'youtube':
+                yt_id = m['link']
+                self.to_screen(u'Youtube video detected: %s' % yt_id)
+                return self.url_result(yt_id, 'Youtube', video_id=yt_id)
+            elif m['type'] in ('flv', 'mp4'):
+                vcodec = remove_start(m['vcodec'], 'ff')
+                acodec = remove_start(m['acodec'], 'ff')
+                format_id = (u'%s-%sk-%s' %
+                             (vcodec,
+                              (int(m['vbr']) + int(m['abr'])) // 1000,
+                              m['w']))
+                formats.append({
+                    'format_id': format_id,
+                    'url': m['link'],
+                    'vcodec': vcodec,
+                    'acodec': acodec,
+                    'abr': int(m['abr']) // 1000,
+                    'vbr': int(m['vbr']) // 1000,
+                    'width': int(m['w']),
+                    'height': int(m['h']),
+                })
+        formats.sort(key=lambda f: (f['width'], f['vbr'], f['abr']))
+
+        return {
+            'id': display_id,
+            'fullid': video_id,
+            'title': data['title'],
+            'formats': formats,
+            'uploader': data['channel_name'],
+            'upload_date': upload_date,
+            'description': data.get('description'),
+            'thumbnails': thumbnails,
+            'duration': duration,
+        }
diff --git a/youtube_dl/extractor/bliptv.py b/youtube_dl/extractor/bliptv.py
index 493504f..5e33a69 100644
--- a/youtube_dl/extractor/bliptv.py
+++ b/youtube_dl/extractor/bliptv.py
@@ -51,8 +51,7 @@ class BlipTVIE(InfoExtractor):
             url = 'http://blip.tv/play/g_%s' % api_mobj.group('video_id')
         urlp = compat_urllib_parse_urlparse(url)
         if urlp.path.startswith('/play/'):
-            request = compat_urllib_request.Request(url)
-            response = compat_urllib_request.urlopen(request)
+            response = self._request_webpage(url, None, False)
             redirecturl = response.geturl()
             rurlp = compat_urllib_parse_urlparse(redirecturl)
             file_id = compat_parse_qs(rurlp.fragment)['file'][0].rpartition('/')[2]
@@ -69,25 +68,23 @@ class BlipTVIE(InfoExtractor):
         request.add_header('User-Agent', 'iTunes/10.6.1')
         self.report_extraction(mobj.group(1))
         info = None
-        try:
-            urlh = compat_urllib_request.urlopen(request)
-            if urlh.headers.get('Content-Type', '').startswith('video/'): # Direct download
-                basename = url.split('/')[-1]
-                title,ext = os.path.splitext(basename)
-                title = title.decode('UTF-8')
-                ext = ext.replace('.', '')
-                self.report_direct_download(title)
-                info = {
-                    'id': title,
-                    'url': url,
-                    'uploader': None,
-                    'upload_date': None,
-                    'title': title,
-                    'ext': ext,
-                    'urlhandle': urlh
-                }
-        except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
-            raise ExtractorError(u'ERROR: unable to download video info webpage: %s' % compat_str(err))
+        urlh = self._request_webpage(request, None, False,
+            u'unable to download video info webpage')
+        if urlh.headers.get('Content-Type', '').startswith('video/'): # Direct download
+            basename = url.split('/')[-1]
+            title,ext = os.path.splitext(basename)
+            title = title.decode('UTF-8')
+            ext = ext.replace('.', '')
+            self.report_direct_download(title)
+            info = {
+                'id': title,
+                'url': url,
+                'uploader': None,
+                'upload_date': None,
+                'title': title,
+                'ext': ext,
+                'urlhandle': urlh
+            }
         if info is None: # Regular URL
             try:
                 json_code_bytes = urlh.read()
diff --git a/youtube_dl/extractor/bloomberg.py b/youtube_dl/extractor/bloomberg.py
index 3666a78..755d9c9 100644
--- a/youtube_dl/extractor/bloomberg.py
+++ b/youtube_dl/extractor/bloomberg.py
@@ -4,7 +4,7 @@ from .common import InfoExtractor
 
 
 class BloombergIE(InfoExtractor):
-    _VALID_URL = r'https?://www\.bloomberg\.com/video/(?P<name>.+?).html'
+    _VALID_URL = r'https?://www\.bloomberg\.com/video/(?P<name>.+?)\.html'
 
     _TEST = {
         u'url': u'http://www.bloomberg.com/video/shah-s-presentation-on-foreign-exchange-strategies-qurhIVlJSB6hzkVi229d8g.html',
diff --git a/youtube_dl/extractor/brightcove.py b/youtube_dl/extractor/brightcove.py
index 66fe0ac..f7f0041 100644
--- a/youtube_dl/extractor/brightcove.py
+++ b/youtube_dl/extractor/brightcove.py
@@ -26,7 +26,7 @@ class BrightcoveIE(InfoExtractor):
             # From http://www.8tv.cat/8aldia/videos/xavier-sala-i-martin-aquesta-tarda-a-8-al-dia/
             u'url': u'http://c.brightcove.com/services/viewer/htmlFederated?playerID=1654948606001&flashID=myExperience&%40videoPlayer=2371591881001',
             u'file': u'2371591881001.mp4',
-            u'md5': u'8eccab865181d29ec2958f32a6a754f5',
+            u'md5': u'5423e113865d26e40624dce2e4b45d95',
             u'note': u'Test Brightcove downloads and detection in GenericIE',
             u'info_dict': {
                 u'title': u'Xavier Sala i Martín: “Un banc que no presta és un banc zombi que no serveix per a res”',
@@ -55,6 +55,18 @@ class BrightcoveIE(InfoExtractor):
                 u'uploader': u'Mashable',
             },
         },
+        {
+            # test that the default referer works
+            # from http://national.ballet.ca/interact/video/Lost_in_Motion_II/
+            u'url': u'http://link.brightcove.com/services/player/bcpid756015033001?bckey=AQ~~,AAAApYJi_Ck~,GxhXCegT1Dp39ilhXuxMJxasUhVNZiil&bctid=2878862109001',
+            u'info_dict': {
+                u'id': u'2878862109001',
+                u'ext': u'mp4',
+                u'title': u'Lost in Motion II',
+                u'description': u'md5:363109c02998fee92ec02211bd8000df',
+                u'uploader': u'National Ballet of Canada',
+            },
+        },
     ]
 
     @classmethod
@@ -118,17 +130,21 @@ class BrightcoveIE(InfoExtractor):
 
         videoPlayer = query.get('@videoPlayer')
         if videoPlayer:
-            return self._get_video_info(videoPlayer[0], query_str, query)
+            return self._get_video_info(videoPlayer[0], query_str, query,
+                # We set the original url as the default 'Referer' header
+                referer=url)
         else:
             player_key = query['playerKey']
             return self._get_playlist_info(player_key[0])
 
-    def _get_video_info(self, video_id, query_str, query):
+    def _get_video_info(self, video_id, query_str, query, referer=None):
         request_url = self._FEDERATED_URL_TEMPLATE % query_str
         req = compat_urllib_request.Request(request_url)
         linkBase = query.get('linkBaseURL')
         if linkBase is not None:
-            req.add_header('Referer', linkBase[0])
+            referer = linkBase[0]
+        if referer is not None:
+            req.add_header('Referer', referer)
         webpage = self._download_webpage(req, video_id)
 
         self.report_extraction(video_id)
diff --git a/youtube_dl/extractor/cbs.py b/youtube_dl/extractor/cbs.py
new file mode 100644
index 0000000..ac03158
--- /dev/null
+++ b/youtube_dl/extractor/cbs.py
@@ -0,0 +1,30 @@
+import re
+
+from .common import InfoExtractor
+
+
+class CBSIE(InfoExtractor):
+    _VALID_URL = r'https?://(?:www\.)?cbs\.com/shows/[^/]+/video/(?P<id>[^/]+)/.*'
+
+    _TEST = {
+        u'url': u'http://www.cbs.com/shows/garth-brooks/video/_u7W953k6la293J7EPTd9oHkSPs6Xn6_/connect-chat-feat-garth-brooks/',
+        u'file': u'4JUVEwq3wUT7.flv',
+        u'info_dict': {
+            u'title': u'Connect Chat feat. Garth Brooks',
+            u'description': u'Connect with country music singer Garth Brooks, as he chats with fans on Wednesday November 27, 2013. Be sure to tune in to Garth Brooks: Live from Las Vegas, Friday November 29, at 9/8c on CBS!',
+            u'duration': 1495,
+        },
+        u'params': {
+            # rtmp download
+            u'skip_download': True,
+        },
+    }
+
+    def _real_extract(self, url):
+        mobj = re.match(self._VALID_URL, url)
+        video_id = mobj.group('id')
+        webpage = self._download_webpage(url, video_id)
+        real_id = self._search_regex(
+            r"video\.settings\.pid\s*=\s*'([^']+)';",
+            webpage, u'real video ID')
+        return self.url_result(u'theplatform:%s' % real_id)
diff --git a/youtube_dl/extractor/channel9.py b/youtube_dl/extractor/channel9.py
new file mode 100644
index 0000000..ae70ea2
--- /dev/null
+++ b/youtube_dl/extractor/channel9.py
@@ -0,0 +1,267 @@
+# encoding: utf-8
+
+import re
+
+from .common import InfoExtractor
+from ..utils import ExtractorError
+
+class Channel9IE(InfoExtractor):
+    '''
+    Common extractor for channel9.msdn.com.
+
+    The type of provided URL (video or playlist) is determined according to
+    meta Search.PageType from web page HTML rather than URL itself, as it is
+    not always possible to do.    
+    '''
+    IE_DESC = u'Channel 9'
+    IE_NAME = u'channel9'
+    _VALID_URL = r'^https?://(?:www\.)?channel9\.msdn\.com/(?P<contentpath>.+)/?'
+
+    _TESTS = [
+        {
+            u'url': u'http://channel9.msdn.com/Events/TechEd/Australia/2013/KOS002',
+            u'file': u'Events_TechEd_Australia_2013_KOS002.mp4',
+            u'md5': u'bbd75296ba47916b754e73c3a4bbdf10',
+            u'info_dict': {
+                u'title': u'Developer Kick-Off Session: Stuff We Love',
+                u'description': u'md5:c08d72240b7c87fcecafe2692f80e35f',
+                u'duration': 4576,
+                u'thumbnail': u'http://media.ch9.ms/ch9/9d51/03902f2d-fc97-4d3c-b195-0bfe15a19d51/KOS002_220.jpg',
+                u'session_code': u'KOS002',
+                u'session_day': u'Day 1',
+                u'session_room': u'Arena 1A',
+                u'session_speakers': [ u'Ed Blankenship', u'Andrew Coates', u'Brady Gaster', u'Patrick Klug', u'Mads Kristensen' ],
+            },
+        },
+        {
+            u'url': u'http://channel9.msdn.com/posts/Self-service-BI-with-Power-BI-nuclear-testing',
+            u'file': u'posts_Self-service-BI-with-Power-BI-nuclear-testing.mp4',
+            u'md5': u'b43ee4529d111bc37ba7ee4f34813e68',
+            u'info_dict': {
+                u'title': u'Self-service BI with Power BI - nuclear testing',
+                u'description': u'md5:d1e6ecaafa7fb52a2cacdf9599829f5b',
+                u'duration': 1540,
+                u'thumbnail': u'http://media.ch9.ms/ch9/87e1/0300391f-a455-4c72-bec3-4422f19287e1/selfservicenuk_512.jpg',
+                u'authors': [ u'Mike Wilmot' ],
+            },
+        }
+    ]
+
+    _RSS_URL = 'http://channel9.msdn.com/%s/RSS'
+
+    # Sorted by quality
+    _known_formats = ['MP3', 'MP4', 'Mid Quality WMV', 'Mid Quality MP4', 'High Quality WMV', 'High Quality MP4']
+
+    def _restore_bytes(self, formatted_size):
+        if not formatted_size:
+            return 0
+        m = re.match(r'^(?P<size>\d+(?:\.\d+)?)\s+(?P<units>[a-zA-Z]+)', formatted_size)
+        if not m:
+            return 0
+        units = m.group('units')
+        try:
+            exponent = [u'B', u'KB', u'MB', u'GB', u'TB', u'PB', u'EB', u'ZB', u'YB'].index(units.upper())
+        except ValueError:
+            return 0
+        size = float(m.group('size'))
+        return int(size * (1024 ** exponent))
+
+    def _formats_from_html(self, html):
+        FORMAT_REGEX = r'''
+            (?x)
+            <a\s+href="(?P<url>[^"]+)">(?P<quality>[^<]+)</a>\s*
+            <span\s+class="usage">\((?P<note>[^\)]+)\)</span>\s*
+            (?:<div\s+class="popup\s+rounded">\s*
+            <h3>File\s+size</h3>\s*(?P<filesize>.*?)\s*
+            </div>)?                                                # File size part may be missing
+        '''
+        # Extract known formats
+        formats = [{'url': x.group('url'),
+                 'format_id': x.group('quality'),
+                 'format_note': x.group('note'),
+                 'format': '%s (%s)' % (x.group('quality'), x.group('note')), 
+                 'filesize': self._restore_bytes(x.group('filesize')), # File size is approximate
+                 } for x in list(re.finditer(FORMAT_REGEX, html)) if x.group('quality') in self._known_formats]
+        # Sort according to known formats list
+        formats.sort(key=lambda fmt: self._known_formats.index(fmt['format_id']))
+        return formats
+
+    def _extract_title(self, html):
+        title = self._html_search_meta(u'title', html, u'title')
+        if title is None:           
+            title = self._og_search_title(html)
+            TITLE_SUFFIX = u' (Channel 9)'
+            if title is not None and title.endswith(TITLE_SUFFIX):
+                title = title[:-len(TITLE_SUFFIX)]
+        return title
+
+    def _extract_description(self, html):
+        DESCRIPTION_REGEX = r'''(?sx)
+            <div\s+class="entry-content">\s*
+            <div\s+id="entry-body">\s*
+            (?P<description>.+?)\s*
+            </div>\s*
+            </div>
+        '''
+        m = re.search(DESCRIPTION_REGEX, html)
+        if m is not None:
+            return m.group('description')
+        return self._html_search_meta(u'description', html, u'description')
+
+    def _extract_duration(self, html):
+        m = re.search(r'data-video_duration="(?P<hours>\d{2}):(?P<minutes>\d{2}):(?P<seconds>\d{2})"', html)
+        return ((int(m.group('hours')) * 60 * 60) + (int(m.group('minutes')) * 60) + int(m.group('seconds'))) if m else None
+
+    def _extract_slides(self, html):
+        m = re.search(r'<a href="(?P<slidesurl>[^"]+)" class="slides">Slides</a>', html)
+        return m.group('slidesurl') if m is not None else None
+
+    def _extract_zip(self, html):
+        m = re.search(r'<a href="(?P<zipurl>[^"]+)" class="zip">Zip</a>', html)
+        return m.group('zipurl') if m is not None else None
+
+    def _extract_avg_rating(self, html):
+        m = re.search(r'<p class="avg-rating">Avg Rating: <span>(?P<avgrating>[^<]+)</span></p>', html)
+        return float(m.group('avgrating')) if m is not None else 0
+
+    def _extract_rating_count(self, html):
+        m = re.search(r'<div class="rating-count">\((?P<ratingcount>[^<]+)\)</div>', html)
+        return int(self._fix_count(m.group('ratingcount'))) if m is not None else 0
+
+    def _extract_view_count(self, html):
+        m = re.search(r'<li class="views">\s*<span class="count">(?P<viewcount>[^<]+)</span> Views\s*</li>', html)
+        return int(self._fix_count(m.group('viewcount'))) if m is not None else 0
+
+    def _extract_comment_count(self, html):
+        m = re.search(r'<li class="comments">\s*<a href="#comments">\s*<span class="count">(?P<commentcount>[^<]+)</span> Comments\s*</a>\s*</li>', html)
+        return int(self._fix_count(m.group('commentcount'))) if m is not None else 0
+
+    def _fix_count(self, count):
+        return int(str(count).replace(',', '')) if count is not None else None
+
+    def _extract_authors(self, html):
+        m = re.search(r'(?s)<li class="author">(.*?)</li>', html)
+        if m is None:
+            return None
+        return re.findall(r'<a href="/Niners/[^"]+">([^<]+)</a>', m.group(1))
+
+    def _extract_session_code(self, html):
+        m = re.search(r'<li class="code">\s*(?P<code>.+?)\s*</li>', html)
+        return m.group('code') if m is not None else None
+
+    def _extract_session_day(self, html):
+        m = re.search(r'<li class="day">\s*<a href="/Events/[^"]+">(?P<day>[^<]+)</a>\s*</li>', html)
+        return m.group('day') if m is not None else None
+
+    def _extract_session_room(self, html):
+        m = re.search(r'<li class="room">\s*(?P<room>.+?)\s*</li>', html)
+        return m.group('room') if m is not None else None
+
+    def _extract_session_speakers(self, html):
+        return re.findall(r'<a href="/Events/Speakers/[^"]+">([^<]+)</a>', html)
+
+    def _extract_content(self, html, content_path):
+        # Look for downloadable content        
+        formats = self._formats_from_html(html)
+        slides = self._extract_slides(html)
+        zip_ = self._extract_zip(html)
+
+        # Nothing to download
+        if len(formats) == 0 and slides is None and zip_ is None:
+            self._downloader.report_warning(u'None of recording, slides or zip are available for %s' % content_path)
+            return
+
+        # Extract meta
+        title = self._extract_title(html)
+        description = self._extract_description(html)
+        thumbnail = self._og_search_thumbnail(html)
+        duration = self._extract_duration(html)
+        avg_rating = self._extract_avg_rating(html)
+        rating_count = self._extract_rating_count(html)
+        view_count = self._extract_view_count(html)
+        comment_count = self._extract_comment_count(html)
+
+        common = {'_type': 'video',
+                  'id': content_path,
+                  'description': description,
+                  'thumbnail': thumbnail,
+                  'duration': duration,
+                  'avg_rating': avg_rating,
+                  'rating_count': rating_count,
+                  'view_count': view_count,
+                  'comment_count': comment_count,
+                }
+
+        result = []
+
+        if slides is not None:
+            d = common.copy()
+            d.update({ 'title': title + '-Slides', 'url': slides })
+            result.append(d)
+
+        if zip_ is not None:
+            d = common.copy()
+            d.update({ 'title': title + '-Zip', 'url': zip_ })
+            result.append(d)
+
+        if len(formats) > 0:
+            d = common.copy()
+            d.update({ 'title': title, 'formats': formats })
+            result.append(d)
+
+        return result
+
+    def _extract_entry_item(self, html, content_path):
+        contents = self._extract_content(html, content_path)
+        if contents is None:
+            return contents
+
+        authors = self._extract_authors(html)
+
+        for content in contents:
+            content['authors'] = authors
+
+        return contents
+
+    def _extract_session(self, html, content_path):
+        contents = self._extract_content(html, content_path)
+        if contents is None:
+            return contents
+
+        session_meta = {'session_code': self._extract_session_code(html),
+                        'session_day': self._extract_session_day(html),
+                        'session_room': self._extract_session_room(html),
+                        'session_speakers': self._extract_session_speakers(html),
+                        }
+
+        for content in contents:
+            content.update(session_meta)
+
+        return contents
+
+    def _extract_list(self, content_path):
+        rss = self._download_xml(self._RSS_URL % content_path, content_path, u'Downloading RSS')
+        entries = [self.url_result(session_url.text, 'Channel9')
+                   for session_url in rss.findall('./channel/item/link')]
+        title_text = rss.find('./channel/title').text
+        return self.playlist_result(entries, content_path, title_text)
+
+    def _real_extract(self, url):
+        mobj = re.match(self._VALID_URL, url)
+        content_path = mobj.group('contentpath')
+
+        webpage = self._download_webpage(url, content_path, u'Downloading web page')
+
+        page_type_m = re.search(r'<meta name="Search.PageType" content="(?P<pagetype>[^"]+)"/>', webpage)
+        if page_type_m is None:
+            raise ExtractorError(u'Search.PageType not found, don\'t know how to process this page', expected=True)
+
+        page_type = page_type_m.group('pagetype')
+        if page_type == 'List':         # List page, may contain list of 'item'-like objects
+            return self._extract_list(content_path)
+        elif page_type == 'Entry.Item': # Any 'item'-like page, may contain downloadable content
+            return self._extract_entry_item(webpage, content_path)
+        elif page_type == 'Session':    # Event session page, may contain downloadable content
+            return self._extract_session(webpage, content_path)
+        else:
+            raise ExtractorError(u'Unexpected Search.PageType %s' % page_type, expected=True)
\ No newline at end of file
diff --git a/youtube_dl/extractor/clipsyndicate.py b/youtube_dl/extractor/clipsyndicate.py
index d4fc869..c60089a 100644
--- a/youtube_dl/extractor/clipsyndicate.py
+++ b/youtube_dl/extractor/clipsyndicate.py
@@ -1,9 +1,9 @@
 import re
-import xml.etree.ElementTree
 
 from .common import InfoExtractor
 from ..utils import (
     find_xpath_attr,
+    fix_xml_all_ampersand,
 )
 
 
@@ -30,12 +30,10 @@ class ClipsyndicateIE(InfoExtractor):
         # it includes a required token
         flvars = self._search_regex(r'flvars: "(.*?)"', js_player, u'flvars')
 
-        playlist_page = self._download_webpage(
+        pdoc = self._download_xml(
             'http://eplayer.clipsyndicate.com/osmf/playlist?%s' % flvars,
-            video_id, u'Downloading video info') 
-        # Fix broken xml
-        playlist_page = re.sub('&', '&amp;', playlist_page)
-        pdoc = xml.etree.ElementTree.fromstring(playlist_page.encode('utf-8'))
+            video_id, u'Downloading video info',
+            transform_source=fix_xml_all_ampersand) 
 
         track_doc = pdoc.find('trackList/track')
         def find_param(name):
diff --git a/youtube_dl/extractor/comedycentral.py b/youtube_dl/extractor/comedycentral.py
index 53579aa..a54ce3e 100644
--- a/youtube_dl/extractor/comedycentral.py
+++ b/youtube_dl/extractor/comedycentral.py
@@ -12,7 +12,7 @@ from ..utils import (
 
 
 class ComedyCentralIE(MTVServicesInfoExtractor):
-    _VALID_URL = r'http://www.comedycentral.com/(video-clips|episodes|cc-studios)/(?P<title>.*)'
+    _VALID_URL = r'https?://(?:www.)?comedycentral.com/(video-clips|episodes|cc-studios)/(?P<title>.*)'
     _FEED_URL = u'http://comedycentral.com/feeds/mrss/'
 
     _TEST = {
diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py
index 1b04908..ba46a7b 100644
--- a/youtube_dl/extractor/common.py
+++ b/youtube_dl/extractor/common.py
@@ -18,6 +18,7 @@ from ..utils import (
     sanitize_filename,
     unescapeHTML,
 )
+_NO_DEFAULT = object()
 
 
 class InfoExtractor(object):
@@ -34,15 +35,39 @@ class InfoExtractor(object):
     The dictionaries must include the following fields:
 
     id:             Video identifier.
-    url:            Final video URL.
     title:          Video title, unescaped.
-    ext:            Video filename extension.
 
-    Instead of url and ext, formats can also specified.
+    Additionally, it must contain either a formats entry or url and ext:
+
+    formats:        A list of dictionaries for each format available, it must
+                    be ordered from worst to best quality. Potential fields:
+                    * url        Mandatory. The URL of the video file
+                    * ext        Will be calculated from url if missing
+                    * format     A human-readable description of the format
+                                 ("mp4 container with h264/opus").
+                                 Calculated from the format_id, width, height.
+                                 and format_note fields if missing.
+                    * format_id  A short description of the format
+                                 ("mp4_h264_opus" or "19")
+                    * format_note Additional info about the format
+                                 ("3D" or "DASH video")
+                    * width      Width of the video, if known
+                    * height     Height of the video, if known
+                    * abr        Average audio bitrate in KBit/s
+                    * acodec     Name of the audio codec in use
+                    * vbr        Average video bitrate in KBit/s
+                    * vcodec     Name of the video codec in use
+                    * filesize   The number of bytes, if known in advance
+                    * player_url SWF Player URL (used for rtmpdump).
+    url:            Final video URL.
+    ext:            Video filename extension.
+    format:         The video format, defaults to ext (used for --get-format)
+    player_url:     SWF Player URL (used for rtmpdump).
+    urlhandle:      [internal] The urlHandle to be used to download the file,
+                    like returned by urllib.request.urlopen
 
     The following fields are optional:
 
-    format:         The video format, defaults to ext (used for --get-format)
     thumbnails:     A list of dictionaries (with the entries "resolution" and
                     "url") for the varying thumbnails
     thumbnail:      Full URL to a video thumbnail image.
@@ -51,32 +76,14 @@ class InfoExtractor(object):
     upload_date:    Video upload date (YYYYMMDD).
     uploader_id:    Nickname or id of the video uploader.
     location:       Physical location of the video.
-    player_url:     SWF Player URL (used for rtmpdump).
     subtitles:      The subtitle file contents as a dictionary in the format
                     {language: subtitles}.
+    duration:       Length of the video in seconds, as an integer.
     view_count:     How many users have watched the video on the platform.
-    urlhandle:      [internal] The urlHandle to be used to download the file,
-                    like returned by urllib.request.urlopen
+    like_count:     Number of positive ratings of the video
+    dislike_count:  Number of negative ratings of the video
+    comment_count:  Number of comments on the video
     age_limit:      Age restriction for the video, as an integer (years)
-    formats:        A list of dictionaries for each format available, it must
-                    be ordered from worst to best quality. Potential fields:
-                    * url       Mandatory. The URL of the video file
-                    * ext       Will be calculated from url if missing
-                    * format    A human-readable description of the format
-                                ("mp4 container with h264/opus").
-                                Calculated from the format_id, width, height.
-                                and format_note fields if missing.
-                    * format_id A short description of the format
-                                ("mp4_h264_opus" or "19")
-                    * format_note Additional info about the format
-                                ("3D" or "DASH video")
-                    * width     Width of the video, if known
-                    * height    Height of the video, if known
-                    * abr       Average audio bitrate in KBit/s
-                    * acodec    Name of the audio codec in use
-                    * vbr       Average video bitrate in KBit/s
-                    * vcodec    Name of the video codec in use
-                    * filesize  The number of bytes, if known in advance
     webpage_url:    The url to the video webpage, if given to youtube-dl it
                     should allow to get the same result again. (It will be set
                     by YoutubeDL if it's missing)
@@ -151,27 +158,40 @@ class InfoExtractor(object):
     def IE_NAME(self):
         return type(self).__name__[:-2]
 
-    def _request_webpage(self, url_or_request, video_id, note=None, errnote=None):
+    def _request_webpage(self, url_or_request, video_id, note=None, errnote=None, fatal=True):
         """ Returns the response handle """
         if note is None:
             self.report_download_webpage(video_id)
         elif note is not False:
-            self.to_screen(u'%s: %s' % (video_id, note))
+            if video_id is None:
+                self.to_screen(u'%s' % (note,))
+            else:
+                self.to_screen(u'%s: %s' % (video_id, note))
         try:
             return self._downloader.urlopen(url_or_request)
         except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
+            if errnote is False:
+                return False
             if errnote is None:
                 errnote = u'Unable to download webpage'
-            raise ExtractorError(u'%s: %s' % (errnote, compat_str(err)), sys.exc_info()[2], cause=err)
+            errmsg = u'%s: %s' % (errnote, compat_str(err))
+            if fatal:
+                raise ExtractorError(errmsg, sys.exc_info()[2], cause=err)
+            else:
+                self._downloader.report_warning(errmsg)
+                return False
 
-    def _download_webpage_handle(self, url_or_request, video_id, note=None, errnote=None):
+    def _download_webpage_handle(self, url_or_request, video_id, note=None, errnote=None, fatal=True):
         """ Returns a tuple (page content as string, URL handle) """
 
         # Strip hashes from the URL (#1038)
         if isinstance(url_or_request, (compat_str, str)):
             url_or_request = url_or_request.partition('#')[0]
 
-        urlh = self._request_webpage(url_or_request, video_id, note, errnote)
+        urlh = self._request_webpage(url_or_request, video_id, note, errnote, fatal)
+        if urlh is False:
+            assert not fatal
+            return False
         content_type = urlh.headers.get('Content-Type', '')
         webpage_bytes = urlh.read()
         m = re.match(r'[a-zA-Z0-9_.-]+/[a-zA-Z0-9_.-]+\s*;\s*charset=(.+)', content_type)
@@ -206,14 +226,22 @@ class InfoExtractor(object):
         content = webpage_bytes.decode(encoding, 'replace')
         return (content, urlh)
 
-    def _download_webpage(self, url_or_request, video_id, note=None, errnote=None):
+    def _download_webpage(self, url_or_request, video_id, note=None, errnote=None, fatal=True):
         """ Returns the data of the page as a string """
-        return self._download_webpage_handle(url_or_request, video_id, note, errnote)[0]
+        res = self._download_webpage_handle(url_or_request, video_id, note, errnote, fatal)
+        if res is False:
+            return res
+        else:
+            content, _ = res
+            return content
 
     def _download_xml(self, url_or_request, video_id,
-                      note=u'Downloading XML', errnote=u'Unable to download XML'):
+                      note=u'Downloading XML', errnote=u'Unable to download XML',
+                      transform_source=None):
         """Return the xml as an xml.etree.ElementTree.Element"""
         xml_string = self._download_webpage(url_or_request, video_id, note, errnote)
+        if transform_source:
+            xml_string = transform_source(xml_string)
         return xml.etree.ElementTree.fromstring(xml_string.encode('utf-8'))
 
     def to_screen(self, msg):
@@ -237,7 +265,8 @@ class InfoExtractor(object):
         self.to_screen(u'Logging in')
 
     #Methods for following #608
-    def url_result(self, url, ie=None, video_id=None):
+    @staticmethod
+    def url_result(url, ie=None, video_id=None):
         """Returns a url that points to a page that should be processed"""
         #TODO: ie should be the class used for getting the info
         video_info = {'_type': 'url',
@@ -246,7 +275,8 @@ class InfoExtractor(object):
         if video_id is not None:
             video_info['id'] = video_id
         return video_info
-    def playlist_result(self, entries, playlist_id=None, playlist_title=None):
+    @staticmethod
+    def playlist_result(entries, playlist_id=None, playlist_title=None):
         """Returns a playlist"""
         video_info = {'_type': 'playlist',
                       'entries': entries}
@@ -256,7 +286,7 @@ class InfoExtractor(object):
             video_info['title'] = playlist_title
         return video_info
 
-    def _search_regex(self, pattern, string, name, default=None, fatal=True, flags=0):
+    def _search_regex(self, pattern, string, name, default=_NO_DEFAULT, fatal=True, flags=0):
         """
         Perform a regex search on the given string, using a single or a list of
         patterns returning the first matching group.
@@ -270,7 +300,7 @@ class InfoExtractor(object):
                 mobj = re.search(p, string, flags)
                 if mobj: break
 
-        if sys.stderr.isatty() and os.name != 'nt':
+        if os.name != 'nt' and sys.stderr.isatty():
             _name = u'\033[0;34m%s\033[0m' % name
         else:
             _name = name
@@ -278,7 +308,7 @@ class InfoExtractor(object):
         if mobj:
             # return the first matching group
             return next(g for g in mobj.groups() if g is not None)
-        elif default is not None:
+        elif default is not _NO_DEFAULT:
             return default
         elif fatal:
             raise RegexNotFoundError(u'Unable to extract %s' % _name)
@@ -287,7 +317,7 @@ class InfoExtractor(object):
                 u'please report this issue on http://yt-dl.org/bug' % _name)
             return None
 
-    def _html_search_regex(self, pattern, string, name, default=None, fatal=True, flags=0):
+    def _html_search_regex(self, pattern, string, name, default=_NO_DEFAULT, fatal=True, flags=0):
         """
         Like _search_regex, but strips HTML tags and unescapes entities.
         """
diff --git a/youtube_dl/extractor/crunchyroll.py b/youtube_dl/extractor/crunchyroll.py
new file mode 100644
index 0000000..2b66bdd
--- /dev/null
+++ b/youtube_dl/extractor/crunchyroll.py
@@ -0,0 +1,171 @@
+# encoding: utf-8
+import re, base64, zlib
+from hashlib import sha1
+from math import pow, sqrt, floor
+from .common import InfoExtractor
+from ..utils import (
+    ExtractorError,
+    compat_urllib_parse,
+    compat_urllib_request,
+    bytes_to_intlist,
+    intlist_to_bytes,
+    unified_strdate,
+    clean_html,
+)
+from ..aes import (
+    aes_cbc_decrypt,
+    inc,
+)
+
+class CrunchyrollIE(InfoExtractor):
+    _VALID_URL = r'(?:https?://)?(?:www\.)?(?P<url>crunchyroll\.com/[^/]*/[^/?&]*?(?P<video_id>[0-9]+))(?:[/?&]|$)'
+    _TESTS = [{
+        u'url': u'http://www.crunchyroll.com/wanna-be-the-strongest-in-the-world/episode-1-an-idol-wrestler-is-born-645513',
+        u'file': u'645513.flv',
+        #u'md5': u'b1639fd6ddfaa43788c85f6d1dddd412',
+        u'info_dict': {
+            u'title': u'Wanna be the Strongest in the World Episode 1 – An Idol-Wrestler is Born!',
+            u'description': u'md5:2d17137920c64f2f49981a7797d275ef',
+            u'thumbnail': u'http://img1.ak.crunchyroll.com/i/spire1-tmb/20c6b5e10f1a47b10516877d3c039cae1380951166_full.jpg',
+            u'uploader': u'Yomiuri Telecasting Corporation (YTV)',
+            u'upload_date': u'20131013',
+        },
+        u'params': {
+            # rtmp
+            u'skip_download': True,
+        },
+    }]
+
+    _FORMAT_IDS = {
+        u'360': (u'60', u'106'),
+        u'480': (u'61', u'106'),
+        u'720': (u'62', u'106'),
+        u'1080': (u'80', u'108'),
+    }
+
+    def _decrypt_subtitles(self, data, iv, id):
+        data = bytes_to_intlist(data)
+        iv = bytes_to_intlist(iv)
+        id = int(id)
+
+        def obfuscate_key_aux(count, modulo, start):
+            output = list(start)
+            for _ in range(count):
+                output.append(output[-1] + output[-2])
+            # cut off start values
+            output = output[2:]
+            output = list(map(lambda x: x % modulo + 33, output))
+            return output
+
+        def obfuscate_key(key):
+            num1 = int(floor(pow(2, 25) * sqrt(6.9)))
+            num2 = (num1 ^ key) << 5
+            num3 = key ^ num1
+            num4 = num3 ^ (num3 >> 3) ^ num2
+            prefix = intlist_to_bytes(obfuscate_key_aux(20, 97, (1, 2)))
+            shaHash = bytes_to_intlist(sha1(prefix + str(num4).encode(u'ascii')).digest())
+            # Extend 160 Bit hash to 256 Bit
+            return shaHash + [0] * 12
+        
+        key = obfuscate_key(id)
+        class Counter:
+            __value = iv
+            def next_value(self):
+                temp = self.__value
+                self.__value = inc(self.__value)
+                return temp
+        decrypted_data = intlist_to_bytes(aes_cbc_decrypt(data, key, iv))
+        return zlib.decompress(decrypted_data)
+
+    def _convert_subtitles_to_srt(self, subtitles):
+        i=1
+        output = u''
+        for start, end, text in re.findall(r'<event [^>]*?start="([^"]+)" [^>]*?end="([^"]+)" [^>]*?text="([^"]+)"[^>]*?>', subtitles):
+            start = start.replace(u'.', u',')
+            end = end.replace(u'.', u',')
+            text = clean_html(text)
+            text = text.replace(u'\\N', u'\n')
+            if not text:
+                continue
+            output += u'%d\n%s --> %s\n%s\n\n' % (i, start, end, text)
+            i+=1
+        return output
+
+    def _real_extract(self,url):
+        mobj = re.match(self._VALID_URL, url)
+
+        webpage_url = u'http://www.' + mobj.group('url')
+        video_id = mobj.group(u'video_id')
+        webpage = self._download_webpage(webpage_url, video_id)
+        note_m = self._html_search_regex(r'<div class="showmedia-trailer-notice">(.+?)</div>', webpage, u'trailer-notice', default=u'')
+        if note_m:
+            raise ExtractorError(note_m)
+
+        video_title = self._html_search_regex(r'<h1[^>]*>(.+?)</h1>', webpage, u'video_title', flags=re.DOTALL)
+        video_title = re.sub(r' {2,}', u' ', video_title)
+        video_description = self._html_search_regex(r'"description":"([^"]+)', webpage, u'video_description', default=u'')
+        if not video_description:
+            video_description = None
+        video_upload_date = self._html_search_regex(r'<div>Availability for free users:(.+?)</div>', webpage, u'video_upload_date', fatal=False, flags=re.DOTALL)
+        if video_upload_date:
+            video_upload_date = unified_strdate(video_upload_date)
+        video_uploader = self._html_search_regex(r'<div>\s*Publisher:(.+?)</div>', webpage, u'video_uploader', fatal=False, flags=re.DOTALL)
+
+        playerdata_url = compat_urllib_parse.unquote(self._html_search_regex(r'"config_url":"([^"]+)', webpage, u'playerdata_url'))
+        playerdata_req = compat_urllib_request.Request(playerdata_url)
+        playerdata_req.data = compat_urllib_parse.urlencode({u'current_page': webpage_url})
+        playerdata_req.add_header(u'Content-Type', u'application/x-www-form-urlencoded')
+        playerdata = self._download_webpage(playerdata_req, video_id, note=u'Downloading media info')
+        
+        stream_id = self._search_regex(r'<media_id>([^<]+)', playerdata, u'stream_id')
+        video_thumbnail = self._search_regex(r'<episode_image_url>([^<]+)', playerdata, u'thumbnail', fatal=False)
+
+        formats = []
+        for fmt in re.findall(r'\?p([0-9]{3,4})=1', webpage):
+            stream_quality, stream_format = self._FORMAT_IDS[fmt]
+            video_format = fmt+u'p'
+            streamdata_req = compat_urllib_request.Request(u'http://www.crunchyroll.com/xml/')
+            # urlencode doesn't work!
+            streamdata_req.data = u'req=RpcApiVideoEncode%5FGetStreamInfo&video%5Fencode%5Fquality='+stream_quality+u'&media%5Fid='+stream_id+u'&video%5Fformat='+stream_format
+            streamdata_req.add_header(u'Content-Type', u'application/x-www-form-urlencoded')
+            streamdata_req.add_header(u'Content-Length', str(len(streamdata_req.data)))
+            streamdata = self._download_webpage(streamdata_req, video_id, note=u'Downloading media info for '+video_format)
+            video_url = self._search_regex(r'<host>([^<]+)', streamdata, u'video_url')
+            video_play_path = self._search_regex(r'<file>([^<]+)', streamdata, u'video_play_path')
+            formats.append({
+                u'url': video_url,
+                u'play_path':   video_play_path,
+                u'ext': 'flv',
+                u'format': video_format,
+                u'format_id': video_format,
+            })
+
+        subtitles = {}
+        for sub_id, sub_name in re.findall(r'\?ssid=([0-9]+)" title="([^"]+)', webpage):
+            sub_page = self._download_webpage(u'http://www.crunchyroll.com/xml/?req=RpcApiSubtitle_GetXml&subtitle_script_id='+sub_id,\
+                                              video_id, note=u'Downloading subtitles for '+sub_name)
+            id = self._search_regex(r'id=\'([0-9]+)', sub_page, u'subtitle_id', fatal=False)
+            iv = self._search_regex(r'<iv>([^<]+)', sub_page, u'subtitle_iv', fatal=False)
+            data = self._search_regex(r'<data>([^<]+)', sub_page, u'subtitle_data', fatal=False)
+            if not id or not iv or not data:
+                continue
+            id = int(id)
+            iv = base64.b64decode(iv)
+            data = base64.b64decode(data)
+
+            subtitle = self._decrypt_subtitles(data, iv, id).decode(u'utf-8')
+            lang_code = self._search_regex(r'lang_code=\'([^\']+)', subtitle, u'subtitle_lang_code', fatal=False)
+            if not lang_code:
+                continue
+            subtitles[lang_code] = self._convert_subtitles_to_srt(subtitle)
+
+        return {
+            u'id':          video_id,
+            u'title':       video_title,
+            u'description': video_description,
+            u'thumbnail':   video_thumbnail,
+            u'uploader':    video_uploader,
+            u'upload_date': video_upload_date,
+            u'subtitles':   subtitles,
+            u'formats':     formats,
+        }
diff --git a/youtube_dl/extractor/cspan.py b/youtube_dl/extractor/cspan.py
index 7bf03c5..d573068 100644
--- a/youtube_dl/extractor/cspan.py
+++ b/youtube_dl/extractor/cspan.py
@@ -6,7 +6,7 @@ from ..utils import (
 )
 
 class CSpanIE(InfoExtractor):
-    _VALID_URL = r'http://www.c-spanvideo.org/program/(.*)'
+    _VALID_URL = r'http://www\.c-spanvideo\.org/program/(.*)'
     _TEST = {
         u'url': u'http://www.c-spanvideo.org/program/HolderonV',
         u'file': u'315139.flv',
diff --git a/youtube_dl/extractor/dailymotion.py b/youtube_dl/extractor/dailymotion.py
index 71f5e03..6685c94 100644
--- a/youtube_dl/extractor/dailymotion.py
+++ b/youtube_dl/extractor/dailymotion.py
@@ -11,6 +11,7 @@ from ..utils import (
     get_element_by_attribute,
     get_element_by_id,
     orderedSet,
+    str_to_int,
 
     ExtractorError,
 )
@@ -27,7 +28,7 @@ class DailymotionBaseInfoExtractor(InfoExtractor):
 class DailymotionIE(DailymotionBaseInfoExtractor, SubtitlesInfoExtractor):
     """Information Extractor for Dailymotion"""
 
-    _VALID_URL = r'(?i)(?:https?://)?(?:www\.)?dailymotion\.[a-z]{2,3}/(?:embed/)?video/([^/]+)'
+    _VALID_URL = r'(?i)(?:https?://)?(?:(www|touch)\.)?dailymotion\.[a-z]{2,3}/(?:(embed|#)/)?video/(?P<id>[^/?_]+)'
     IE_NAME = u'dailymotion'
 
     _FORMATS = [
@@ -80,7 +81,7 @@ class DailymotionIE(DailymotionBaseInfoExtractor, SubtitlesInfoExtractor):
         # Extract id and simplified title from URL
         mobj = re.match(self._VALID_URL, url)
 
-        video_id = mobj.group(1).split('_')[0].split('?')[0]
+        video_id = mobj.group('id')
 
         url = 'http://www.dailymotion.com/video/%s' % video_id
 
@@ -100,10 +101,6 @@ class DailymotionIE(DailymotionBaseInfoExtractor, SubtitlesInfoExtractor):
             self.to_screen(u'Vevo video detected: %s' % vevo_id)
             return self.url_result(u'vevo:%s' % vevo_id, ie='Vevo')
 
-        video_uploader = self._search_regex([r'(?im)<span class="owner[^\"]+?">[^<]+?<a [^>]+?>([^<]+?)</a>',
-                                             # Looking for official user
-                                             r'<(?:span|a) .*?rel="author".*?>([^<]+?)</'],
-                                            webpage, 'video uploader', fatal=False)
         age_limit = self._rta_search(webpage)
 
         video_upload_date = None
@@ -146,15 +143,21 @@ class DailymotionIE(DailymotionBaseInfoExtractor, SubtitlesInfoExtractor):
             self._list_available_subtitles(video_id, webpage)
             return
 
+        view_count = self._search_regex(
+            r'video_views_count[^>]+>\s+([\d\.,]+)', webpage, u'view count', fatal=False)
+        if view_count is not None:
+            view_count = str_to_int(view_count)
+
         return {
             'id':       video_id,
             'formats': formats,
-            'uploader': video_uploader,
+            'uploader': info['owner_screenname'],
             'upload_date':  video_upload_date,
             'title':    self._og_search_title(webpage),
             'subtitles':    video_subtitles,
             'thumbnail': info['thumbnail_url'],
             'age_limit': age_limit,
+            'view_count': view_count,
         }
 
     def _get_available_subtitles(self, video_id, webpage):
diff --git a/youtube_dl/extractor/daum.py b/youtube_dl/extractor/daum.py
index d418ce4..4876ecb 100644
--- a/youtube_dl/extractor/daum.py
+++ b/youtube_dl/extractor/daum.py
@@ -9,7 +9,7 @@ from ..utils import (
 
 
 class DaumIE(InfoExtractor):
-    _VALID_URL = r'https?://tvpot\.daum\.net/.*?clipid=(?P<id>\d+)'
+    _VALID_URL = r'https?://(?:m\.)?tvpot\.daum\.net/.*?clipid=(?P<id>\d+)'
     IE_NAME = u'daum.net'
 
     _TEST = {
diff --git a/youtube_dl/extractor/dreisat.py b/youtube_dl/extractor/dreisat.py
index 24ce794..cb7226f 100644
--- a/youtube_dl/extractor/dreisat.py
+++ b/youtube_dl/extractor/dreisat.py
@@ -11,7 +11,7 @@ from ..utils import (
 
 class DreiSatIE(InfoExtractor):
     IE_NAME = '3sat'
-    _VALID_URL = r'(?:http://)?(?:www\.)?3sat.de/mediathek/index.php\?(?:(?:mode|display)=[^&]+&)*obj=(?P<id>[0-9]+)$'
+    _VALID_URL = r'(?:http://)?(?:www\.)?3sat\.de/mediathek/index\.php\?(?:(?:mode|display)=[^&]+&)*obj=(?P<id>[0-9]+)$'
     _TEST = {
         u"url": u"http://www.3sat.de/mediathek/index.php?obj=36983",
         u'file': u'36983.webm',
diff --git a/youtube_dl/extractor/eighttracks.py b/youtube_dl/extractor/eighttracks.py
index f21ef88..88f5526 100644
--- a/youtube_dl/extractor/eighttracks.py
+++ b/youtube_dl/extractor/eighttracks.py
@@ -10,7 +10,7 @@ from ..utils import (
 
 class EightTracksIE(InfoExtractor):
     IE_NAME = '8tracks'
-    _VALID_URL = r'https?://8tracks.com/(?P<user>[^/]+)/(?P<id>[^/#]+)(?:#.*)?$'
+    _VALID_URL = r'https?://8tracks\.com/(?P<user>[^/]+)/(?P<id>[^/#]+)(?:#.*)?$'
     _TEST = {
         u"name": u"EightTracks",
         u"url": u"http://8tracks.com/ytdl/youtube-dl-test-tracks-a",
diff --git a/youtube_dl/extractor/exfm.py b/youtube_dl/extractor/exfm.py
index a51d79b..682901d 100644
--- a/youtube_dl/extractor/exfm.py
+++ b/youtube_dl/extractor/exfm.py
@@ -8,7 +8,7 @@ class ExfmIE(InfoExtractor):
     IE_NAME = u'exfm'
     IE_DESC = u'ex.fm'
     _VALID_URL = r'(?:http://)?(?:www\.)?ex\.fm/song/([^/]+)'
-    _SOUNDCLOUD_URL = r'(?:http://)?(?:www\.)?api\.soundcloud.com/tracks/([^/]+)/stream'
+    _SOUNDCLOUD_URL = r'(?:http://)?(?:www\.)?api\.soundcloud\.com/tracks/([^/]+)/stream'
     _TESTS = [
         {
             u'url': u'http://ex.fm/song/eh359',
diff --git a/youtube_dl/extractor/facebook.py b/youtube_dl/extractor/facebook.py
index 3b21071..4556079 100644
--- a/youtube_dl/extractor/facebook.py
+++ b/youtube_dl/extractor/facebook.py
@@ -17,7 +17,7 @@ from ..utils import (
 class FacebookIE(InfoExtractor):
     """Information Extractor for Facebook"""
 
-    _VALID_URL = r'^(?:https?://)?(?:\w+\.)?facebook\.com/(?:video/video|photo)\.php\?(?:.*?)v=(?P<ID>\d+)(?:.*)'
+    _VALID_URL = r'^(?:https?://)?(?:\w+\.)?facebook\.com/(?:[^#?]*#!/)?(?:video/video|photo)\.php\?(?:.*?)v=(?P<ID>\d+)(?:.*)'
     _LOGIN_URL = 'https://www.facebook.com/login.php?next=http%3A%2F%2Ffacebook.com%2Fhome.php&login_attempt=1'
     _CHECKPOINT_URL = 'https://www.facebook.com/checkpoint/?next=http%3A%2F%2Ffacebook.com%2Fhome.php&_fb_noscript=1'
     _NETRC_MACHINE = 'facebook'
@@ -27,7 +27,7 @@ class FacebookIE(InfoExtractor):
         u'file': u'120708114770723.mp4',
         u'md5': u'48975a41ccc4b7a581abd68651c1a5a8',
         u'info_dict': {
-            u"duration": 279, 
+            u"duration": 279,
             u"title": u"PEOPLE ARE AWESOME 2013"
         }
     }
diff --git a/youtube_dl/extractor/faz.py b/youtube_dl/extractor/faz.py
index d0dfde6..c6ab695 100644
--- a/youtube_dl/extractor/faz.py
+++ b/youtube_dl/extractor/faz.py
@@ -9,7 +9,7 @@ from ..utils import (
 
 class FazIE(InfoExtractor):
     IE_NAME = u'faz.net'
-    _VALID_URL = r'https?://www\.faz\.net/multimedia/videos/.*?-(?P<id>\d+).html'
+    _VALID_URL = r'https?://www\.faz\.net/multimedia/videos/.*?-(?P<id>\d+)\.html'
 
     _TEST = {
         u'url': u'http://www.faz.net/multimedia/videos/stockholm-chemie-nobelpreis-fuer-drei-amerikanische-forscher-12610585.html',
diff --git a/youtube_dl/extractor/fktv.py b/youtube_dl/extractor/fktv.py
index dba1a8d..d7048c8 100644
--- a/youtube_dl/extractor/fktv.py
+++ b/youtube_dl/extractor/fktv.py
@@ -12,7 +12,7 @@ from ..utils import (
 
 class FKTVIE(InfoExtractor):
     IE_NAME = u'fernsehkritik.tv'
-    _VALID_URL = r'(?:http://)?(?:www\.)?fernsehkritik.tv/folge-(?P<ep>[0-9]+)(?:/.*)?'
+    _VALID_URL = r'(?:http://)?(?:www\.)?fernsehkritik\.tv/folge-(?P<ep>[0-9]+)(?:/.*)?'
 
     _TEST = {
         u'url': u'http://fernsehkritik.tv/folge-1',
@@ -52,7 +52,7 @@ class FKTVIE(InfoExtractor):
 
 class FKTVPosteckeIE(InfoExtractor):
     IE_NAME = u'fernsehkritik.tv:postecke'
-    _VALID_URL = r'(?:http://)?(?:www\.)?fernsehkritik.tv/inline-video/postecke.php\?(.*&)?ep=(?P<ep>[0-9]+)(&|$)'
+    _VALID_URL = r'(?:http://)?(?:www\.)?fernsehkritik\.tv/inline-video/postecke\.php\?(.*&)?ep=(?P<ep>[0-9]+)(&|$)'
     _TEST = {
         u'url': u'http://fernsehkritik.tv/inline-video/postecke.php?iframe=true&width=625&height=440&ep=120',
         u'file': u'0120.flv',
diff --git a/youtube_dl/extractor/francetv.py b/youtube_dl/extractor/francetv.py
index 6e19710..ad85bc1 100644
--- a/youtube_dl/extractor/francetv.py
+++ b/youtube_dl/extractor/francetv.py
@@ -21,7 +21,7 @@ class FranceTVBaseInfoExtractor(InfoExtractor):
         thumbnail_path = info.find('image').text
 
         return {'id': video_id,
-                'ext': 'mp4',
+                'ext': 'flv' if video_url.startswith('rtmp') else 'mp4',
                 'url': video_url,
                 'title': info.find('titre').text,
                 'thumbnail': compat_urlparse.urljoin('http://pluzz.francetv.fr', thumbnail_path),
@@ -45,7 +45,7 @@ class PluzzIE(FranceTVBaseInfoExtractor):
 
 class FranceTvInfoIE(FranceTVBaseInfoExtractor):
     IE_NAME = u'francetvinfo.fr'
-    _VALID_URL = r'https?://www\.francetvinfo\.fr/replay.*/(?P<title>.+).html'
+    _VALID_URL = r'https?://www\.francetvinfo\.fr/replay.*/(?P<title>.+)\.html'
 
     _TEST = {
         u'url': u'http://www.francetvinfo.fr/replay-jt/france-3/soir-3/jt-grand-soir-3-lundi-26-aout-2013_393427.html',
@@ -66,35 +66,101 @@ class FranceTvInfoIE(FranceTVBaseInfoExtractor):
         return self._extract_video(video_id)
 
 
-class France2IE(FranceTVBaseInfoExtractor):
-    IE_NAME = u'france2.fr'
-    _VALID_URL = r'''(?x)https?://www\.france2\.fr/
+class FranceTVIE(FranceTVBaseInfoExtractor):
+    IE_NAME = u'francetv'
+    IE_DESC = u'France 2, 3, 4, 5 and Ô'
+    _VALID_URL = r'''(?x)https?://www\.france[2345o]\.fr/
         (?:
-            emissions/.*?/videos/(?P<id>\d+)
-        |   emission/(?P<key>[^/?]+)
+            emissions/.*?/(videos|emissions)/(?P<id>[^/?]+)
+        |   (emissions?|jt)/(?P<key>[^/?]+)
         )'''
 
-    _TEST = {
-        u'url': u'http://www.france2.fr/emissions/13h15-le-samedi-le-dimanche/videos/75540104',
-        u'file': u'75540104.mp4',
-        u'info_dict': {
-            u'title': u'13h15, le samedi...',
-            u'description': u'md5:2e5b58ba7a2d3692b35c792be081a03d',
+    _TESTS = [
+        # france2
+        {
+            u'url': u'http://www.france2.fr/emissions/13h15-le-samedi-le-dimanche/videos/75540104',
+            u'file': u'75540104.mp4',
+            u'info_dict': {
+                u'title': u'13h15, le samedi...',
+                u'description': u'md5:2e5b58ba7a2d3692b35c792be081a03d',
+            },
+            u'params': {
+                # m3u8 download
+                u'skip_download': True,
+            },
         },
-        u'params': {
-            u'skip_download': True,
+        # france3
+        {
+            u'url': u'http://www.france3.fr/emissions/pieces-a-conviction/diffusions/13-11-2013_145575',
+            u'info_dict': {
+                u'id': u'000702326_CAPP_PicesconvictionExtrait313022013_120220131722_Au',
+                u'ext': u'flv',
+                u'title': u'Le scandale du prix des médicaments',
+                u'description': u'md5:1384089fbee2f04fc6c9de025ee2e9ce',
+            },
+            u'params': {
+                # rtmp download
+                u'skip_download': True,
+            },
         },
-    }
+        # france4
+        {
+            u'url': u'http://www.france4.fr/emissions/hero-corp/videos/rhozet_herocorp_bonus_1_20131106_1923_06112013172108_F4',
+            u'info_dict': {
+                u'id': u'rhozet_herocorp_bonus_1_20131106_1923_06112013172108_F4',
+                u'ext': u'flv',
+                u'title': u'Hero Corp Making of - Extrait 1',
+                u'description': u'md5:c87d54871b1790679aec1197e73d650a',
+            },
+            u'params': {
+                # rtmp download
+                u'skip_download': True,
+            },
+        },
+        # france5
+        {
+            u'url': u'http://www.france5.fr/emissions/c-a-dire/videos/92837968',
+            u'info_dict': {
+                u'id': u'92837968',
+                u'ext': u'mp4',
+                u'title': u'C à dire ?!',
+                u'description': u'md5:fb1db1cbad784dcce7c7a7bd177c8e2f',
+            },
+            u'params': {
+                # m3u8 download
+                u'skip_download': True,
+            },
+        },
+        # franceo
+        {
+            u'url': u'http://www.franceo.fr/jt/info-afrique/04-12-2013',
+            u'info_dict': {
+                u'id': u'92327925',
+                u'ext': u'mp4',
+                u'title': u'Infô-Afrique',
+                u'description': u'md5:ebf346da789428841bee0fd2a935ea55',
+            },
+            u'params': {
+                # m3u8 download
+                u'skip_download': True,
+            },
+            u'skip': u'The id changes frequently',
+        },
+    ]
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
         if mobj.group('key'):
             webpage = self._download_webpage(url, mobj.group('key'))
-            video_id = self._html_search_regex(
-                r'''(?x)<div\s+class="video-player">\s*
+            id_res = [
+                (r'''(?x)<div\s+class="video-player">\s*
                     <a\s+href="http://videos.francetv.fr/video/([0-9]+)"\s+
-                    class="francetv-video-player">''',
-                webpage, u'video ID')
+                    class="francetv-video-player">'''),
+                (r'<a id="player_direct" href="http://info\.francetelevisions'
+                 '\.fr/\?id-video=([^"/&]+)'),
+                (r'<a class="video" id="ftv_player_(.+?)"'),
+            ]
+            video_id = self._html_search_regex(id_res, webpage, u'video ID')
         else:
             video_id = mobj.group('id')
         return self._extract_video(video_id)
diff --git a/youtube_dl/extractor/gamekings.py b/youtube_dl/extractor/gamekings.py
index c91669b..a3a5251 100644
--- a/youtube_dl/extractor/gamekings.py
+++ b/youtube_dl/extractor/gamekings.py
@@ -4,7 +4,7 @@ from .common import InfoExtractor
 
 
 class GamekingsIE(InfoExtractor):
-    _VALID_URL = r'http?://www\.gamekings\.tv/videos/(?P<name>[0-9a-z\-]+)'
+    _VALID_URL = r'http://www\.gamekings\.tv/videos/(?P<name>[0-9a-z\-]+)'
     _TEST = {
         u"url": u"http://www.gamekings.tv/videos/phoenix-wright-ace-attorney-dual-destinies-review/",
         u'file': u'20130811.mp4',
diff --git a/youtube_dl/extractor/gametrailers.py b/youtube_dl/extractor/gametrailers.py
index 3a8bef2..d82a5d4 100644
--- a/youtube_dl/extractor/gametrailers.py
+++ b/youtube_dl/extractor/gametrailers.py
@@ -4,8 +4,7 @@ from .mtv import MTVServicesInfoExtractor
 
 
 class GametrailersIE(MTVServicesInfoExtractor):
-    _VALID_URL = r'http://www.gametrailers.com/(?P<type>videos|reviews|full-episodes)/(?P<id>.*?)/(?P<title>.*)'
-
+    _VALID_URL = r'http://www\.gametrailers\.com/(?P<type>videos|reviews|full-episodes)/(?P<id>.*?)/(?P<title>.*)'
     _TEST = {
         u'url': u'http://www.gametrailers.com/videos/zbvr8i/mirror-s-edge-2-e3-2013--debut-trailer',
         u'file': u'70e9a5d7-cf25-4a10-9104-6f3e7342ae0d.mp4',
diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py
index 10ae062..7a14c98 100644
--- a/youtube_dl/extractor/generic.py
+++ b/youtube_dl/extractor/generic.py
@@ -11,10 +11,14 @@ from ..utils import (
     compat_urlparse,
 
     ExtractorError,
+    HEADRequest,
     smuggle_url,
     unescapeHTML,
+    unified_strdate,
+    url_basename,
 )
 from .brightcove import BrightcoveIE
+from .ooyala import OoyalaIE
 
 
 class GenericIE(InfoExtractor):
@@ -71,6 +75,27 @@ class GenericIE(InfoExtractor):
                 u'skip_download': True,
             },
         },
+        # Direct link to a video
+        {
+            u'url': u'http://media.w3.org/2010/05/sintel/trailer.mp4',
+            u'file': u'trailer.mp4',
+            u'md5': u'67d406c2bcb6af27fa886f31aa934bbe',
+            u'info_dict': {
+                u'id': u'trailer',
+                u'title': u'trailer',
+                u'upload_date': u'20100513',
+            }
+        },
+        # ooyala video
+        {
+            u'url': u'http://www.rollingstone.com/music/videos/norwegian-dj-cashmere-cat-goes-spartan-on-with-me-premiere-20131219',
+            u'md5': u'5644c6ca5d5782c1d0d350dad9bd840c',
+            u'info_dict': {
+                u'id': u'BwY2RxaTrTkslxOfcan0UCf0YqyvWysJ',
+                u'ext': u'mp4',
+                u'title': u'2cc213299525360.mov', #that's what we get
+            },
+        },
     ]
 
     def report_download_webpage(self, video_id):
@@ -83,23 +108,20 @@ class GenericIE(InfoExtractor):
         """Report information extraction."""
         self._downloader.to_screen(u'[redirect] Following redirect to %s' % new_url)
 
-    def _test_redirect(self, url):
+    def _send_head(self, url):
         """Check if it is a redirect, like url shorteners, in case return the new url."""
-        class HeadRequest(compat_urllib_request.Request):
-            def get_method(self):
-                return "HEAD"
 
         class HEADRedirectHandler(compat_urllib_request.HTTPRedirectHandler):
             """
             Subclass the HTTPRedirectHandler to make it use our
-            HeadRequest also on the redirected URL
+            HEADRequest also on the redirected URL
             """
             def redirect_request(self, req, fp, code, msg, headers, newurl):
                 if code in (301, 302, 303, 307):
                     newurl = newurl.replace(' ', '%20')
                     newheaders = dict((k,v) for k,v in req.headers.items()
                                       if k.lower() not in ("content-length", "content-type"))
-                    return HeadRequest(newurl,
+                    return HEADRequest(newurl,
                                        headers=newheaders,
                                        origin_req_host=req.get_origin_req_host(),
                                        unverifiable=True)
@@ -128,32 +150,49 @@ class GenericIE(InfoExtractor):
                         compat_urllib_request.HTTPErrorProcessor, compat_urllib_request.HTTPSHandler]:
             opener.add_handler(handler())
 
-        response = opener.open(HeadRequest(url))
+        response = opener.open(HEADRequest(url))
         if response is None:
             raise ExtractorError(u'Invalid URL protocol')
-        new_url = response.geturl()
-
-        if url == new_url:
-            return False
-
-        self.report_following_redirect(new_url)
-        return new_url
+        return response
 
     def _real_extract(self, url):
         parsed_url = compat_urlparse.urlparse(url)
         if not parsed_url.scheme:
             self._downloader.report_warning('The url doesn\'t specify the protocol, trying with http')
             return self.url_result('http://' + url)
+        video_id = os.path.splitext(url.split('/')[-1])[0]
 
         try:
-            new_url = self._test_redirect(url)
-            if new_url:
-                return [self.url_result(new_url)]
+            response = self._send_head(url)
+
+            # Check for redirect
+            new_url = response.geturl()
+            if url != new_url:
+                self.report_following_redirect(new_url)
+                return self.url_result(new_url)
+
+            # Check for direct link to a video
+            content_type = response.headers.get('Content-Type', '')
+            m = re.match(r'^(?P<type>audio|video|application(?=/ogg$))/(?P<format_id>.+)$', content_type)
+            if m:
+                upload_date = response.headers.get('Last-Modified')
+                if upload_date:
+                    upload_date = unified_strdate(upload_date)
+                return {
+                    'id': video_id,
+                    'title': os.path.splitext(url_basename(url))[0],
+                    'formats': [{
+                        'format_id': m.group('format_id'),
+                        'url': url,
+                        'vcodec': u'none' if m.group('type') == 'audio' else None
+                    }],
+                    'upload_date': upload_date,
+                }
+
         except compat_urllib_error.HTTPError:
             # This may be a stupid server that doesn't like HEAD, our UA, or so
             pass
 
-        video_id = url.split('/')[-1]
         try:
             webpage = self._download_webpage(url, video_id)
         except ValueError:
@@ -169,8 +208,13 @@ class GenericIE(InfoExtractor):
         #   Site Name | Video Title
         #   Video Title - Tagline | Site Name
         # and so on and so forth; it's just not practical
-        video_title = self._html_search_regex(r'<title>(.*)</title>',
-            webpage, u'video title', default=u'video', flags=re.DOTALL)
+        video_title = self._html_search_regex(
+            r'(?s)<title>(.*?)</title>', webpage, u'video title',
+            default=u'video')
+
+        # video uploader is domain name
+        video_uploader = self._search_regex(
+            r'^(?:https?://)?([^/]*)/.*', url, u'video uploader')
 
         # Look for BrightCove:
         bc_url = BrightcoveIE._extract_brightcove_url(webpage)
@@ -178,7 +222,7 @@ class GenericIE(InfoExtractor):
             self.to_screen(u'Brightcove video detected.')
             return self.url_result(bc_url, 'Brightcove')
 
-        # Look for embedded Vimeo player
+        # Look for embedded (iframe) Vimeo player
         mobj = re.search(
             r'<iframe[^>]+?src="(https?://player.vimeo.com/video/.+?)"', webpage)
         if mobj:
@@ -186,9 +230,18 @@ class GenericIE(InfoExtractor):
             surl = smuggle_url(player_url, {'Referer': url})
             return self.url_result(surl, 'Vimeo')
 
+        # Look for embedded (swf embed) Vimeo player
+        mobj = re.search(
+            r'<embed[^>]+?src="(https?://(?:www\.)?vimeo.com/moogaloop.swf.+?)"', webpage)
+        if mobj:
+            return self.url_result(mobj.group(1), 'Vimeo')
+
         # Look for embedded YouTube player
-        matches = re.findall(
-            r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//(?:www\.)?youtube.com/embed/.+?)\1', webpage)
+        matches = re.findall(r'''(?x)
+            (?:<iframe[^>]+?src=|embedSWF\(\s*)
+            (["\'])(?P<url>(?:https?:)?//(?:www\.)?youtube\.com/
+                (?:embed|v)/.+?)
+            \1''', webpage)
         if matches:
             urlrs = [self.url_result(unescapeHTML(tuppl[1]), 'Youtube')
                      for tuppl in matches]
@@ -197,13 +250,38 @@ class GenericIE(InfoExtractor):
 
         # Look for embedded Dailymotion player
         matches = re.findall(
-            r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//(?:www\.)?dailymotion.com/embed/video/.+?)\1', webpage)
+            r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//(?:www\.)?dailymotion\.com/embed/video/.+?)\1', webpage)
         if matches:
             urlrs = [self.url_result(unescapeHTML(tuppl[1]), 'Dailymotion')
                      for tuppl in matches]
             return self.playlist_result(
                 urlrs, playlist_id=video_id, playlist_title=video_title)
 
+        # Look for embedded Wistia player
+        match = re.search(
+            r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//(?:fast\.)?wistia\.net/embed/iframe/.+?)\1', webpage)
+        if match:
+            return {
+                '_type': 'url_transparent',
+                'url': unescapeHTML(match.group('url')),
+                'ie_key': 'Wistia',
+                'uploader': video_uploader,
+                'title': video_title,
+                'id': video_id,
+            }
+
+        # Look for embedded blip.tv player
+        mobj = re.search(r'<meta\s[^>]*https?://api.blip.tv/\w+/redirect/\w+/(\d+)', webpage)
+        if mobj:
+            return self.url_result('http://blip.tv/seo/-'+mobj.group(1), 'BlipTV')
+        mobj = re.search(r'<(?:iframe|embed|object)\s[^>]*https?://(?:\w+\.)?blip.tv/(?:play/|api\.swf#)([a-zA-Z0-9]+)', webpage)
+        if mobj:
+            player_url = 'http://blip.tv/play/%s.x?p=1' % mobj.group(1)
+            player_page = self._download_webpage(player_url, mobj.group(1))
+            blip_video_id = self._search_regex(r'data-episode-id="(\d+)', player_page, u'blip_video_id', fatal=False)
+            if blip_video_id:
+                return self.url_result('http://blip.tv/seo/-'+blip_video_id, 'BlipTV')
+
         # Look for Bandcamp pages with custom domain
         mobj = re.search(r'<meta property="og:url"[^>]*?content="(.*?bandcamp\.com.*?)"', webpage)
         if mobj is not None:
@@ -211,6 +289,22 @@ class GenericIE(InfoExtractor):
             # Don't set the extractor because it can be a track url or an album
             return self.url_result(burl)
 
+        # Look for embedded Vevo player
+        mobj = re.search(
+            r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//(?:cache\.)?vevo\.com/.+?)\1', webpage)
+        if mobj is not None:
+            return self.url_result(mobj.group('url'))
+
+        # Look for Ooyala videos
+        mobj = re.search(r'player.ooyala.com/[^"?]+\?[^"]*?(?:embedCode|ec)=([^"&]+)', webpage)
+        if mobj is not None:
+            return OoyalaIE._build_url_result(mobj.group(1))
+
+        # Look for Aparat videos
+        mobj = re.search(r'<iframe src="(http://www.aparat.com/video/[^"]+)"', webpage)
+        if mobj is not None:
+            return self.url_result(mobj.group(1), 'Aparat')
+
         # Start with something easy: JW Player in SWFObject
         mobj = re.search(r'flashvars: [\'"](?:.*&)?file=(http[^\'"&]*)', webpage)
         if mobj is None:
@@ -247,14 +341,9 @@ class GenericIE(InfoExtractor):
         # here's a fun little line of code for you:
         video_id = os.path.splitext(video_id)[0]
 
-        # video uploader is domain name
-        video_uploader = self._search_regex(r'(?:https?://)?([^/]*)/.*',
-            url, u'video uploader')
-
         return {
             'id':       video_id,
             'url':      video_url,
             'uploader': video_uploader,
-            'upload_date':  None,
             'title':    video_title,
         }
diff --git a/youtube_dl/extractor/hotnewhiphop.py b/youtube_dl/extractor/hotnewhiphop.py
index 3798118..0ee74fb 100644
--- a/youtube_dl/extractor/hotnewhiphop.py
+++ b/youtube_dl/extractor/hotnewhiphop.py
@@ -11,7 +11,7 @@ class HotNewHipHopIE(InfoExtractor):
         u'file': u'1435540.mp3',
         u'md5': u'2c2cd2f76ef11a9b3b581e8b232f3d96',
         u'info_dict': {
-            u"title": u"Freddie Gibbs - Lay It Down"
+            u"title": u'Freddie Gibbs "Lay It Down"'
         }
     }
 
diff --git a/youtube_dl/extractor/ign.py b/youtube_dl/extractor/ign.py
index c52146f..381af91 100644
--- a/youtube_dl/extractor/ign.py
+++ b/youtube_dl/extractor/ign.py
@@ -44,7 +44,7 @@ class IGNIE(InfoExtractor):
                 {
                     u'file': u'638672ee848ae4ff108df2a296418ee2.mp4',
                     u'info_dict': {
-                        u'title': u'GTA 5\'s Twisted Beauty in Super Slow Motion',
+                        u'title': u'26 Twisted Moments from GTA 5 in Slow Motion',
                         u'description': u'The twisted beauty of GTA 5 in stunning slow motion.',
                     },
                 },
@@ -103,7 +103,7 @@ class IGNIE(InfoExtractor):
 class OneUPIE(IGNIE):
     """Extractor for 1up.com, it uses the ign videos system."""
 
-    _VALID_URL = r'https?://gamevideos.1up.com/(?P<type>video)/id/(?P<name_or_id>.+)'
+    _VALID_URL = r'https?://gamevideos\.1up\.com/(?P<type>video)/id/(?P<name_or_id>.+)'
     IE_NAME = '1up.com'
 
     _DESCRIPTION_RE = r'<div id="vid_summary">(.+?)</div>'
diff --git a/youtube_dl/extractor/imdb.py b/youtube_dl/extractor/imdb.py
index d8e9712..e5332cc 100644
--- a/youtube_dl/extractor/imdb.py
+++ b/youtube_dl/extractor/imdb.py
@@ -11,7 +11,7 @@ from ..utils import (
 class ImdbIE(InfoExtractor):
     IE_NAME = u'imdb'
     IE_DESC = u'Internet Movie Database trailers'
-    _VALID_URL = r'http://www\.imdb\.com/video/imdb/vi(?P<id>\d+)'
+    _VALID_URL = r'http://(?:www|m)\.imdb\.com/video/imdb/vi(?P<id>\d+)'
 
     _TEST = {
         u'url': u'http://www.imdb.com/video/imdb/vi2524815897',
@@ -21,20 +21,20 @@ class ImdbIE(InfoExtractor):
             u'ext': u'mp4',
             u'title': u'Ice Age: Continental Drift Trailer (No. 2) - IMDb',
             u'description': u'md5:9061c2219254e5d14e03c25c98e96a81',
-            u'duration': 151,
         }
     }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
         video_id = mobj.group('id')
-        webpage = self._download_webpage(url,video_id)
+        webpage = self._download_webpage('http://www.imdb.com/video/imdb/vi%s' % video_id, video_id)
         descr = get_element_by_attribute('itemprop', 'description', webpage)
         available_formats = re.findall(
             r'case \'(?P<f_id>.*?)\' :$\s+url = \'(?P<path>.*?)\'', webpage,
             flags=re.MULTILINE)
         formats = []
         for f_id, f_path in available_formats:
+            f_path = f_path.strip()
             format_page = self._download_webpage(
                 compat_urlparse.urljoin(url, f_path),
                 u'Downloading info for %s format' % f_id)
@@ -46,7 +46,6 @@ class ImdbIE(InfoExtractor):
             formats.append({
                 'format_id': f_id,
                 'url': format_info['url'],
-                'height': int(info['titleObject']['encoding']['selected'][:-1]),
             })
 
         return {
@@ -55,5 +54,4 @@ class ImdbIE(InfoExtractor):
             'formats': formats,
             'description': descr,
             'thumbnail': format_info['slate'],
-            'duration': int(info['titleObject']['title']['duration_seconds']),
         }
diff --git a/youtube_dl/extractor/instagram.py b/youtube_dl/extractor/instagram.py
index 213aac4..660573d 100644
--- a/youtube_dl/extractor/instagram.py
+++ b/youtube_dl/extractor/instagram.py
@@ -3,7 +3,7 @@ import re
 from .common import InfoExtractor
 
 class InstagramIE(InfoExtractor):
-    _VALID_URL = r'(?:http://)?instagram.com/p/(.*?)/'
+    _VALID_URL = r'(?:http://)?instagram\.com/p/(.*?)/'
     _TEST = {
         u'url': u'http://instagram.com/p/aye83DjauH/?foo=bar#abc',
         u'file': u'aye83DjauH.mp4',
diff --git a/youtube_dl/extractor/ivi.py b/youtube_dl/extractor/ivi.py
new file mode 100644
index 0000000..4bdf55f
--- /dev/null
+++ b/youtube_dl/extractor/ivi.py
@@ -0,0 +1,154 @@
+# encoding: utf-8
+
+import re
+import json
+
+from .common import InfoExtractor
+from ..utils import (
+    compat_urllib_request,
+    ExtractorError,
+)
+
+
+class IviIE(InfoExtractor):
+    IE_DESC = u'ivi.ru'
+    IE_NAME = u'ivi'
+    _VALID_URL = r'^https?://(?:www\.)?ivi\.ru/watch(?:/(?P<compilationid>[^/]+))?/(?P<videoid>\d+)'
+
+    _TESTS = [
+        # Single movie
+        {
+            u'url': u'http://www.ivi.ru/watch/53141',
+            u'file': u'53141.mp4',
+            u'md5': u'6ff5be2254e796ed346251d117196cf4',
+            u'info_dict': {
+                u'title': u'Иван Васильевич меняет профессию',
+                u'description': u'md5:14d8eda24e9d93d29b5857012c6d6346',
+                u'duration': 5498,
+                u'thumbnail': u'http://thumbs.ivi.ru/f20.vcp.digitalaccess.ru/contents/d/1/c3c885163a082c29bceeb7b5a267a6.jpg',
+            },
+            u'skip': u'Only works from Russia',
+        },
+        # Serial's serie
+        {
+            u'url': u'http://www.ivi.ru/watch/dezhurnyi_angel/74791',
+            u'file': u'74791.mp4',
+            u'md5': u'3e6cc9a848c1d2ebcc6476444967baa9',
+            u'info_dict': {
+                u'title': u'Дежурный ангел - 1 серия',
+                u'duration': 2490,
+                u'thumbnail': u'http://thumbs.ivi.ru/f7.vcp.digitalaccess.ru/contents/8/e/bc2f6c2b6e5d291152fdd32c059141.jpg',
+            },
+            u'skip': u'Only works from Russia',
+         }
+    ]
+    
+    # Sorted by quality
+    _known_formats = ['MP4-low-mobile', 'MP4-mobile', 'FLV-lo', 'MP4-lo', 'FLV-hi', 'MP4-hi', 'MP4-SHQ']
+
+    # Sorted by size
+    _known_thumbnails = ['Thumb-120x90', 'Thumb-160', 'Thumb-640x480']
+
+    def _extract_description(self, html):
+        m = re.search(r'<meta name="description" content="(?P<description>[^"]+)"/>', html)
+        return m.group('description') if m is not None else None
+
+    def _extract_comment_count(self, html):
+        m = re.search(u'(?s)<a href="#" id="view-comments" class="action-button dim gradient">\s*Комментарии:\s*(?P<commentcount>\d+)\s*</a>', html)
+        return int(m.group('commentcount')) if m is not None else 0
+
+    def _real_extract(self, url):
+        mobj = re.match(self._VALID_URL, url)
+        video_id = mobj.group('videoid')
+
+        api_url = 'http://api.digitalaccess.ru/api/json/'
+
+        data = {u'method': u'da.content.get',
+                u'params': [video_id, {u'site': u's183',
+                                       u'referrer': u'http://www.ivi.ru/watch/%s' % video_id,
+                                       u'contentid': video_id
+                                    }
+                            ]
+                }
+
+        request = compat_urllib_request.Request(api_url, json.dumps(data))
+
+        video_json_page = self._download_webpage(request, video_id, u'Downloading video JSON')
+        video_json = json.loads(video_json_page)
+
+        if u'error' in video_json:
+            error = video_json[u'error']
+            if error[u'origin'] == u'NoRedisValidData':
+                raise ExtractorError(u'Video %s does not exist' % video_id, expected=True)
+            raise ExtractorError(u'Unable to download video %s: %s' % (video_id, error[u'message']), expected=True)
+
+        result = video_json[u'result']
+
+        formats = [{'url': x[u'url'],
+                    'format_id': x[u'content_format']
+                    } for x in result[u'files'] if x[u'content_format'] in self._known_formats]
+        formats.sort(key=lambda fmt: self._known_formats.index(fmt['format_id']))
+
+        if len(formats) == 0:
+            self._downloader.report_warning(u'No media links available for %s' % video_id)
+            return
+
+        duration = result[u'duration']
+        compilation = result[u'compilation']
+        title = result[u'title']
+
+        title = '%s - %s' % (compilation, title) if compilation is not None else title  
+
+        previews = result[u'preview']
+        previews.sort(key=lambda fmt: self._known_thumbnails.index(fmt['content_format']))
+        thumbnail = previews[-1][u'url'] if len(previews) > 0 else None
+
+        video_page = self._download_webpage(url, video_id, u'Downloading video page')
+        description = self._extract_description(video_page)
+        comment_count = self._extract_comment_count(video_page)
+
+        return {
+            'id': video_id,
+            'title': title,
+            'thumbnail': thumbnail,
+            'description': description,
+            'duration': duration,
+            'comment_count': comment_count,
+            'formats': formats,
+        }
+
+
+class IviCompilationIE(InfoExtractor):
+    IE_DESC = u'ivi.ru compilations'
+    IE_NAME = u'ivi:compilation'
+    _VALID_URL = r'^https?://(?:www\.)?ivi\.ru/watch/(?!\d+)(?P<compilationid>[a-z\d_-]+)(?:/season(?P<seasonid>\d+))?$'
+
+    def _extract_entries(self, html, compilation_id):
+        return [self.url_result('http://www.ivi.ru/watch/%s/%s' % (compilation_id, serie), 'Ivi')
+                for serie in re.findall(r'<strong><a href="/watch/%s/(\d+)">(?:[^<]+)</a></strong>' % compilation_id, html)]
+
+    def _real_extract(self, url):
+        mobj = re.match(self._VALID_URL, url)
+        compilation_id = mobj.group('compilationid')
+        season_id = mobj.group('seasonid')
+
+        if season_id is not None: # Season link
+            season_page = self._download_webpage(url, compilation_id, u'Downloading season %s web page' % season_id)
+            playlist_id = '%s/season%s' % (compilation_id, season_id)
+            playlist_title = self._html_search_meta(u'title', season_page, u'title')
+            entries = self._extract_entries(season_page, compilation_id)
+        else: # Compilation link            
+            compilation_page = self._download_webpage(url, compilation_id, u'Downloading compilation web page')
+            playlist_id = compilation_id
+            playlist_title = self._html_search_meta(u'title', compilation_page, u'title')
+            seasons = re.findall(r'<a href="/watch/%s/season(\d+)">[^<]+</a>' % compilation_id, compilation_page)
+            if len(seasons) == 0: # No seasons in this compilation
+                entries = self._extract_entries(compilation_page, compilation_id)
+            else:
+                entries = []
+                for season_id in seasons:
+                    season_page = self._download_webpage('http://www.ivi.ru/watch/%s/season%s' % (compilation_id, season_id),
+                                                         compilation_id, u'Downloading season %s web page' % season_id)
+                    entries.extend(self._extract_entries(season_page, compilation_id))
+
+        return self.playlist_result(entries, playlist_id, playlist_title)
\ No newline at end of file
diff --git a/youtube_dl/extractor/jukebox.py b/youtube_dl/extractor/jukebox.py
index c7bb234..592c64e 100644
--- a/youtube_dl/extractor/jukebox.py
+++ b/youtube_dl/extractor/jukebox.py
@@ -8,7 +8,7 @@ from ..utils import (
 )
 
 class JukeboxIE(InfoExtractor):
-    _VALID_URL = r'^http://www\.jukebox?\..+?\/.+[,](?P<video_id>[a-z0-9\-]+).html'
+    _VALID_URL = r'^http://www\.jukebox?\..+?\/.+[,](?P<video_id>[a-z0-9\-]+)\.html'
     _IFRAME = r'<iframe .*src="(?P<iframe>[^"]*)".*>'
     _VIDEO_URL = r'"config":{"file":"(?P<video_url>http:[^"]+[.](?P<video_ext>[^.?]+)[?]mdtk=[0-9]+)"'
     _TITLE = r'<h1 class="inline">(?P<title>[^<]+)</h1>.*<span id="infos_article_artist">(?P<artist>[^<]+)</span>'
diff --git a/youtube_dl/extractor/liveleak.py b/youtube_dl/extractor/liveleak.py
index dd062a1..5ae57a7 100644
--- a/youtube_dl/extractor/liveleak.py
+++ b/youtube_dl/extractor/liveleak.py
@@ -8,7 +8,7 @@ from ..utils import (
 
 class LiveLeakIE(InfoExtractor):
 
-    _VALID_URL = r'^(?:http?://)?(?:\w+\.)?liveleak\.com/view\?(?:.*?)i=(?P<video_id>[\w_]+)(?:.*)'
+    _VALID_URL = r'^(?:http://)?(?:\w+\.)?liveleak\.com/view\?(?:.*?)i=(?P<video_id>[\w_]+)(?:.*)'
     IE_NAME = u'liveleak'
     _TEST = {
         u'url': u'http://www.liveleak.com/view?i=757_1364311680',
diff --git a/youtube_dl/extractor/livestream.py b/youtube_dl/extractor/livestream.py
index 9bc35b1..1dcd1fb 100644
--- a/youtube_dl/extractor/livestream.py
+++ b/youtube_dl/extractor/livestream.py
@@ -11,7 +11,7 @@ from ..utils import (
 
 class LivestreamIE(InfoExtractor):
     IE_NAME = u'livestream'
-    _VALID_URL = r'http://new.livestream.com/.*?/(?P<event_name>.*?)(/videos/(?P<id>\d+))?/?$'
+    _VALID_URL = r'http://new\.livestream\.com/.*?/(?P<event_name>.*?)(/videos/(?P<id>\d+))?/?$'
     _TEST = {
         u'url': u'http://new.livestream.com/CoheedandCambria/WebsterHall/videos/4719370',
         u'file': u'4719370.mp4',
diff --git a/youtube_dl/extractor/mdr.py b/youtube_dl/extractor/mdr.py
new file mode 100644
index 0000000..08ce064
--- /dev/null
+++ b/youtube_dl/extractor/mdr.py
@@ -0,0 +1,63 @@
+import re
+
+from .common import InfoExtractor
+from ..utils import (
+    ExtractorError,
+)
+
+
+class MDRIE(InfoExtractor):
+    _VALID_URL = r'^(?P<domain>(?:https?://)?(?:www\.)?mdr\.de)/mediathek/(?:.*)/(?P<type>video|audio)(?P<video_id>[^/_]+)_.*'
+    
+    # No tests, MDR regularily deletes its videos
+
+    def _real_extract(self, url):
+        m = re.match(self._VALID_URL, url)
+        video_id = m.group('video_id')
+        domain = m.group('domain')
+
+        # determine title and media streams from webpage
+        html = self._download_webpage(url, video_id)
+
+        title = self._html_search_regex(r'<h2>(.*?)</h2>', html, u'title')
+        xmlurl = self._search_regex(
+            r'(/mediathek/(?:.+)/(?:video|audio)[0-9]+-avCustom.xml)', html, u'XML URL')
+
+        doc = self._download_xml(domain + xmlurl, video_id)
+        formats = []
+        for a in doc.findall('./assets/asset'):
+            url_el = a.find('.//progressiveDownloadUrl')
+            if url_el is None:
+                continue
+            abr = int(a.find('bitrateAudio').text) // 1000
+            media_type = a.find('mediaType').text
+            format = {
+                'abr': abr,
+                'filesize': int(a.find('fileSize').text),
+                'url': url_el.text,
+            }
+
+            vbr_el = a.find('bitrateVideo')
+            if vbr_el is None:
+                format.update({
+                    'vcodec': 'none',
+                    'format_id': u'%s-%d' % (media_type, abr),
+                })
+            else:
+                vbr = int(vbr_el.text) // 1000
+                format.update({
+                    'vbr': vbr,
+                    'width': int(a.find('frameWidth').text),
+                    'height': int(a.find('frameHeight').text),
+                    'format_id': u'%s-%d' % (media_type, vbr),
+                })
+            formats.append(format)
+        formats.sort(key=lambda f: (f.get('vbr'), f['abr']))
+        if not formats:
+            raise ExtractorError(u'Could not find any valid formats')
+
+        return {
+            'id': video_id,
+            'title': title,
+            'formats': formats,
+        }
diff --git a/youtube_dl/extractor/metacafe.py b/youtube_dl/extractor/metacafe.py
index 91480ba..99d3c83 100644
--- a/youtube_dl/extractor/metacafe.py
+++ b/youtube_dl/extractor/metacafe.py
@@ -1,14 +1,10 @@
 import re
-import socket
 
 from .common import InfoExtractor
 from ..utils import (
-    compat_http_client,
     compat_parse_qs,
-    compat_urllib_error,
     compat_urllib_parse,
     compat_urllib_request,
-    compat_str,
     determine_ext,
     ExtractorError,
 )
@@ -69,6 +65,21 @@ class MetacafeIE(InfoExtractor):
             u'age_limit': 18,
         },
     },
+    # cbs video
+    {
+        u'url': u'http://www.metacafe.com/watch/cb-0rOxMBabDXN6/samsung_galaxy_note_2_samsungs_next_generation_phablet/',
+        u'info_dict': {
+            u'id': u'0rOxMBabDXN6',
+            u'ext': u'flv',
+            u'title': u'Samsung Galaxy Note 2: Samsung\'s next-generation phablet',
+            u'description': u'md5:54d49fac53d26d5a0aaeccd061ada09d',
+            u'duration': 129,
+        },
+        u'params': {
+            # rtmp download
+            u'skip_download': True,
+        },
+    },
     ]
 
 
@@ -78,12 +89,8 @@ class MetacafeIE(InfoExtractor):
 
     def _real_initialize(self):
         # Retrieve disclaimer
-        request = compat_urllib_request.Request(self._DISCLAIMER)
-        try:
-            self.report_disclaimer()
-            compat_urllib_request.urlopen(request).read()
-        except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
-            raise ExtractorError(u'Unable to retrieve disclaimer: %s' % compat_str(err))
+        self.report_disclaimer()
+        self._download_webpage(self._DISCLAIMER, None, False, u'Unable to retrieve disclaimer')
 
         # Confirm age
         disclaimer_form = {
@@ -92,11 +99,8 @@ class MetacafeIE(InfoExtractor):
             }
         request = compat_urllib_request.Request(self._FILTER_POST, compat_urllib_parse.urlencode(disclaimer_form))
         request.add_header('Content-Type', 'application/x-www-form-urlencoded')
-        try:
-            self.report_age_confirmation()
-            compat_urllib_request.urlopen(request).read()
-        except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
-            raise ExtractorError(u'Unable to confirm age: %s' % compat_str(err))
+        self.report_age_confirmation()
+        self._download_webpage(request, None, False, u'Unable to confirm age')
 
     def _real_extract(self, url):
         # Extract id and simplified title from URL
@@ -106,10 +110,16 @@ class MetacafeIE(InfoExtractor):
 
         video_id = mobj.group(1)
 
-        # Check if video comes from YouTube
-        mobj2 = re.match(r'^yt-(.*)$', video_id)
-        if mobj2 is not None:
-            return [self.url_result('http://www.youtube.com/watch?v=%s' % mobj2.group(1), 'Youtube')]
+        # the video may come from an external site
+        m_external = re.match('^(\w{2})-(.*)$', video_id)
+        if m_external is not None:
+            prefix, ext_id = m_external.groups()
+            # Check if video comes from YouTube
+            if prefix == 'yt':
+                return self.url_result('http://www.youtube.com/watch?v=%s' % ext_id, 'Youtube')
+            # CBS videos use theplatform.com
+            if prefix == 'cb':
+                return self.url_result('theplatform:%s' % ext_id, 'ThePlatform')
 
         # Retrieve video webpage to extract further information
         req = compat_urllib_request.Request('http://www.metacafe.com/watch/%s/' % video_id)
diff --git a/youtube_dl/extractor/metacritic.py b/youtube_dl/extractor/metacritic.py
index 6b95b49..e560c1d 100644
--- a/youtube_dl/extractor/metacritic.py
+++ b/youtube_dl/extractor/metacritic.py
@@ -1,8 +1,10 @@
 import re
-import xml.etree.ElementTree
 import operator
 
 from .common import InfoExtractor
+from ..utils import (
+    fix_xml_all_ampersand,
+)
 
 
 class MetacriticIE(InfoExtractor):
@@ -23,9 +25,8 @@ class MetacriticIE(InfoExtractor):
         video_id = mobj.group('id')
         webpage = self._download_webpage(url, video_id)
         # The xml is not well formatted, there are raw '&'
-        info_xml = self._download_webpage('http://www.metacritic.com/video_data?video=' + video_id,
-            video_id, u'Downloading info xml').replace('&', '&amp;')
-        info = xml.etree.ElementTree.fromstring(info_xml.encode('utf-8'))
+        info = self._download_xml('http://www.metacritic.com/video_data?video=' + video_id,
+            video_id, u'Downloading info xml', transform_source=fix_xml_all_ampersand)
 
         clip = next(c for c in info.findall('playList/clip') if c.find('id').text == video_id)
         formats = []
diff --git a/youtube_dl/extractor/mixcloud.py b/youtube_dl/extractor/mixcloud.py
index e2baf44..125d815 100644
--- a/youtube_dl/extractor/mixcloud.py
+++ b/youtube_dl/extractor/mixcloud.py
@@ -1,13 +1,10 @@
 import json
 import re
-import socket
 
 from .common import InfoExtractor
 from ..utils import (
-    compat_http_client,
-    compat_urllib_error,
-    compat_urllib_request,
     unified_strdate,
+    ExtractorError,
 )
 
 
@@ -31,13 +28,18 @@ class MixcloudIE(InfoExtractor):
         """Returns 1st active url from list"""
         for url in url_list:
             try:
-                compat_urllib_request.urlopen(url)
+                # We only want to know if the request succeed
+                # don't download the whole file
+                self._request_webpage(url, None, False)
                 return url
-            except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error):
+            except ExtractorError:
                 url = None
 
         return None
 
+    def _get_url(self, template_url):
+        return self.check_urls(template_url % i for i in range(30))
+
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
 
@@ -53,13 +55,18 @@ class MixcloudIE(InfoExtractor):
         preview_url = self._search_regex(r'data-preview-url="(.+?)"', webpage, u'preview url')
         song_url = preview_url.replace('/previews/', '/cloudcasts/originals/')
         template_url = re.sub(r'(stream\d*)', 'stream%d', song_url)
-        final_song_url = self.check_urls(template_url % i for i in range(30))
+        final_song_url = self._get_url(template_url)
+        if final_song_url is None:
+            self.to_screen('Trying with m4a extension')
+            template_url = template_url.replace('.mp3', '.m4a').replace('originals/', 'm4a/64/')
+            final_song_url = self._get_url(template_url)
+        if final_song_url is None:
+            raise ExtractorError(u'Unable to extract track url')
 
         return {
             'id': track_id,
             'title': info['name'],
             'url': final_song_url,
-            'ext': 'mp3',
             'description': info.get('description'),
             'thumbnail': info['pictures'].get('extra_large'),
             'uploader': info['user']['name'],
diff --git a/youtube_dl/extractor/mtv.py b/youtube_dl/extractor/mtv.py
index 6b3feb5..ed11f52 100644
--- a/youtube_dl/extractor/mtv.py
+++ b/youtube_dl/extractor/mtv.py
@@ -82,13 +82,20 @@ class MTVServicesInfoExtractor(InfoExtractor):
     def _get_videos_info(self, uri):
         video_id = self._id_from_uri(uri)
         data = compat_urllib_parse.urlencode({'uri': uri})
-        idoc = self._download_xml(self._FEED_URL +'?' + data, video_id,
-                                         u'Downloading info')
+
+        def fix_ampersand(s):
+            """ Fix unencoded ampersand in XML """
+            return s.replace(u'& ', '&amp; ')
+        idoc = self._download_xml(
+            self._FEED_URL + '?' + data, video_id,
+            u'Downloading info', transform_source=fix_ampersand)
         return [self._get_video_info(item) for item in idoc.findall('.//item')]
 
 
 class MTVIE(MTVServicesInfoExtractor):
-    _VALID_URL = r'^https?://(?:www\.)?mtv\.com/videos/.+?/(?P<videoid>[0-9]+)/[^/]+$'
+    _VALID_URL = r'''(?x)^https?://
+        (?:(?:www\.)?mtv\.com/videos/.+?/(?P<videoid>[0-9]+)/[^/]+$|
+           m\.mtv\.com/videos/video\.rbml\?.*?id=(?P<mgid>[^&]+))'''
 
     _FEED_URL = 'http://www.mtv.com/player/embed/AS3/rss/'
 
@@ -122,16 +129,17 @@ class MTVIE(MTVServicesInfoExtractor):
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
         video_id = mobj.group('videoid')
-
-        webpage = self._download_webpage(url, video_id)
-
-        # Some videos come from Vevo.com
-        m_vevo = re.search(r'isVevoVideo = true;.*?vevoVideoId = "(.*?)";',
-                           webpage, re.DOTALL)
-        if m_vevo:
-            vevo_id = m_vevo.group(1);
-            self.to_screen(u'Vevo video detected: %s' % vevo_id)
-            return self.url_result('vevo:%s' % vevo_id, ie='Vevo')
-
-        uri = self._html_search_regex(r'/uri/(.*?)\?', webpage, u'uri')
+        uri = mobj.group('mgid')
+        if uri is None:
+            webpage = self._download_webpage(url, video_id)
+    
+            # Some videos come from Vevo.com
+            m_vevo = re.search(r'isVevoVideo = true;.*?vevoVideoId = "(.*?)";',
+                               webpage, re.DOTALL)
+            if m_vevo:
+                vevo_id = m_vevo.group(1);
+                self.to_screen(u'Vevo video detected: %s' % vevo_id)
+                return self.url_result('vevo:%s' % vevo_id, ie='Vevo')
+    
+            uri = self._html_search_regex(r'/uri/(.*?)\?', webpage, u'uri')
         return self._get_videos_info(uri)
diff --git a/youtube_dl/extractor/muzu.py b/youtube_dl/extractor/muzu.py
index 03e31ea..1772b7f 100644
--- a/youtube_dl/extractor/muzu.py
+++ b/youtube_dl/extractor/muzu.py
@@ -9,7 +9,7 @@ from ..utils import (
 
 
 class MuzuTVIE(InfoExtractor):
-    _VALID_URL = r'https?://www.muzu.tv/(.+?)/(.+?)/(?P<id>\d+)'
+    _VALID_URL = r'https?://www\.muzu\.tv/(.+?)/(.+?)/(?P<id>\d+)'
     IE_NAME = u'muzu.tv'
 
     _TEST = {
diff --git a/youtube_dl/extractor/myspass.py b/youtube_dl/extractor/myspass.py
index 0067bf1..4becdde 100644
--- a/youtube_dl/extractor/myspass.py
+++ b/youtube_dl/extractor/myspass.py
@@ -9,7 +9,7 @@ from ..utils import (
 
 
 class MySpassIE(InfoExtractor):
-    _VALID_URL = r'http://www.myspass.de/.*'
+    _VALID_URL = r'http://www\.myspass\.de/.*'
     _TEST = {
         u'url': u'http://www.myspass.de/myspass/shows/tvshows/absolute-mehrheit/Absolute-Mehrheit-vom-17022013-Die-Highlights-Teil-2--/11741/',
         u'file': u'11741.mp4',
diff --git a/youtube_dl/extractor/naver.py b/youtube_dl/extractor/naver.py
index c012ec0..4cab306 100644
--- a/youtube_dl/extractor/naver.py
+++ b/youtube_dl/extractor/naver.py
@@ -9,7 +9,7 @@ from ..utils import (
 
 
 class NaverIE(InfoExtractor):
-    _VALID_URL = r'https?://tvcast\.naver\.com/v/(?P<id>\d+)'
+    _VALID_URL = r'https?://(?:m\.)?tvcast\.naver\.com/v/(?P<id>\d+)'
 
     _TEST = {
         u'url': u'http://tvcast.naver.com/v/81652',
diff --git a/youtube_dl/extractor/ndtv.py b/youtube_dl/extractor/ndtv.py
new file mode 100644
index 0000000..d81df3c
--- /dev/null
+++ b/youtube_dl/extractor/ndtv.py
@@ -0,0 +1,64 @@
+import re
+
+from .common import InfoExtractor
+from ..utils import month_by_name
+
+
+class NDTVIE(InfoExtractor):
+    _VALID_URL = r'^https?://(?:www\.)?ndtv\.com/video/player/[^/]*/[^/]*/(?P<id>[a-z0-9]+)'
+
+    _TEST = {
+        u"url": u"http://www.ndtv.com/video/player/news/ndtv-exclusive-don-t-need-character-certificate-from-rahul-gandhi-says-arvind-kejriwal/300710",
+        u"file": u"300710.mp4",
+        u"md5": u"39f992dbe5fb531c395d8bbedb1e5e88",
+        u"info_dict": {
+            u"title": u"NDTV exclusive: Don't need character certificate from Rahul Gandhi, says Arvind Kejriwal",
+            u"description": u"In an exclusive interview to NDTV, Aam Aadmi Party's Arvind Kejriwal says it makes no difference to him that Rahul Gandhi said the Congress needs to learn from his party.",
+            u"upload_date": u"20131208",
+            u"duration": 1327,
+            u"thumbnail": u"http://i.ndtvimg.com/video/images/vod/medium/2013-12/big_300710_1386518307.jpg",
+        },
+    }
+
+    def _real_extract(self, url):
+        mobj = re.match(self._VALID_URL, url)
+        video_id = mobj.group('id')
+
+        webpage = self._download_webpage(url, video_id)
+
+        filename = self._search_regex(
+            r"__filename='([^']+)'", webpage, u'video filename')
+        video_url = (u'http://bitcast-b.bitgravity.com/ndtvod/23372/ndtv/%s' %
+                     filename)
+
+        duration_str = filename = self._search_regex(
+            r"__duration='([^']+)'", webpage, u'duration', fatal=False)
+        duration = None if duration_str is None else int(duration_str)
+
+        date_m = re.search(r'''(?x)
+            <p\s+class="vod_dateline">\s*
+                Published\s+On:\s*
+                (?P<monthname>[A-Za-z]+)\s+(?P<day>[0-9]+),\s*(?P<year>[0-9]+)
+            ''', webpage)
+        upload_date = None
+        assert date_m
+        if date_m is not None:
+            month = month_by_name(date_m.group('monthname'))
+            if month is not None:
+                upload_date = '%s%02d%02d' % (
+                    date_m.group('year'), month, int(date_m.group('day')))
+
+        description = self._og_search_description(webpage)
+        READ_MORE = u' (Read more)'
+        if description.endswith(READ_MORE):
+            description = description[:-len(READ_MORE)]
+
+        return {
+            'id': video_id,
+            'url': video_url,
+            'title': self._og_search_title(webpage),
+            'description': description,
+            'thumbnail': self._og_search_thumbnail(webpage),
+            'duration': duration,
+            'upload_date': upload_date,
+        }
diff --git a/youtube_dl/extractor/ninegag.py b/youtube_dl/extractor/ninegag.py
new file mode 100644
index 0000000..ea986c0
--- /dev/null
+++ b/youtube_dl/extractor/ninegag.py
@@ -0,0 +1,43 @@
+import json
+import re
+
+from .common import InfoExtractor
+
+
+class NineGagIE(InfoExtractor):
+    IE_NAME = '9gag'
+    _VALID_URL = r'^https?://(?:www\.)?9gag\.tv/v/(?P<id>[0-9]+)'
+
+    _TEST = {
+        u"url": u"http://9gag.tv/v/1912",
+        u"file": u"1912.mp4",
+        u"info_dict": {
+            u"description": u"This 3-minute video will make you smile and then make you feel untalented and insignificant. Anyway, you should share this awesomeness. (Thanks, Dino!)",
+            u"title": u"\"People Are Awesome 2013\" Is Absolutely Awesome"
+        },
+        u'add_ie': [u'Youtube']
+    }
+
+    def _real_extract(self, url):
+        mobj = re.match(self._VALID_URL, url)
+        video_id = mobj.group('id')
+
+        webpage = self._download_webpage(url, video_id)
+        data_json = self._html_search_regex(r'''(?x)
+            <div\s*id="tv-video"\s*data-video-source="youtube"\s*
+                data-video-meta="([^"]+)"''', webpage, u'video metadata')
+
+        data = json.loads(data_json)
+
+        return {
+            '_type': 'url_transparent',
+            'url': data['youtubeVideoId'],
+            'ie_key': 'Youtube',
+            'id': video_id,
+            'title': data['title'],
+            'description': data['description'],
+            'view_count': int(data['view_count']),
+            'like_count': int(data['statistic']['like']),
+            'dislike_count': int(data['statistic']['dislike']),
+            'thumbnail': data['thumbnail_url'],
+        }
diff --git a/youtube_dl/extractor/ooyala.py b/youtube_dl/extractor/ooyala.py
index 1f7b4d2..d08e477 100644
--- a/youtube_dl/extractor/ooyala.py
+++ b/youtube_dl/extractor/ooyala.py
@@ -22,6 +22,11 @@ class OoyalaIE(InfoExtractor):
     def _url_for_embed_code(embed_code):
         return 'http://player.ooyala.com/player.js?embedCode=%s' % embed_code
 
+    @classmethod
+    def _build_url_result(cls, embed_code):
+        return cls.url_result(cls._url_for_embed_code(embed_code),
+            ie=cls.ie_key())
+
     def _extract_result(self, info, more_info):
         return {'id': info['embedCode'],
                 'ext': 'mp4',
diff --git a/youtube_dl/extractor/orf.py b/youtube_dl/extractor/orf.py
index cfca2a0..b42eae8 100644
--- a/youtube_dl/extractor/orf.py
+++ b/youtube_dl/extractor/orf.py
@@ -12,7 +12,7 @@ from ..utils import (
 )
 
 class ORFIE(InfoExtractor):
-    _VALID_URL = r'https?://tvthek.orf.at/(programs/.+?/episodes|topics/.+?)/(?P<id>\d+)'
+    _VALID_URL = r'https?://tvthek\.orf\.at/(programs/.+?/episodes|topics/.+?)/(?P<id>\d+)'
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
diff --git a/youtube_dl/extractor/pbs.py b/youtube_dl/extractor/pbs.py
index 65462d8..25f0192 100644
--- a/youtube_dl/extractor/pbs.py
+++ b/youtube_dl/extractor/pbs.py
@@ -5,7 +5,7 @@ from .common import InfoExtractor
 
 
 class PBSIE(InfoExtractor):
-    _VALID_URL = r'https?://video.pbs.org/video/(?P<id>\d+)/?'
+    _VALID_URL = r'https?://video\.pbs\.org/video/(?P<id>\d+)/?'
 
     _TEST = {
         u'url': u'http://video.pbs.org/video/2365006249/',
diff --git a/youtube_dl/extractor/pornhd.py b/youtube_dl/extractor/pornhd.py
new file mode 100644
index 0000000..71abd50
--- /dev/null
+++ b/youtube_dl/extractor/pornhd.py
@@ -0,0 +1,38 @@
+import re
+
+from .common import InfoExtractor
+from ..utils import compat_urllib_parse
+
+
+class PornHdIE(InfoExtractor):
+    _VALID_URL = r'(?:http://)?(?:www\.)?pornhd\.com/videos/(?P<video_id>[0-9]+)/(?P<video_title>.+)'
+    _TEST = {
+        u'url': u'http://www.pornhd.com/videos/1962/sierra-day-gets-his-cum-all-over-herself-hd-porn-video',
+        u'file': u'1962.flv',
+        u'md5': u'35272469887dca97abd30abecc6cdf75',
+        u'info_dict': {
+            u"title": u"sierra-day-gets-his-cum-all-over-herself-hd-porn-video",
+            u"age_limit": 18,
+        }
+    }
+
+    def _real_extract(self, url):
+        mobj = re.match(self._VALID_URL, url)
+
+        video_id = mobj.group('video_id')
+        video_title = mobj.group('video_title')
+
+        webpage = self._download_webpage(url, video_id)
+
+        video_url = self._html_search_regex(
+            r'&hd=(http.+?)&', webpage, u'video URL')
+        video_url = compat_urllib_parse.unquote(video_url)
+        age_limit = 18
+
+        return {
+            'id': video_id,
+            'url': video_url,
+            'ext': 'flv',
+            'title': video_title,
+            'age_limit': age_limit,
+        }
diff --git a/youtube_dl/extractor/pornhub.py b/youtube_dl/extractor/pornhub.py
index 8b34719..d9135c6 100644
--- a/youtube_dl/extractor/pornhub.py
+++ b/youtube_dl/extractor/pornhub.py
@@ -12,7 +12,7 @@ from ..aes import (
 )
 
 class PornHubIE(InfoExtractor):
-    _VALID_URL = r'^(?:https?://)?(?:www\.)?(?P<url>pornhub\.com/view_video\.php\?viewkey=(?P<videoid>[0-9]+))'
+    _VALID_URL = r'^(?:https?://)?(?:www\.)?(?P<url>pornhub\.com/view_video\.php\?viewkey=(?P<videoid>[0-9a-f]+))'
     _TEST = {
         u'url': u'http://www.pornhub.com/view_video.php?viewkey=648719015',
         u'file': u'648719015.mp4',
diff --git a/youtube_dl/extractor/pyvideo.py b/youtube_dl/extractor/pyvideo.py
new file mode 100644
index 0000000..3305459
--- /dev/null
+++ b/youtube_dl/extractor/pyvideo.py
@@ -0,0 +1,51 @@
+import re
+import os
+
+from .common import InfoExtractor
+
+
+class PyvideoIE(InfoExtractor):
+    _VALID_URL = r'(?:http://)?(?:www\.)?pyvideo\.org/video/(?P<id>\d+)/(.*)'
+    _TESTS = [{
+        u'url': u'http://pyvideo.org/video/1737/become-a-logging-expert-in-30-minutes',
+        u'file': u'24_4WWkSmNo.mp4',
+        u'md5': u'de317418c8bc76b1fd8633e4f32acbc6',
+        u'info_dict': {
+            u"title": u"Become a logging expert in 30 minutes",
+            u"description": u"md5:9665350d466c67fb5b1598de379021f7",
+            u"upload_date": u"20130320",
+            u"uploader": u"NextDayVideo",
+            u"uploader_id": u"NextDayVideo",
+        },
+        u'add_ie': ['Youtube'],
+    },
+    {
+        u'url': u'http://pyvideo.org/video/2542/gloriajw-spotifywitherikbernhardsson182m4v',
+        u'md5': u'5fe1c7e0a8aa5570330784c847ff6d12',
+        u'info_dict': {
+            u'id': u'2542',
+            u'ext': u'm4v',
+            u'title': u'Gloriajw-SpotifyWithErikBernhardsson182',
+        },
+    },
+    ]
+
+    def _real_extract(self, url):
+        mobj = re.match(self._VALID_URL, url)
+        video_id = mobj.group('id')
+        webpage = self._download_webpage(url, video_id)
+        m_youtube = re.search(r'(https?://www\.youtube\.com/watch\?v=.*)', webpage)
+
+        if m_youtube is not None:
+            return self.url_result(m_youtube.group(1), 'Youtube')
+
+        title = self._html_search_regex(r'<div class="section">.*?<h3>([^>]+?)</h3>',
+            webpage, u'title', flags=re.DOTALL)
+        video_url = self._search_regex([r'<source src="(.*?)"',
+            r'<dt>Download</dt>.*?<a href="(.+?)"'],
+            webpage, u'video url', flags=re.DOTALL)
+        return {
+            'id': video_id,
+            'title': os.path.splitext(title)[0],
+            'url': video_url,
+        }
diff --git a/youtube_dl/extractor/radiofrance.py b/youtube_dl/extractor/radiofrance.py
new file mode 100644
index 0000000..34652f6
--- /dev/null
+++ b/youtube_dl/extractor/radiofrance.py
@@ -0,0 +1,55 @@
+# coding: utf-8
+import re
+
+from .common import InfoExtractor
+
+
+class RadioFranceIE(InfoExtractor):
+    _VALID_URL = r'^https?://maison\.radiofrance\.fr/radiovisions/(?P<id>[^?#]+)'
+    IE_NAME = u'radiofrance'
+
+    _TEST = {
+        u'url': u'http://maison.radiofrance.fr/radiovisions/one-one',
+        u'file': u'one-one.ogg',
+        u'md5': u'bdbb28ace95ed0e04faab32ba3160daf',
+        u'info_dict': {
+            u"title": u"One to one",
+            u"description": u"Plutôt que d'imaginer la radio de demain comme technologie ou comme création de contenu, je veux montrer que quelles que soient ses évolutions, j'ai l'intime conviction que la radio continuera d'être un grand média de proximité pour les auditeurs.",
+            u"uploader": u"Thomas Hercouët",
+        },
+    }
+
+    def _real_extract(self, url):
+        m = re.match(self._VALID_URL, url)
+        video_id = m.group('id')
+
+        webpage = self._download_webpage(url, video_id)
+        title = self._html_search_regex(r'<h1>(.*?)</h1>', webpage, u'title')
+        description = self._html_search_regex(
+            r'<div class="bloc_page_wrapper"><div class="text">(.*?)</div>',
+            webpage, u'description', fatal=False)
+        uploader = self._html_search_regex(
+            r'<div class="credit">&nbsp;&nbsp;&copy;&nbsp;(.*?)</div>',
+            webpage, u'uploader', fatal=False)
+
+        formats_str = self._html_search_regex(
+            r'class="jp-jplayer[^"]*" data-source="([^"]+)">',
+            webpage, u'audio URLs')
+        formats = [
+            {
+                'format_id': fm[0],
+                'url': fm[1],
+                'vcodec': 'none',
+            }
+            for fm in
+            re.findall(r"([a-z0-9]+)\s*:\s*'([^']+)'", formats_str)
+        ]
+        # No sorting, we don't know any more about these formats
+
+        return {
+            'id': video_id,
+            'title': title,
+            'formats': formats,
+            'description': description,
+            'uploader': uploader,
+        }
diff --git a/youtube_dl/extractor/rtlnow.py b/youtube_dl/extractor/rtlnow.py
index 2f238de..ccf0b15 100644
--- a/youtube_dl/extractor/rtlnow.py
+++ b/youtube_dl/extractor/rtlnow.py
@@ -7,14 +7,15 @@ from ..utils import (
     ExtractorError,
 )
 
+
 class RTLnowIE(InfoExtractor):
     """Information Extractor for RTL NOW, RTL2 NOW, RTL NITRO, SUPER RTL NOW, VOX NOW and n-tv NOW"""
-    _VALID_URL = r'(?:http://)?(?P<url>(?P<base_url>rtl-now\.rtl\.de/|rtl2now\.rtl2\.de/|(?:www\.)?voxnow\.de/|(?:www\.)?rtlnitronow\.de/|(?:www\.)?superrtlnow\.de/|(?:www\.)?n-tvnow\.de/)[a-zA-Z0-9-]+/[a-zA-Z0-9-]+\.php\?(?:container_id|film_id)=(?P<video_id>[0-9]+)&player=1(?:&season=[0-9]+)?(?:&.*)?)'
+    _VALID_URL = r'(?:http://)?(?P<url>(?P<domain>rtl-now\.rtl\.de|rtl2now\.rtl2\.de|(?:www\.)?voxnow\.de|(?:www\.)?rtlnitronow\.de|(?:www\.)?superrtlnow\.de|(?:www\.)?n-tvnow\.de)/+[a-zA-Z0-9-]+/[a-zA-Z0-9-]+\.php\?(?:container_id|film_id)=(?P<video_id>[0-9]+)&player=1(?:&season=[0-9]+)?(?:&.*)?)'
     _TESTS = [{
         u'url': u'http://rtl-now.rtl.de/ahornallee/folge-1.php?film_id=90419&player=1&season=1',
         u'file': u'90419.flv',
         u'info_dict': {
-            u'upload_date': u'20070416', 
+            u'upload_date': u'20070416',
             u'title': u'Ahornallee - Folge 1 - Der Einzug',
             u'description': u'Folge 1 - Der Einzug',
         },
@@ -81,7 +82,7 @@ class RTLnowIE(InfoExtractor):
         mobj = re.match(self._VALID_URL, url)
 
         webpage_url = u'http://' + mobj.group('url')
-        video_page_url = u'http://' + mobj.group('base_url')
+        video_page_url = u'http://' + mobj.group('domain') + u'/'
         video_id = mobj.group(u'video_id')
 
         webpage = self._download_webpage(webpage_url, video_id)
diff --git a/youtube_dl/extractor/rutube.py b/youtube_dl/extractor/rutube.py
index a18034f..e3e9bc0 100644
--- a/youtube_dl/extractor/rutube.py
+++ b/youtube_dl/extractor/rutube.py
@@ -11,7 +11,7 @@ from ..utils import (
 
 
 class RutubeIE(InfoExtractor):
-    _VALID_URL = r'https?://rutube.ru/video/(?P<long_id>\w+)'
+    _VALID_URL = r'https?://rutube\.ru/video/(?P<long_id>\w+)'
 
     _TEST = {
         u'url': u'http://rutube.ru/video/3eac3b4561676c17df9132a9a1e62e3e/',
diff --git a/youtube_dl/extractor/slashdot.py b/youtube_dl/extractor/slashdot.py
index f5003c7..d68646d 100644
--- a/youtube_dl/extractor/slashdot.py
+++ b/youtube_dl/extractor/slashdot.py
@@ -4,7 +4,7 @@ from .common import InfoExtractor
 
 
 class SlashdotIE(InfoExtractor):
-    _VALID_URL = r'https?://tv.slashdot.org/video/\?embed=(?P<id>.*?)(&|$)'
+    _VALID_URL = r'https?://tv\.slashdot\.org/video/\?embed=(?P<id>.*?)(&|$)'
 
     _TEST = {
         u'add_ie': ['Ooyala'],
diff --git a/youtube_dl/extractor/smotri.py b/youtube_dl/extractor/smotri.py
index f035a32..beea58d 100644
--- a/youtube_dl/extractor/smotri.py
+++ b/youtube_dl/extractor/smotri.py
@@ -1,13 +1,17 @@
 # encoding: utf-8
 
+import os.path
 import re
 import json
 import hashlib
+import uuid
 
 from .common import InfoExtractor
 from ..utils import (
-    determine_ext,
-    ExtractorError
+    compat_urllib_parse,
+    compat_urllib_request,
+    ExtractorError,
+    url_basename,
 )
 
 
@@ -130,7 +134,16 @@ class SmotriIE(InfoExtractor):
         # We will extract some from the video web page instead
         video_page_url = 'http://' + mobj.group('url')
         video_page = self._download_webpage(video_page_url, video_id, u'Downloading video page')
-        
+
+        # Warning if video is unavailable
+        warning = self._html_search_regex(
+            r'<div class="videoUnModer">(.*?)</div>', video_page,
+            u'warning messagef', default=None)
+        if warning is not None:
+            self._downloader.report_warning(
+                u'Video %s may not be available; smotri said: %s ' %
+                (video_id, warning))
+
         # Adult content
         if re.search(u'EroConfirmText">', video_page) is not None:
             self.report_age_confirmation()
@@ -146,38 +159,44 @@ class SmotriIE(InfoExtractor):
         # Extract the rest of meta data
         video_title = self._search_meta(u'name', video_page, u'title')
         if not video_title:
-            video_title = video_url.rsplit('/', 1)[-1]
+            video_title = os.path.splitext(url_basename(video_url))[0]
 
         video_description = self._search_meta(u'description', video_page)
         END_TEXT = u' на сайте Smotri.com'
-        if video_description.endswith(END_TEXT):
+        if video_description and video_description.endswith(END_TEXT):
             video_description = video_description[:-len(END_TEXT)]
         START_TEXT = u'Смотреть онлайн ролик '
-        if video_description.startswith(START_TEXT):
+        if video_description and video_description.startswith(START_TEXT):
             video_description = video_description[len(START_TEXT):]
         video_thumbnail = self._search_meta(u'thumbnail', video_page)
 
         upload_date_str = self._search_meta(u'uploadDate', video_page, u'upload date')
-        upload_date_m = re.search(r'(?P<year>\d{4})\.(?P<month>\d{2})\.(?P<day>\d{2})T', upload_date_str)
-        video_upload_date = (
-            (
-                upload_date_m.group('year') +
-                upload_date_m.group('month') +
-                upload_date_m.group('day')
+        if upload_date_str:
+            upload_date_m = re.search(r'(?P<year>\d{4})\.(?P<month>\d{2})\.(?P<day>\d{2})T', upload_date_str)
+            video_upload_date = (
+                (
+                    upload_date_m.group('year') +
+                    upload_date_m.group('month') +
+                    upload_date_m.group('day')
+                )
+                if upload_date_m else None
             )
-            if upload_date_m else None
-        )
+        else:
+            video_upload_date = None
         
         duration_str = self._search_meta(u'duration', video_page)
-        duration_m = re.search(r'T(?P<hours>[0-9]{2})H(?P<minutes>[0-9]{2})M(?P<seconds>[0-9]{2})S', duration_str)
-        video_duration = (
-            (
-                (int(duration_m.group('hours')) * 60 * 60) +
-                (int(duration_m.group('minutes')) * 60) +
-                int(duration_m.group('seconds'))
+        if duration_str:
+            duration_m = re.search(r'T(?P<hours>[0-9]{2})H(?P<minutes>[0-9]{2})M(?P<seconds>[0-9]{2})S', duration_str)
+            video_duration = (
+                (
+                    (int(duration_m.group('hours')) * 60 * 60) +
+                    (int(duration_m.group('minutes')) * 60) +
+                    int(duration_m.group('seconds'))
+                )
+                if duration_m else None
             )
-            if duration_m else None
-        )
+        else:
+            video_duration = None
         
         video_uploader = self._html_search_regex(
             u'<div class="DescrUser"><div>Автор.*?onmouseover="popup_user_info[^"]+">(.*?)</a>',
@@ -200,7 +219,7 @@ class SmotriIE(InfoExtractor):
             'uploader': video_uploader,
             'upload_date': video_upload_date,
             'uploader_id': video_uploader_id,
-            'video_duration': video_duration,
+            'duration': video_duration,
             'view_count': video_view_count,
             'age_limit': 18 if adult_content else 0,
             'video_page_url': video_page_url
@@ -250,3 +269,105 @@ class SmotriUserIE(InfoExtractor):
             u'user nickname')
 
         return self.playlist_result(entries, user_id, user_nickname)
+
+
+class SmotriBroadcastIE(InfoExtractor):
+    IE_DESC = u'Smotri.com broadcasts'
+    IE_NAME = u'smotri:broadcast'
+    _VALID_URL = r'^https?://(?:www\.)?(?P<url>smotri\.com/live/(?P<broadcastid>[^/]+))/?.*'
+
+    def _real_extract(self, url):
+        mobj = re.match(self._VALID_URL, url)
+        broadcast_id = mobj.group('broadcastid')
+
+        broadcast_url = 'http://' + mobj.group('url')
+        broadcast_page = self._download_webpage(broadcast_url, broadcast_id, u'Downloading broadcast page')
+
+        if re.search(u'>Режиссер с логином <br/>"%s"<br/> <span>не существует<' % broadcast_id, broadcast_page) is not None:
+            raise ExtractorError(u'Broadcast %s does not exist' % broadcast_id, expected=True)
+
+        # Adult content
+        if re.search(u'EroConfirmText">', broadcast_page) is not None:
+
+            (username, password) = self._get_login_info()
+            if username is None:
+                raise ExtractorError(u'Erotic broadcasts allowed only for registered users, '
+                    u'use --username and --password options to provide account credentials.', expected=True)
+
+            # Log in
+            login_form_strs = {
+                u'login-hint53': '1',
+                u'confirm_erotic': '1',
+                u'login': username,
+                u'password': password,
+            }
+            # Convert to UTF-8 *before* urlencode because Python 2.x's urlencode
+            # chokes on unicode
+            login_form = dict((k.encode('utf-8'), v.encode('utf-8')) for k,v in login_form_strs.items())
+            login_data = compat_urllib_parse.urlencode(login_form).encode('utf-8')
+            login_url = broadcast_url + '/?no_redirect=1'
+            request = compat_urllib_request.Request(login_url, login_data)
+            request.add_header('Content-Type', 'application/x-www-form-urlencoded')
+            broadcast_page = self._download_webpage(
+                request, broadcast_id, note=u'Logging in and confirming age')
+
+            if re.search(u'>Неверный логин или пароль<', broadcast_page) is not None:
+                raise ExtractorError(u'Unable to log in: bad username or password', expected=True)
+
+            adult_content = True
+        else:
+            adult_content = False
+
+        ticket = self._html_search_regex(
+            u'window\.broadcast_control\.addFlashVar\\(\'file\', \'([^\']+)\'\\);',
+            broadcast_page, u'broadcast ticket')
+
+        url = 'http://smotri.com/broadcast/view/url/?ticket=%s' % ticket
+
+        broadcast_password = self._downloader.params.get('videopassword', None)
+        if broadcast_password:
+            url += '&pass=%s' % hashlib.md5(broadcast_password.encode('utf-8')).hexdigest()
+
+        broadcast_json_page = self._download_webpage(url, broadcast_id, u'Downloading broadcast JSON')
+
+        try:
+            broadcast_json = json.loads(broadcast_json_page)
+
+            protected_broadcast = broadcast_json['_pass_protected'] == 1
+            if protected_broadcast and not broadcast_password:
+                raise ExtractorError(u'This broadcast is protected by a password, use the --video-password option', expected=True)
+
+            broadcast_offline = broadcast_json['is_play'] == 0
+            if broadcast_offline:
+                raise ExtractorError(u'Broadcast %s is offline' % broadcast_id, expected=True)
+
+            rtmp_url = broadcast_json['_server']
+            if not rtmp_url.startswith('rtmp://'):
+                raise ExtractorError(u'Unexpected broadcast rtmp URL')
+
+            broadcast_playpath = broadcast_json['_streamName']
+            broadcast_thumbnail = broadcast_json['_imgURL']
+            broadcast_title = broadcast_json['title']
+            broadcast_description = broadcast_json['description']
+            broadcaster_nick = broadcast_json['nick']
+            broadcaster_login = broadcast_json['login']
+            rtmp_conn = 'S:%s' % uuid.uuid4().hex
+        except KeyError:
+            if protected_broadcast:
+                raise ExtractorError(u'Bad broadcast password', expected=True)
+            raise ExtractorError(u'Unexpected broadcast JSON')
+
+        return {
+            'id': broadcast_id,
+            'url': rtmp_url,
+            'title': broadcast_title,
+            'thumbnail': broadcast_thumbnail,
+            'description': broadcast_description,
+            'uploader': broadcaster_nick,
+            'uploader_id': broadcaster_login,
+            'age_limit': 18 if adult_content else 0,
+            'ext': 'flv',
+            'play_path': broadcast_playpath,
+            'rtmp_live': True,
+            'rtmp_conn': rtmp_conn
+        }
diff --git a/youtube_dl/extractor/soundcloud.py b/youtube_dl/extractor/soundcloud.py
index 3a19ab1..e22ff9c 100644
--- a/youtube_dl/extractor/soundcloud.py
+++ b/youtube_dl/extractor/soundcloud.py
@@ -1,3 +1,4 @@
+# encoding: utf-8
 import json
 import re
 import itertools
@@ -23,9 +24,12 @@ class SoundcloudIE(InfoExtractor):
      """
 
     _VALID_URL = r'''^(?:https?://)?
-                    (?:(?:(?:www\.)?soundcloud\.com/([\w\d-]+)/([\w\d-]+)/?(?:[?].*)?$)
+                    (?:(?:(?:www\.|m\.)?soundcloud\.com/
+                            (?P<uploader>[\w\d-]+)/
+                            (?!sets/)(?P<title>[\w\d-]+)/?
+                            (?P<token>[^?]+?)?(?:[?].*)?$)
                        |(?:api\.soundcloud\.com/tracks/(?P<track_id>\d+))
-                       |(?P<widget>w.soundcloud.com/player/?.*?url=.*)
+                       |(?P<widget>w\.soundcloud\.com/player/?.*?url=.*)
                     )
                     '''
     IE_NAME = u'soundcloud'
@@ -56,6 +60,32 @@ class SoundcloudIE(InfoExtractor):
                 u'skip_download': True,
             },
         },
+        # private link
+        {
+            u'url': u'https://soundcloud.com/jaimemf/youtube-dl-test-video-a-y-baw/s-8Pjrp',
+            u'md5': u'aa0dd32bfea9b0c5ef4f02aacd080604',
+            u'info_dict': {
+                u'id': u'123998367',
+                u'ext': u'mp3',
+                u'title': u'Youtube - Dl Test Video \'\' Ä↭',
+                u'uploader': u'jaimeMF',
+                u'description': u'test chars:  \"\'/\\ä↭',
+                u'upload_date': u'20131209',
+            },
+        },
+        # downloadable song
+        {
+            u'url': u'https://soundcloud.com/simgretina/just-your-problem-baby-1',
+            u'md5': u'56a8b69568acaa967b4c49f9d1d52d19',
+            u'info_dict': {
+                u'id': u'105614606',
+                u'ext': u'wav',
+                u'title': u'Just Your Problem Baby (Acapella)',
+                u'description': u'Vocals',
+                u'uploader': u'Sim Gretina',
+                u'upload_date': u'20130815',
+            },
+        },
     ]
 
     _CLIENT_ID = 'b45b1aa10f1ac2941910a7f0d10f8e28'
@@ -73,7 +103,7 @@ class SoundcloudIE(InfoExtractor):
     def _resolv_url(cls, url):
         return 'http://api.soundcloud.com/resolve.json?url=' + url + '&client_id=' + cls._CLIENT_ID
 
-    def _extract_info_dict(self, info, full_title=None, quiet=False):
+    def _extract_info_dict(self, info, full_title=None, quiet=False, secret_token=None):
         track_id = compat_str(info['id'])
         name = full_title or track_id
         if quiet:
@@ -82,7 +112,7 @@ class SoundcloudIE(InfoExtractor):
         thumbnail = info['artwork_url']
         if thumbnail is not None:
             thumbnail = thumbnail.replace('-large', '-t500x500')
-        ext = info.get('original_format', u'mp3')
+        ext = u'mp3'
         result = {
             'id': track_id,
             'uploader': info['user']['username'],
@@ -98,14 +128,16 @@ class SoundcloudIE(InfoExtractor):
                     track_id, self._CLIENT_ID))
             result['formats'] = [{
                 'format_id': 'download',
-                'ext': ext,
+                'ext': info.get('original_format', u'mp3'),
                 'url': format_url,
                 'vcodec': 'none',
             }]
         else:
             # We have to retrieve the url
+            streams_url = ('http://api.soundcloud.com/i1/tracks/{0}/streams?'
+                'client_id={1}&secret_token={2}'.format(track_id, self._IPHONE_CLIENT_ID, secret_token))
             stream_json = self._download_webpage(
-                'http://api.soundcloud.com/i1/tracks/{0}/streams?client_id={1}'.format(track_id, self._IPHONE_CLIENT_ID),
+                streams_url,
                 track_id, u'Downloading track url')
 
             formats = []
@@ -157,6 +189,7 @@ class SoundcloudIE(InfoExtractor):
             raise ExtractorError(u'Invalid URL: %s' % url)
 
         track_id = mobj.group('track_id')
+        token = None
         if track_id is not None:
             info_json_url = 'http://api.soundcloud.com/tracks/' + track_id + '.json?client_id=' + self._CLIENT_ID
             full_title = track_id
@@ -165,19 +198,22 @@ class SoundcloudIE(InfoExtractor):
             return self.url_result(query['url'][0], ie='Soundcloud')
         else:
             # extract uploader (which is in the url)
-            uploader = mobj.group(1)
+            uploader = mobj.group('uploader')
             # extract simple title (uploader + slug of song title)
-            slug_title =  mobj.group(2)
-            full_title = '%s/%s' % (uploader, slug_title)
+            slug_title =  mobj.group('title')
+            token = mobj.group('token')
+            full_title = resolve_title = '%s/%s' % (uploader, slug_title)
+            if token:
+                resolve_title += '/%s' % token
     
             self.report_resolve(full_title)
     
-            url = 'http://soundcloud.com/%s/%s' % (uploader, slug_title)
+            url = 'http://soundcloud.com/%s' % resolve_title
             info_json_url = self._resolv_url(url)
         info_json = self._download_webpage(info_json_url, full_title, u'Downloading info JSON')
 
         info = json.loads(info_json)
-        return self._extract_info_dict(info, full_title)
+        return self._extract_info_dict(info, full_title, secret_token=token)
 
 class SoundcloudSetIE(SoundcloudIE):
     _VALID_URL = r'^(?:https?://)?(?:www\.)?soundcloud\.com/([\w\d-]+)/sets/([\w\d-]+)(?:[?].*)?$'
@@ -217,7 +253,7 @@ class SoundcloudSetIE(SoundcloudIE):
 
 
 class SoundcloudUserIE(SoundcloudIE):
-    _VALID_URL = r'https?://(www\.)?soundcloud.com/(?P<user>[^/]+)(/?(tracks/)?)?(\?.*)?$'
+    _VALID_URL = r'https?://(www\.)?soundcloud\.com/(?P<user>[^/]+)(/?(tracks/)?)?(\?.*)?$'
     IE_NAME = u'soundcloud:user'
 
     # it's in tests/test_playlists.py
diff --git a/youtube_dl/extractor/space.py b/youtube_dl/extractor/space.py
index 0d32a06..11455e0 100644
--- a/youtube_dl/extractor/space.py
+++ b/youtube_dl/extractor/space.py
@@ -6,7 +6,7 @@ from ..utils import RegexNotFoundError, ExtractorError
 
 
 class SpaceIE(InfoExtractor):
-    _VALID_URL = r'https?://www\.space\.com/\d+-(?P<title>[^/\.\?]*?)-video.html'
+    _VALID_URL = r'https?://www\.space\.com/\d+-(?P<title>[^/\.\?]*?)-video\.html'
     _TEST = {
         u'add_ie': ['Brightcove'],
         u'url': u'http://www.space.com/23373-huge-martian-landforms-detail-revealed-by-european-probe-video.html',
diff --git a/youtube_dl/extractor/stanfordoc.py b/youtube_dl/extractor/stanfordoc.py
index b27838b..44c52c7 100644
--- a/youtube_dl/extractor/stanfordoc.py
+++ b/youtube_dl/extractor/stanfordoc.py
@@ -1,14 +1,7 @@
 import re
-import socket
-import xml.etree.ElementTree
 
 from .common import InfoExtractor
 from ..utils import (
-    compat_http_client,
-    compat_str,
-    compat_urllib_error,
-    compat_urllib_request,
-
     ExtractorError,
     orderedSet,
     unescapeHTML,
@@ -18,7 +11,7 @@ from ..utils import (
 class StanfordOpenClassroomIE(InfoExtractor):
     IE_NAME = u'stanfordoc'
     IE_DESC = u'Stanford Open ClassRoom'
-    _VALID_URL = r'^(?:https?://)?openclassroom.stanford.edu(?P<path>/?|(/MainFolder/(?:HomePage|CoursePage|VideoPage)\.php([?]course=(?P<course>[^&]+)(&video=(?P<video>[^&]+))?(&.*)?)?))$'
+    _VALID_URL = r'^(?:https?://)?openclassroom\.stanford\.edu(?P<path>/?|(/MainFolder/(?:HomePage|CoursePage|VideoPage)\.php([?]course=(?P<course>[^&]+)(&video=(?P<video>[^&]+))?(&.*)?)?))$'
     _TEST = {
         u'url': u'http://openclassroom.stanford.edu/MainFolder/VideoPage.php?course=PracticalUnix&video=intro-environment&speed=100',
         u'file': u'PracticalUnix_intro-environment.mp4',
@@ -45,11 +38,7 @@ class StanfordOpenClassroomIE(InfoExtractor):
             self.report_extraction(info['id'])
             baseUrl = 'http://openclassroom.stanford.edu/MainFolder/courses/' + course + '/videos/'
             xmlUrl = baseUrl + video + '.xml'
-            try:
-                metaXml = compat_urllib_request.urlopen(xmlUrl).read()
-            except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
-                raise ExtractorError(u'Unable to download video info XML: %s' % compat_str(err))
-            mdoc = xml.etree.ElementTree.fromstring(metaXml)
+            mdoc = self._download_xml(xmlUrl, info['id'])
             try:
                 info['title'] = mdoc.findall('./title')[0].text
                 info['url'] = baseUrl + mdoc.findall('./videoFile')[0].text
@@ -95,12 +84,9 @@ class StanfordOpenClassroomIE(InfoExtractor):
                 'upload_date': None,
             }
 
-            self.report_download_webpage(info['id'])
             rootURL = 'http://openclassroom.stanford.edu/MainFolder/HomePage.php'
-            try:
-                rootpage = compat_urllib_request.urlopen(rootURL).read()
-            except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
-                raise ExtractorError(u'Unable to download course info page: ' + compat_str(err))
+            rootpage = self._download_webpage(rootURL, info['id'],
+                errnote=u'Unable to download course info page')
 
             info['title'] = info['id']
 
diff --git a/youtube_dl/extractor/tf1.py b/youtube_dl/extractor/tf1.py
index 772134a..2c5c88b 100644
--- a/youtube_dl/extractor/tf1.py
+++ b/youtube_dl/extractor/tf1.py
@@ -7,7 +7,7 @@ from .common import InfoExtractor
 
 class TF1IE(InfoExtractor):
     """TF1 uses the wat.tv player."""
-    _VALID_URL = r'http://videos.tf1.fr/.*-(.*?).html'
+    _VALID_URL = r'http://videos\.tf1\.fr/.*-(.*?)\.html'
     _TEST = {
         u'url': u'http://videos.tf1.fr/auto-moto/citroen-grand-c4-picasso-2013-presentation-officielle-8062060.html',
         u'file': u'10635995.mp4',
diff --git a/youtube_dl/extractor/theplatform.py b/youtube_dl/extractor/theplatform.py
new file mode 100644
index 0000000..cec6526
--- /dev/null
+++ b/youtube_dl/extractor/theplatform.py
@@ -0,0 +1,80 @@
+import re
+import json
+
+from .common import InfoExtractor
+from ..utils import (
+    ExtractorError,
+    xpath_with_ns,
+)
+
+_x = lambda p: xpath_with_ns(p, {'smil': 'http://www.w3.org/2005/SMIL21/Language'})
+
+
+class ThePlatformIE(InfoExtractor):
+    _VALID_URL = r'(?:https?://link\.theplatform\.com/s/[^/]+/|theplatform:)(?P<id>[^/\?]+)'
+
+    _TEST = {
+        # from http://www.metacafe.com/watch/cb-e9I_cZgTgIPd/blackberrys_big_bold_z30/
+        u'url': u'http://link.theplatform.com/s/dJ5BDC/e9I_cZgTgIPd/meta.smil?format=smil&Tracking=true&mbr=true',
+        u'info_dict': {
+            u'id': u'e9I_cZgTgIPd',
+            u'ext': u'flv',
+            u'title': u'Blackberry\'s big, bold Z30',
+            u'description': u'The Z30 is Blackberry\'s biggest, baddest mobile messaging device yet.',
+            u'duration': 247,
+        },
+        u'params': {
+            # rtmp download
+            u'skip_download': True,
+        },
+    }
+
+    def _get_info(self, video_id):
+        smil_url = ('http://link.theplatform.com/s/dJ5BDC/{0}/meta.smil?'
+            'format=smil&mbr=true'.format(video_id))
+        meta = self._download_xml(smil_url, video_id)
+
+        try:
+            error_msg = next(
+                n.attrib['abstract']
+                for n in meta.findall(_x('.//smil:ref'))
+                if n.attrib.get('title') == u'Geographic Restriction')
+        except StopIteration:
+            pass
+        else:
+            raise ExtractorError(error_msg, expected=True)
+
+        info_url = 'http://link.theplatform.com/s/dJ5BDC/{0}?format=preview'.format(video_id)
+        info_json = self._download_webpage(info_url, video_id)
+        info = json.loads(info_json)
+
+        head = meta.find(_x('smil:head'))
+        body = meta.find(_x('smil:body'))
+        base_url = head.find(_x('smil:meta')).attrib['base']
+        switch = body.find(_x('smil:switch'))
+        formats = []
+        for f in switch.findall(_x('smil:video')):
+            attr = f.attrib
+            formats.append({
+                'url': base_url,
+                'play_path': 'mp4:' + attr['src'],
+                'ext': 'flv',
+                'width': int(attr['width']),
+                'height': int(attr['height']),
+                'vbr': int(attr['system-bitrate']),
+            })
+        formats.sort(key=lambda f: (f['height'], f['width'], f['vbr']))
+
+        return {
+            'id': video_id,
+            'title': info['title'],
+            'formats': formats,
+            'description': info['description'],
+            'thumbnail': info['defaultThumbnailUrl'],
+            'duration': info['duration']//1000,
+        }
+        
+    def _real_extract(self, url):
+        mobj = re.match(self._VALID_URL, url)
+        video_id = mobj.group('id')
+        return self._get_info(video_id)
diff --git a/youtube_dl/extractor/unistra.py b/youtube_dl/extractor/unistra.py
index 516e189..474610e 100644
--- a/youtube_dl/extractor/unistra.py
+++ b/youtube_dl/extractor/unistra.py
@@ -3,7 +3,7 @@ import re
 from .common import InfoExtractor
 
 class UnistraIE(InfoExtractor):
-    _VALID_URL = r'http://utv.unistra.fr/(?:index|video).php\?id_video\=(\d+)'
+    _VALID_URL = r'http://utv\.unistra\.fr/(?:index|video)\.php\?id_video\=(\d+)'
 
     _TEST = {
         u'url': u'http://utv.unistra.fr/video.php?id_video=154',
diff --git a/youtube_dl/extractor/vbox7.py b/youtube_dl/extractor/vbox7.py
index 4f803bc..5a136a9 100644
--- a/youtube_dl/extractor/vbox7.py
+++ b/youtube_dl/extractor/vbox7.py
@@ -15,7 +15,7 @@ class Vbox7IE(InfoExtractor):
     _TEST = {
         u'url': u'http://vbox7.com/play:249bb972c2',
         u'file': u'249bb972c2.flv',
-        u'md5': u'9c70d6d956f888bdc08c124acc120cfe',
+        u'md5': u'99f65c0c9ef9b682b97313e052734c3f',
         u'info_dict': {
             u"title": u"\u0421\u043c\u044f\u0445! \u0427\u0443\u0434\u043e - \u0447\u0438\u0441\u0442 \u0437\u0430 \u0441\u0435\u043a\u0443\u043d\u0434\u0438 - \u0421\u043a\u0440\u0438\u0442\u0430 \u043a\u0430\u043c\u0435\u0440\u0430"
         }
diff --git a/youtube_dl/extractor/veehd.py b/youtube_dl/extractor/veehd.py
index 3a99a29..3cf8c85 100644
--- a/youtube_dl/extractor/veehd.py
+++ b/youtube_dl/extractor/veehd.py
@@ -9,7 +9,7 @@ from ..utils import (
 )
 
 class VeeHDIE(InfoExtractor):
-    _VALID_URL = r'https?://veehd.com/video/(?P<id>\d+)'
+    _VALID_URL = r'https?://veehd\.com/video/(?P<id>\d+)'
 
     _TEST = {
         u'url': u'http://veehd.com/video/4686958',
diff --git a/youtube_dl/extractor/vevo.py b/youtube_dl/extractor/vevo.py
index 4378b17..a4b26a2 100644
--- a/youtube_dl/extractor/vevo.py
+++ b/youtube_dl/extractor/vevo.py
@@ -15,7 +15,12 @@ class VevoIE(InfoExtractor):
     Accepts urls from vevo.com or in the format 'vevo:{id}'
     (currently used by MTVIE)
     """
-    _VALID_URL = r'((http://www.vevo.com/watch/.*?/.*?/)|(vevo:))(?P<id>.*?)(\?|$)'
+    _VALID_URL = r'''(?x)
+        (?:https?://www\.vevo\.com/watch/(?:[^/]+/[^/]+/)?|
+           https?://cache\.vevo\.com/m/html/embed\.html\?video=|
+           https?://videoplayer\.vevo\.com/embed/embedded\?videoId=|
+           vevo:)
+        (?P<id>[^&?#]+)'''
     _TESTS = [{
         u'url': u'http://www.vevo.com/watch/hurts/somebody-to-die-for/GB1101300280',
         u'file': u'GB1101300280.mp4',
@@ -24,7 +29,7 @@ class VevoIE(InfoExtractor):
             u"upload_date": u"20130624",
             u"uploader": u"Hurts",
             u"title": u"Somebody to Die For",
-            u"duration": 230,
+            u"duration": 230.12,
             u"width": 1920,
             u"height": 1080,
         }
diff --git a/youtube_dl/extractor/vice.py b/youtube_dl/extractor/vice.py
index 6b93afa..87812d6 100644
--- a/youtube_dl/extractor/vice.py
+++ b/youtube_dl/extractor/vice.py
@@ -6,7 +6,7 @@ from ..utils import ExtractorError
 
 
 class ViceIE(InfoExtractor):
-    _VALID_URL = r'http://www.vice.com/.*?/(?P<name>.+)'
+    _VALID_URL = r'http://www\.vice\.com/.*?/(?P<name>.+)'
 
     _TEST = {
         u'url': u'http://www.vice.com/Fringes/cowboy-capitalists-part-1',
diff --git a/youtube_dl/extractor/viddler.py b/youtube_dl/extractor/viddler.py
index 75335df..9328ef4 100644
--- a/youtube_dl/extractor/viddler.py
+++ b/youtube_dl/extractor/viddler.py
@@ -2,13 +2,10 @@ import json
 import re
 
 from .common import InfoExtractor
-from ..utils import (
-    determine_ext,
-)
 
 
 class ViddlerIE(InfoExtractor):
-    _VALID_URL = r'(?P<domain>https?://(?:www\.)?viddler.com)/(?:v|embed|player)/(?P<id>[a-z0-9]+)'
+    _VALID_URL = r'(?P<domain>https?://(?:www\.)?viddler\.com)/(?:v|embed|player)/(?P<id>[a-z0-9]+)'
     _TEST = {
         u"url": u"http://www.viddler.com/v/43903784",
         u'file': u'43903784.mp4',
diff --git a/youtube_dl/extractor/videofyme.py b/youtube_dl/extractor/videofyme.py
index 912802d..f751690 100644
--- a/youtube_dl/extractor/videofyme.py
+++ b/youtube_dl/extractor/videofyme.py
@@ -7,7 +7,7 @@ from ..utils import (
 )
 
 class VideofyMeIE(InfoExtractor):
-    _VALID_URL = r'https?://(www.videofy.me/.+?|p.videofy.me/v)/(?P<id>\d+)(&|#|$)'
+    _VALID_URL = r'https?://(www\.videofy\.me/.+?|p\.videofy\.me/v)/(?P<id>\d+)(&|#|$)'
     IE_NAME = u'videofy.me'
 
     _TEST = {
diff --git a/youtube_dl/extractor/videopremium.py b/youtube_dl/extractor/videopremium.py
index acae814..65463c7 100644
--- a/youtube_dl/extractor/videopremium.py
+++ b/youtube_dl/extractor/videopremium.py
@@ -15,6 +15,7 @@ class VideoPremiumIE(InfoExtractor):
         u'params': {
             u'skip_download': True,
         },
+        u'skip': u'Test file has been deleted.',
     }
 
     def _real_extract(self, url):
diff --git a/youtube_dl/extractor/vimeo.py b/youtube_dl/extractor/vimeo.py
index f27763a..c3623fc 100644
--- a/youtube_dl/extractor/vimeo.py
+++ b/youtube_dl/extractor/vimeo.py
@@ -16,11 +16,20 @@ from ..utils import (
     unsmuggle_url,
 )
 
+
 class VimeoIE(InfoExtractor):
     """Information extractor for vimeo.com."""
 
     # _VALID_URL matches Vimeo URLs
-    _VALID_URL = r'(?P<proto>https?://)?(?:(?:www|(?P<player>player))\.)?vimeo(?P<pro>pro)?\.com/(?:(?:(?:groups|album)/[^/]+)|(?:.*?)/)?(?P<direct_link>play_redirect_hls\?clip_id=)?(?:videos?/)?(?P<id>[0-9]+)/?(?:[?].*)?(?:#.*)?$'
+    _VALID_URL = r'''(?x)
+        (?P<proto>https?://)?
+        (?:(?:www|(?P<player>player))\.)?
+        vimeo(?P<pro>pro)?\.com/
+        (?:.*?/)?
+        (?:(?:play_redirect_hls|moogaloop\.swf)\?clip_id=)?
+        (?:videos?/)?
+        (?P<id>[0-9]+)
+        /?(?:[?&].*)?(?:[#].*)?$'''
     _NETRC_MACHINE = 'vimeo'
     IE_NAME = u'vimeo'
     _TESTS = [
@@ -115,7 +124,7 @@ class VimeoIE(InfoExtractor):
     def _real_initialize(self):
         self._login()
 
-    def _real_extract(self, url, new_video=True):
+    def _real_extract(self, url):
         url, data = unsmuggle_url(url)
         headers = std_headers
         if data is not None:
@@ -151,8 +160,14 @@ class VimeoIE(InfoExtractor):
                 config = json.loads(config_json)
             except RegexNotFoundError:
                 # For pro videos or player.vimeo.com urls
-                config = self._search_regex([r' = {config:({.+?}),assets:', r'(?:c|b)=({.+?});'],
-                    webpage, u'info section', flags=re.DOTALL)
+                # We try to find out to which variable is assigned the config dic
+                m_variable_name = re.search('(\w)\.video\.id', webpage)
+                if m_variable_name is not None:
+                    config_re = r'%s=({.+?});' % re.escape(m_variable_name.group(1))
+                else:
+                    config_re = [r' = {config:({.+?}),assets:', r'(?:[abc])=({.+?});']
+                config = self._search_regex(config_re, webpage, u'info section',
+                    flags=re.DOTALL)
                 config = json.loads(config)
         except Exception as e:
             if re.search('The creator of this video has not given you permission to embed it on this domain.', webpage):
@@ -196,6 +211,16 @@ class VimeoIE(InfoExtractor):
         if mobj is not None:
             video_upload_date = mobj.group(1) + mobj.group(2) + mobj.group(3)
 
+        try:
+            view_count = int(self._search_regex(r'UserPlays:(\d+)', webpage, u'view count'))
+            like_count = int(self._search_regex(r'UserLikes:(\d+)', webpage, u'like count'))
+            comment_count = int(self._search_regex(r'UserComments:(\d+)', webpage, u'comment count'))
+        except RegexNotFoundError:
+            # This info is only available in vimeo.com/{id} urls
+            view_count = None
+            like_count = None
+            comment_count = None
+
         # Vimeo specific: extract request signature and timestamp
         sig = config['request']['signature']
         timestamp = config['request']['timestamp']
@@ -242,6 +267,9 @@ class VimeoIE(InfoExtractor):
             'description':  video_description,
             'formats': formats,
             'webpage_url': url,
+            'view_count': view_count,
+            'like_count': like_count,
+            'comment_count': comment_count,
         }
 
 
@@ -251,11 +279,17 @@ class VimeoChannelIE(InfoExtractor):
     _MORE_PAGES_INDICATOR = r'<a.+?rel="next"'
     _TITLE_RE = r'<link rel="alternate"[^>]+?title="(.*?)"'
 
+    def _page_url(self, base_url, pagenum):
+        return '%s/videos/page:%d/' % (base_url, pagenum)
+
+    def _extract_list_title(self, webpage):
+        return self._html_search_regex(self._TITLE_RE, webpage, u'list title')
+
     def _extract_videos(self, list_id, base_url):
         video_ids = []
         for pagenum in itertools.count(1):
             webpage = self._download_webpage(
-                '%s/videos/page:%d/' % (base_url, pagenum),list_id,
+                self._page_url(base_url, pagenum) ,list_id,
                 u'Downloading page %s' % pagenum)
             video_ids.extend(re.findall(r'id="clip_(\d+?)"', webpage))
             if re.search(self._MORE_PAGES_INDICATOR, webpage, re.DOTALL) is None:
@@ -263,11 +297,9 @@ class VimeoChannelIE(InfoExtractor):
 
         entries = [self.url_result('http://vimeo.com/%s' % video_id, 'Vimeo')
                    for video_id in video_ids]
-        list_title = self._html_search_regex(self._TITLE_RE, webpage,
-            u'list title')
         return {'_type': 'playlist',
                 'id': list_id,
-                'title': list_title,
+                'title': self._extract_list_title(webpage),
                 'entries': entries,
                 }
 
@@ -284,7 +316,7 @@ class VimeoUserIE(VimeoChannelIE):
 
     @classmethod
     def suitable(cls, url):
-        if VimeoChannelIE.suitable(url) or VimeoIE.suitable(url):
+        if VimeoChannelIE.suitable(url) or VimeoIE.suitable(url) or VimeoAlbumIE.suitable(url) or VimeoGroupsIE.suitable(url):
             return False
         return super(VimeoUserIE, cls).suitable(url)
 
@@ -292,3 +324,30 @@ class VimeoUserIE(VimeoChannelIE):
         mobj = re.match(self._VALID_URL, url)
         name = mobj.group('name')
         return self._extract_videos(name, 'http://vimeo.com/%s' % name)
+
+
+class VimeoAlbumIE(VimeoChannelIE):
+    IE_NAME = u'vimeo:album'
+    _VALID_URL = r'(?:https?://)?vimeo.\com/album/(?P<id>\d+)'
+    _TITLE_RE = r'<header id="page_header">\n\s*<h1>(.*?)</h1>'
+
+    def _page_url(self, base_url, pagenum):
+        return '%s/page:%d/' % (base_url, pagenum)
+
+    def _real_extract(self, url):
+        mobj = re.match(self._VALID_URL, url)
+        album_id =  mobj.group('id')
+        return self._extract_videos(album_id, 'http://vimeo.com/album/%s' % album_id)
+
+
+class VimeoGroupsIE(VimeoAlbumIE):
+    IE_NAME = u'vimeo:group'
+    _VALID_URL = r'(?:https?://)?vimeo.\com/groups/(?P<name>[^/]+)'
+
+    def _extract_list_title(self, webpage):
+        return self._og_search_title(webpage)
+
+    def _real_extract(self, url):
+        mobj = re.match(self._VALID_URL, url)
+        name = mobj.group('name')
+        return self._extract_videos(name, 'http://vimeo.com/groups/%s' % name)
diff --git a/youtube_dl/extractor/wat.py b/youtube_dl/extractor/wat.py
index 29c25f0..4fab6c6 100644
--- a/youtube_dl/extractor/wat.py
+++ b/youtube_dl/extractor/wat.py
@@ -11,7 +11,7 @@ from ..utils import (
 
 
 class WatIE(InfoExtractor):
-    _VALID_URL=r'http://www.wat.tv/.*-(?P<shortID>.*?)_.*?.html'
+    _VALID_URL=r'http://www\.wat\.tv/.*-(?P<shortID>.*?)_.*?\.html'
     IE_NAME = 'wat.tv'
     _TEST = {
         u'url': u'http://www.wat.tv/video/world-war-philadelphia-vost-6bv55_2fjr7_.html',
diff --git a/youtube_dl/extractor/wimp.py b/youtube_dl/extractor/wimp.py
index b9c3b13..82a626e 100644
--- a/youtube_dl/extractor/wimp.py
+++ b/youtube_dl/extractor/wimp.py
@@ -11,7 +11,8 @@ class WimpIE(InfoExtractor):
         u'file': u'deerfence.flv',
         u'md5': u'8b215e2e0168c6081a1cf84b2846a2b5',
         u'info_dict': {
-            u"title": u"Watch Till End: Herd of deer jump over a fence."
+            u"title": u"Watch Till End: Herd of deer jump over a fence.",
+            u"description": u"These deer look as fluid as running water when they jump over this fence as a herd. This video is one that needs to be watched until the very end for the true majesty to be witnessed, but once it comes, it's sure to take your breath away.",
         }
     }
 
@@ -19,18 +20,14 @@ class WimpIE(InfoExtractor):
         mobj = re.match(self._VALID_URL, url)
         video_id = mobj.group(1)
         webpage = self._download_webpage(url, video_id)
-        title = self._search_regex(r'<meta name="description" content="(.+?)" />',webpage, 'video title')
-        thumbnail_url = self._search_regex(r'<meta property="og\:image" content="(.+?)" />', webpage,'video thumbnail')
         googleString = self._search_regex("googleCode = '(.*?)'", webpage, 'file url')
         googleString = base64.b64decode(googleString).decode('ascii')
-        final_url = self._search_regex('","(.*?)"', googleString,'final video url')
-        ext = final_url.rpartition(u'.')[2]
-
-        return [{
-            'id':        video_id,
-            'url':       final_url,
-            'ext':       ext,
-            'title':     title,
-            'thumbnail': thumbnail_url,
-        }]
+        final_url = self._search_regex('","(.*?)"', googleString, u'final video url')
 
+        return {
+            'id': video_id,
+            'url': final_url,
+            'title': self._og_search_title(webpage),
+            'thumbnail': self._og_search_thumbnail(webpage),
+            'description': self._og_search_description(webpage),
+        }
diff --git a/youtube_dl/extractor/wistia.py b/youtube_dl/extractor/wistia.py
new file mode 100644
index 0000000..e1748c2
--- /dev/null
+++ b/youtube_dl/extractor/wistia.py
@@ -0,0 +1,55 @@
+import json
+import re
+
+from .common import InfoExtractor
+
+
+class WistiaIE(InfoExtractor):
+    _VALID_URL = r'^https?://(?:fast\.)?wistia\.net/embed/iframe/(?P<id>[a-z0-9]+)'
+
+    _TEST = {
+        u"url": u"http://fast.wistia.net/embed/iframe/sh7fpupwlt",
+        u"file": u"sh7fpupwlt.mov",
+        u"md5": u"cafeb56ec0c53c18c97405eecb3133df",
+        u"info_dict": {
+            u"title": u"cfh_resourceful_zdkh_final_1"
+        },
+    }
+
+    def _real_extract(self, url):
+        mobj = re.match(self._VALID_URL, url)
+        video_id = mobj.group('id')
+
+        webpage = self._download_webpage(url, video_id)
+        data_json = self._html_search_regex(
+            r'Wistia.iframeInit\((.*?), {}\);', webpage, u'video data')
+
+        data = json.loads(data_json)
+
+        formats = []
+        thumbnails = []
+        for atype, a in data['assets'].items():
+            if atype == 'still':
+                thumbnails.append({
+                    'url': a['url'],
+                    'resolution': '%dx%d' % (a['width'], a['height']),
+                })
+                continue
+            if atype == 'preview':
+                continue
+            formats.append({
+                'format_id': atype,
+                'url': a['url'],
+                'width': a['width'],
+                'height': a['height'],
+                'filesize': a['size'],
+                'ext': a['ext'],
+            })
+        formats.sort(key=lambda a: a['filesize'])
+
+        return {
+            'id': video_id,
+            'title': data['name'],
+            'formats': formats,
+            'thumbnails': thumbnails,
+        }
diff --git a/youtube_dl/extractor/xhamster.py b/youtube_dl/extractor/xhamster.py
index 279f75e..ef9997e 100644
--- a/youtube_dl/extractor/xhamster.py
+++ b/youtube_dl/extractor/xhamster.py
@@ -26,7 +26,7 @@ class XHamsterIE(InfoExtractor):
     {
         u'url': u'http://xhamster.com/movies/2221348/britney_spears_sexy_booty.html?hd',
         u'file': u'2221348.flv',
-        u'md5': u'970a94178ca4118c5aa3aaea21211b81',
+        u'md5': u'e767b9475de189320f691f49c679c4c7',
         u'info_dict': {
             u"upload_date": u"20130914",
             u"uploader_id": u"jojo747400",
@@ -46,7 +46,7 @@ class XHamsterIE(InfoExtractor):
                 return mobj.group('server')+'/key='+mobj.group('file')
 
         def is_hd(webpage):
-            return webpage.find('<div class=\'icon iconHD\'>') != -1
+            return webpage.find('<div class=\'icon iconHD\'') != -1
 
         mobj = re.match(self._VALID_URL, url)
 
diff --git a/youtube_dl/extractor/xtube.py b/youtube_dl/extractor/xtube.py
index e3458d2..1a6a768 100644
--- a/youtube_dl/extractor/xtube.py
+++ b/youtube_dl/extractor/xtube.py
@@ -32,7 +32,7 @@ class XTubeIE(InfoExtractor):
 
         video_title = self._html_search_regex(r'<div class="p_5px[^>]*>([^<]+)', webpage, u'title')
         video_uploader = self._html_search_regex(r'so_s\.addVariable\("owner_u", "([^"]+)', webpage, u'uploader', fatal=False)
-        video_description = self._html_search_regex(r'<p class="video_description">([^<]+)', webpage, u'description', default=None)
+        video_description = self._html_search_regex(r'<p class="video_description">([^<]+)', webpage, u'description', fatal=False)
         video_url= self._html_search_regex(r'var videoMp4 = "([^"]+)', webpage, u'video_url').replace('\\/', '/')
         path = compat_urllib_parse_urlparse(video_url).path
         extension = os.path.splitext(path)[1][1:]
diff --git a/youtube_dl/extractor/yahoo.py b/youtube_dl/extractor/yahoo.py
index e457c47..5c9c361 100644
--- a/youtube_dl/extractor/yahoo.py
+++ b/youtube_dl/extractor/yahoo.py
@@ -47,7 +47,7 @@ class YahooIE(InfoExtractor):
         # The 'meta' field is not always in the video webpage, we request it
         # from another page
         long_id = info['id']
-        return self._get_info(info['id'], video_id)
+        return self._get_info(long_id, video_id)
 
     def _get_info(self, long_id, video_id):
         query = ('SELECT * FROM yahoo.media.video.streams WHERE id="%s"'
diff --git a/youtube_dl/extractor/youjizz.py b/youtube_dl/extractor/youjizz.py
index 1fcc518..e971b5b 100644
--- a/youtube_dl/extractor/youjizz.py
+++ b/youtube_dl/extractor/youjizz.py
@@ -7,7 +7,7 @@ from ..utils import (
 
 
 class YouJizzIE(InfoExtractor):
-    _VALID_URL = r'^(?:https?://)?(?:\w+\.)?youjizz\.com/videos/(?P<videoid>[^.]+).html$'
+    _VALID_URL = r'^(?:https?://)?(?:\w+\.)?youjizz\.com/videos/(?P<videoid>[^.]+)\.html$'
     _TEST = {
         u'url': u'http://www.youjizz.com/videos/zeichentrick-1-2189178.html',
         u'file': u'2189178.flv',
diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py
index 7fff761..a685765 100644
--- a/youtube_dl/extractor/youtube.py
+++ b/youtube_dl/extractor/youtube.py
@@ -7,7 +7,6 @@ import itertools
 import json
 import os.path
 import re
-import socket
 import string
 import struct
 import traceback
@@ -17,9 +16,7 @@ from .common import InfoExtractor, SearchInfoExtractor
 from .subtitles import SubtitlesInfoExtractor
 from ..utils import (
     compat_chr,
-    compat_http_client,
     compat_parse_qs,
-    compat_urllib_error,
     compat_urllib_parse,
     compat_urllib_request,
     compat_urlparse,
@@ -45,19 +42,11 @@ class YoutubeBaseInfoExtractor(InfoExtractor):
     # If True it will raise an error if no login info is provided
     _LOGIN_REQUIRED = False
 
-    def report_lang(self):
-        """Report attempt to set language."""
-        self.to_screen(u'Setting language')
-
     def _set_language(self):
-        request = compat_urllib_request.Request(self._LANG_URL)
-        try:
-            self.report_lang()
-            compat_urllib_request.urlopen(request).read()
-        except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
-            self._downloader.report_warning(u'unable to set language: %s' % compat_str(err))
-            return False
-        return True
+        return bool(self._download_webpage(
+            self._LANG_URL, None,
+            note=u'Setting language', errnote='unable to set language',
+            fatal=False))
 
     def _login(self):
         (username, password) = self._get_login_info()
@@ -67,12 +56,12 @@ class YoutubeBaseInfoExtractor(InfoExtractor):
                 raise ExtractorError(u'No login info available, needed for using %s.' % self.IE_NAME, expected=True)
             return False
 
-        request = compat_urllib_request.Request(self._LOGIN_URL)
-        try:
-            login_page = compat_urllib_request.urlopen(request).read().decode('utf-8')
-        except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
-            self._downloader.report_warning(u'unable to fetch login page: %s' % compat_str(err))
-            return False
+        login_page = self._download_webpage(
+            self._LOGIN_URL, None,
+            note=u'Downloading login page',
+            errnote=u'unable to fetch login page', fatal=False)
+        if login_page is False:
+            return
 
         galx = self._search_regex(r'(?s)<input.+?name="GALX".+?value="(.+?)"',
                                   login_page, u'Login GALX parameter')
@@ -102,29 +91,28 @@ class YoutubeBaseInfoExtractor(InfoExtractor):
         # chokes on unicode
         login_form = dict((k.encode('utf-8'), v.encode('utf-8')) for k,v in login_form_strs.items())
         login_data = compat_urllib_parse.urlencode(login_form).encode('ascii')
-        request = compat_urllib_request.Request(self._LOGIN_URL, login_data)
-        try:
-            self.report_login()
-            login_results = compat_urllib_request.urlopen(request).read().decode('utf-8')
-            if re.search(r'(?i)<form[^>]* id="gaia_loginform"', login_results) is not None:
-                self._downloader.report_warning(u'unable to log in: bad username or password')
-                return False
-        except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
-            self._downloader.report_warning(u'unable to log in: %s' % compat_str(err))
+
+        req = compat_urllib_request.Request(self._LOGIN_URL, login_data)
+        login_results = self._download_webpage(
+            req, None,
+            note=u'Logging in', errnote=u'unable to log in', fatal=False)
+        if login_results is False:
+            return False
+        if re.search(r'(?i)<form[^>]* id="gaia_loginform"', login_results) is not None:
+            self._downloader.report_warning(u'unable to log in: bad username or password')
             return False
         return True
 
     def _confirm_age(self):
         age_form = {
-                'next_url':     '/',
-                'action_confirm':   'Confirm',
-                }
-        request = compat_urllib_request.Request(self._AGE_URL, compat_urllib_parse.urlencode(age_form))
-        try:
-            self.report_age_confirmation()
-            compat_urllib_request.urlopen(request).read().decode('utf-8')
-        except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
-            raise ExtractorError(u'Unable to confirm age: %s' % compat_str(err))
+            'next_url': '/',
+            'action_confirm': 'Confirm',
+        }
+        req = compat_urllib_request.Request(self._AGE_URL, compat_urllib_parse.urlencode(age_form))
+
+        self._download_webpage(
+            req, None,
+            note=u'Confirming age', errnote=u'Unable to confirm age')
         return True
 
     def _real_initialize(self):
@@ -388,10 +376,6 @@ class YoutubeIE(YoutubeBaseInfoExtractor, SubtitlesInfoExtractor):
         super(YoutubeIE, self).__init__(*args, **kwargs)
         self._player_cache = {}
 
-    def report_video_webpage_download(self, video_id):
-        """Report attempt to download video webpage."""
-        self.to_screen(u'%s: Downloading video webpage' % video_id)
-
     def report_video_info_webpage_download(self, video_id):
         """Report attempt to download video info webpage."""
         self.to_screen(u'%s: Downloading video info webpage' % video_id)
@@ -1258,15 +1242,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor, SubtitlesInfoExtractor):
         video_id = self._extract_id(url)
 
         # Get video webpage
-        self.report_video_webpage_download(video_id)
         url = 'https://www.youtube.com/watch?v=%s&gl=US&hl=en&has_verified=1' % video_id
-        request = compat_urllib_request.Request(url)
-        try:
-            video_webpage_bytes = compat_urllib_request.urlopen(request).read()
-        except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
-            raise ExtractorError(u'Unable to download video webpage: %s' % compat_str(err))
-
-        video_webpage = video_webpage_bytes.decode('utf-8', 'ignore')
+        video_webpage = self._download_webpage(url, video_id)
 
         # Attempt to extract SWF player URL
         mobj = re.search(r'swfConfig.*?"(https?:\\/\\/.*?watch.*?-.*?\.swf)"', video_webpage)
@@ -1383,6 +1360,16 @@ class YoutubeIE(YoutubeBaseInfoExtractor, SubtitlesInfoExtractor):
             else:
                 video_description = u''
 
+        def _extract_count(klass):
+            count = self._search_regex(
+                r'class="%s">([\d,]+)</span>' % re.escape(klass),
+                video_webpage, klass, default=None)
+            if count is not None:
+                return int(count.replace(',', ''))
+            return None
+        like_count = _extract_count(u'likes-count')
+        dislike_count = _extract_count(u'dislikes-count')
+
         # subtitles
         video_subtitles = self.extract_subtitles(video_id, video_webpage)
 
@@ -1392,9 +1379,9 @@ class YoutubeIE(YoutubeBaseInfoExtractor, SubtitlesInfoExtractor):
 
         if 'length_seconds' not in video_info:
             self._downloader.report_warning(u'unable to extract video duration')
-            video_duration = ''
+            video_duration = None
         else:
-            video_duration = compat_urllib_parse.unquote_plus(video_info['length_seconds'][0])
+            video_duration = int(compat_urllib_parse.unquote_plus(video_info['length_seconds'][0]))
 
         # annotations
         video_annotations = None
@@ -1515,6 +1502,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor, SubtitlesInfoExtractor):
                 'annotations':  video_annotations,
                 'webpage_url': 'https://www.youtube.com/watch?v=%s' % video_id,
                 'view_count': view_count,
+                'like_count': like_count,
+                'dislike_count': dislike_count,
             })
         return results
 
@@ -1529,10 +1518,10 @@ class YoutubePlaylistIE(YoutubeBaseInfoExtractor):
                            \? (?:.*?&)*? (?:p|a|list)=
                         |  p/
                         )
-                        ((?:PL|EC|UU|FL)?[0-9A-Za-z-_]{10,})
+                        ((?:PL|EC|UU|FL|RD)?[0-9A-Za-z-_]{10,})
                         .*
                      |
-                        ((?:PL|EC|UU|FL)[0-9A-Za-z-_]{10,})
+                        ((?:PL|EC|UU|FL|RD)[0-9A-Za-z-_]{10,})
                      )"""
     _TEMPLATE_URL = 'https://www.youtube.com/playlist?list=%s&page=%s'
     _MORE_PAGES_INDICATOR = r'data-link-type="next"'
@@ -1554,7 +1543,7 @@ class YoutubePlaylistIE(YoutubeBaseInfoExtractor):
     def _extract_mix(self, playlist_id):
         # The mixes are generated from a a single video
         # the id of the playlist is just 'RD' + video_id
-        url = 'https://youtube.com/watch?v=%s&list=%s' % (playlist_id[2:], playlist_id)
+        url = 'https://youtube.com/watch?v=%s&list=%s' % (playlist_id[-11:], playlist_id)
         webpage = self._download_webpage(url, playlist_id, u'Downloading Youtube mix')
         title_span = (get_element_by_attribute('class', 'title long-title', webpage) or
             get_element_by_attribute('class', 'title ', webpage))
@@ -1582,9 +1571,12 @@ class YoutubePlaylistIE(YoutubeBaseInfoExtractor):
             else:
                 self.to_screen(u'Downloading playlist PL%s - add --no-playlist to just download video %s' % (playlist_id, video_id))
 
-        if len(playlist_id) == 13:  # 'RD' + 11 characters for the video id
+        if playlist_id.startswith('RD'):
             # Mixes require a custom extraction process
             return self._extract_mix(playlist_id)
+        if playlist_id.startswith('TL'):
+            raise ExtractorError(u'For downloading YouTube.com top lists, use '
+                u'the "yttoplist" keyword, for example "youtube-dl \'yttoplist:music:Top Tracks\'"', expected=True)
 
         # Extract the video ids from the playlist pages
         ids = []
@@ -1607,6 +1599,38 @@ class YoutubePlaylistIE(YoutubeBaseInfoExtractor):
         return self.playlist_result(url_results, playlist_id, playlist_title)
 
 
+class YoutubeTopListIE(YoutubePlaylistIE):
+    IE_NAME = u'youtube:toplist'
+    IE_DESC = (u'YouTube.com top lists, "yttoplist:{channel}:{list title}"'
+        u' (Example: "yttoplist:music:Top Tracks")')
+    _VALID_URL = r'yttoplist:(?P<chann>.*?):(?P<title>.*?)$'
+
+    def _real_extract(self, url):
+        mobj = re.match(self._VALID_URL, url)
+        channel = mobj.group('chann')
+        title = mobj.group('title')
+        query = compat_urllib_parse.urlencode({'title': title})
+        playlist_re = 'href="([^"]+?%s[^"]+?)"' % re.escape(query)
+        channel_page = self._download_webpage('https://www.youtube.com/%s' % channel, title)
+        link = self._html_search_regex(playlist_re, channel_page, u'list')
+        url = compat_urlparse.urljoin('https://www.youtube.com/', link)
+        
+        video_re = r'data-index="\d+".*?data-video-id="([0-9A-Za-z_-]{11})"'
+        ids = []
+        # sometimes the webpage doesn't contain the videos
+        # retry until we get them
+        for i in itertools.count(0):
+            msg = u'Downloading Youtube mix'
+            if i > 0:
+                msg += ', retry #%d' % i
+            webpage = self._download_webpage(url, title, msg)
+            ids = orderedSet(re.findall(video_re, webpage))
+            if ids:
+                break
+        url_results = self._ids_to_results(ids)
+        return self.playlist_result(url_results, playlist_title=title)
+
+
 class YoutubeChannelIE(InfoExtractor):
     IE_DESC = u'YouTube.com channels'
     _VALID_URL = r"^(?:https?://)?(?:youtu\.be|(?:\w+\.)?youtube(?:-nocookie)?\.com)/channel/([0-9A-Za-z_-]+)"
@@ -1632,10 +1656,11 @@ class YoutubeChannelIE(InfoExtractor):
         video_ids = []
         url = 'https://www.youtube.com/channel/%s/videos' % channel_id
         channel_page = self._download_webpage(url, channel_id)
-        if re.search(r'channel-header-autogenerated-label', channel_page) is not None:
-            autogenerated = True
-        else:
-            autogenerated = False
+        autogenerated = re.search(r'''(?x)
+                class="[^"]*?(?:
+                    channel-header-autogenerated-label|
+                    yt-channel-title-autogenerated
+                )[^"]*"''', channel_page) is not None
 
         if autogenerated:
             # The videos are contained in a single page
@@ -1692,7 +1717,7 @@ class YoutubeUserIE(InfoExtractor):
         # page by page until there are no video ids - it means we got
         # all of them.
 
-        video_ids = []
+        url_results = []
 
         for pagenum in itertools.count(0):
             start_index = pagenum * self._GDATA_PAGE_SIZE + 1
@@ -1710,10 +1735,17 @@ class YoutubeUserIE(InfoExtractor):
                 break
 
             # Extract video identifiers
-            ids_in_page = []
-            for entry in response['feed']['entry']:
-                ids_in_page.append(entry['id']['$t'].split('/')[-1])
-            video_ids.extend(ids_in_page)
+            entries = response['feed']['entry']
+            for entry in entries:
+                title = entry['title']['$t']
+                video_id = entry['id']['$t'].split('/')[-1]
+                url_results.append({
+                    '_type': 'url',
+                    'url': video_id,
+                    'ie_key': 'Youtube',
+                    'id': 'video_id',
+                    'title': title,
+                })
 
             # A little optimization - if current page is not
             # "full", ie. does not contain PAGE_SIZE video ids then
@@ -1721,12 +1753,9 @@ class YoutubeUserIE(InfoExtractor):
             # are no more ids on further pages - no need to query
             # again.
 
-            if len(ids_in_page) < self._GDATA_PAGE_SIZE:
+            if len(entries) < self._GDATA_PAGE_SIZE:
                 break
 
-        url_results = [
-            self.url_result(video_id, 'Youtube', video_id=video_id)
-            for video_id in video_ids]
         return self.playlist_result(url_results, playlist_title=username)
 
 
@@ -1737,10 +1766,6 @@ class YoutubeSearchIE(SearchInfoExtractor):
     IE_NAME = u'youtube:search'
     _SEARCH_KEY = 'ytsearch'
 
-    def report_download_page(self, query, pagenum):
-        """Report attempt to download search page with given number."""
-        self._downloader.to_screen(u'[youtube] query "%s": Downloading page %s' % (query, pagenum))
-
     def _get_n_results(self, query, n):
         """Get a specified number of results for a query"""
 
@@ -1749,16 +1774,15 @@ class YoutubeSearchIE(SearchInfoExtractor):
         limit = n
 
         while (50 * pagenum) < limit:
-            self.report_download_page(query, pagenum+1)
             result_url = self._API_URL % (compat_urllib_parse.quote_plus(query), (50*pagenum)+1)
-            request = compat_urllib_request.Request(result_url)
-            try:
-                data = compat_urllib_request.urlopen(request).read().decode('utf-8')
-            except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
-                raise ExtractorError(u'Unable to download API page: %s' % compat_str(err))
-            api_response = json.loads(data)['data']
-
-            if not 'items' in api_response:
+            data_json = self._download_webpage(
+                result_url, video_id=u'query "%s"' % query,
+                note=u'Downloading page %s' % (pagenum + 1),
+                errnote=u'Unable to download API page')
+            data = json.loads(data_json)
+            api_response = data['data']
+
+            if 'items' not in api_response:
                 raise ExtractorError(u'[youtube] No video results')
 
             new_ids = list(video['id'] for video in api_response['items'])
diff --git a/youtube_dl/extractor/zdf.py b/youtube_dl/extractor/zdf.py
index 689f197..35ece35 100644
--- a/youtube_dl/extractor/zdf.py
+++ b/youtube_dl/extractor/zdf.py
@@ -73,14 +73,14 @@ class ZDFIE(InfoExtractor):
             try:
                 proto_pref = -PROTO_ORDER.index(format_m.group('proto'))
             except ValueError:
-                proto_pref = 999
+                proto_pref = -999
 
             quality = fnode.find('./quality').text
             QUALITY_ORDER = ['veryhigh', '300', 'high', 'med', 'low']
             try:
                 quality_pref = -QUALITY_ORDER.index(quality)
             except ValueError:
-                quality_pref = 999
+                quality_pref = -999
 
             abr = int(fnode.find('./audioBitrate').text) // 1000
             vbr = int(fnode.find('./videoBitrate').text) // 1000
diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py
index c486ef8..2e48f18 100644
--- a/youtube_dl/utils.py
+++ b/youtube_dl/utils.py
@@ -1,6 +1,7 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
+import ctypes
 import datetime
 import email.utils
 import errno
@@ -15,9 +16,9 @@ import platform
 import re
 import ssl
 import socket
+import subprocess
 import sys
 import traceback
-import xml.etree.ElementTree
 import zlib
 
 try:
@@ -548,7 +549,7 @@ def make_HTTPS_handler(opts_no_check_certificate):
 
             def connect(self):
                 sock = socket.create_connection((self.host, self.port), self.timeout)
-                if self._tunnel_host:
+                if getattr(self, '_tunnel_host', False):
                     self.sock = sock
                     self._tunnel()
                 try:
@@ -562,11 +563,14 @@ def make_HTTPS_handler(opts_no_check_certificate):
         return HTTPSHandlerV3()
     else:
         context = ssl.SSLContext(ssl.PROTOCOL_SSLv3)
-        context.set_default_verify_paths()
-        
         context.verify_mode = (ssl.CERT_NONE
                                if opts_no_check_certificate
                                else ssl.CERT_REQUIRED)
+        context.set_default_verify_paths()
+        try:
+            context.load_default_certs()
+        except AttributeError:
+            pass  # Python < 3.4
         return compat_urllib_request.HTTPSHandler(context=context)
 
 class ExtractorError(Exception):
@@ -763,6 +767,10 @@ def unified_strdate(date_str):
             upload_date = datetime.datetime.strptime(date_str, expression).strftime('%Y%m%d')
         except:
             pass
+    if upload_date is None:
+        timetuple = email.utils.parsedate_tz(date_str)
+        if timetuple:
+            upload_date = datetime.datetime(*timetuple[:6]).strftime('%Y%m%d')
     return upload_date
 
 def determine_ext(url, default_ext=u'unknown_video'):
@@ -1021,3 +1029,72 @@ def format_bytes(bytes):
     suffix = [u'B', u'KiB', u'MiB', u'GiB', u'TiB', u'PiB', u'EiB', u'ZiB', u'YiB'][exponent]
     converted = float(bytes) / float(1024 ** exponent)
     return u'%.2f%s' % (converted, suffix)
+
+
+def str_to_int(int_str):
+    int_str = re.sub(r'[,\.]', u'', int_str)
+    return int(int_str)
+
+
+def get_term_width():
+    columns = os.environ.get('COLUMNS', None)
+    if columns:
+        return int(columns)
+
+    try:
+        sp = subprocess.Popen(
+            ['stty', 'size'],
+            stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+        out, err = sp.communicate()
+        return int(out.split()[1])
+    except:
+        pass
+    return None
+
+
+def month_by_name(name):
+    """ Return the number of a month by (locale-independently) English name """
+
+    ENGLISH_NAMES = [
+        u'January', u'February', u'March', u'April', u'May', u'June',
+        u'July', u'August', u'September', u'October', u'November', u'December']
+    try:
+        return ENGLISH_NAMES.index(name) + 1
+    except ValueError:
+        return None
+
+
+def fix_xml_all_ampersand(xml_str):
+    """Replace all the '&' by '&amp;' in XML"""
+    return xml_str.replace(u'&', u'&amp;')
+
+
+def setproctitle(title):
+    assert isinstance(title, type(u''))
+    try:
+        libc = ctypes.cdll.LoadLibrary("libc.so.6")
+    except OSError:
+        return
+    title = title
+    buf = ctypes.create_string_buffer(len(title) + 1)
+    buf.value = title.encode('utf-8')
+    try:
+        libc.prctl(15, ctypes.byref(buf), 0, 0, 0)
+    except AttributeError:
+        return  # Strange libc, just skip this
+
+
+def remove_start(s, start):
+    if s.startswith(start):
+        return s[len(start):]
+    return s
+
+
+def url_basename(url):
+    path = compat_urlparse.urlparse(url).path
+    return path.strip(u'/').split(u'/')[-1]
+
+
+class HEADRequest(compat_urllib_request.Request):
+    def get_method(self):
+        return "HEAD"
diff --git a/youtube_dl/version.py b/youtube_dl/version.py
index 68b30bf..24855bc 100644
--- a/youtube_dl/version.py
+++ b/youtube_dl/version.py
@@ -1,2 +1,2 @@
 
-__version__ = '2013.12.04'
+__version__ = '2013.12.23'
-- 
2.41.3