diff options
-rw-r--r-- | .travis.yml | 12 | ||||
-rw-r--r-- | LATEST_VERSION | 1 | ||||
-rwxr-xr-x | bin/youtube-dl | 6 | ||||
-rw-r--r-- | build_exe.py | 48 | ||||
-rw-r--r-- | setup.py | 65 | ||||
-rwxr-xr-x | test/gentests.py | 2 | ||||
-rw-r--r-- | test/test_download.py | 12 | ||||
-rw-r--r-- | test/tests.json | 10 | ||||
-rwxr-xr-x | youtube-dl | bin | 46327 -> 91 bytes | |||
-rw-r--r-- | youtube-dl.1 | 306 | ||||
-rw-r--r-- | youtube-dl.exe | bin | 3989886 -> 0 bytes |
11 files changed, 91 insertions, 371 deletions
diff --git a/.travis.yml b/.travis.yml index 03947b1eb..c6c758fd5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,13 @@ language: python -#specify the python version python: - "2.6" - "2.7" -#command to install the setup -install: -# command to run tests +# - "3.3" script: nosetests test --nocapture +notifications: + email: + - filippo.valsorda@gmail.com + irc: + channels: + - "irc.freenode.org#youtube-dl" + skip_join: true diff --git a/LATEST_VERSION b/LATEST_VERSION deleted file mode 100644 index d645a4c7a..000000000 --- a/LATEST_VERSION +++ /dev/null @@ -1 +0,0 @@ -2012.11.29 diff --git a/bin/youtube-dl b/bin/youtube-dl new file mode 100755 index 000000000..fc3cc8ad8 --- /dev/null +++ b/bin/youtube-dl @@ -0,0 +1,6 @@ +#!/usr/bin/env python + +import youtube_dl + +if __name__ == '__main__': + youtube_dl.main() diff --git a/build_exe.py b/build_exe.py deleted file mode 100644 index 9fa8186cb..000000000 --- a/build_exe.py +++ /dev/null @@ -1,48 +0,0 @@ -from distutils.core import setup -import py2exe -import sys, os - -"""This will create an exe that needs Microsoft Visual C++ 2008 Redistributable Package""" - -# If run without args, build executables -if len(sys.argv) == 1: - sys.argv.append("py2exe") - -# os.chdir(os.path.dirname(os.path.abspath(sys.argv[0]))) # conflict with wine-py2exe.sh -sys.path.append('./youtube_dl') - -options = { - "bundle_files": 1, - "compressed": 1, - "optimize": 2, - "dist_dir": '.', - "dll_excludes": ['w9xpopen.exe'] -} - -console = [{ - "script":"./youtube_dl/__main__.py", - "dest_base": "youtube-dl", -}] - -init_file = open('./youtube_dl/__init__.py') -for line in init_file.readlines(): - if line.startswith('__version__'): - version = line[11:].strip(" ='\n") - break -else: - version = '' - -setup(name='youtube-dl', - version=version, - description='Small command-line program to download videos from YouTube.com and other video sites', - url='https://github.com/rg3/youtube-dl', - packages=['youtube_dl'], - - console = console, - options = {"py2exe": options}, - zipfile = None, -) - -import shutil -shutil.rmtree("build") - diff --git a/setup.py b/setup.py new file mode 100644 index 000000000..ec63bedde --- /dev/null +++ b/setup.py @@ -0,0 +1,65 @@ +from distutils.core import setup, Command +import sys +try: + import py2exe +except ImportError: + sys.stderr.write("Cannot import py2exe") +import subprocess + +"""The p2exe option will create an exe that needs Microsoft Visual C++ 2008 Redistributable Package. + python setup.py py2exe + You can also build a zip executable with + python setup.py bdist --format=zip + + The test suite can be run with + python setup.py test + + + The actual version is defined by the last git tag +""" + +# If run without args, build executables +#if len(sys.argv) == 1: +# sys.argv.append("py2exe") + +# os.chdir(os.path.dirname(os.path.abspath(sys.argv[0]))) # conflict with wine-py2exe.sh +#sys.path.append('./youtube_dl') + +options = { + "bundle_files": 1, + "compressed": 1, + "optimize": 2, + "dist_dir": '.', + "dll_excludes": ['w9xpopen.exe'] +} + +console = [{ + "script":"./youtube_dl/__main__.py", + "dest_base": "youtube-dl", +}] + +init_file = open('./youtube_dl/__init__.py') + +try: + #return the last tag name + version = subprocess.checkoutput(["git", "describe", "--abbrev=0", "--tags"]) +except: + version = '' + +setup(name='youtube-dl', + version=version, + long_description='Small command-line program to download videos from YouTube.com and other video sites', + url='https://github.com/rg3/youtube-dl', + packages=['youtube_dl'], + #test suite + test_suite='nose.collector', + test_requires=['nosetest'], + console=console, + options={"py2exe": options}, + scripts=['bin/youtube-dl'], + zipfile=None, +) + +#import shutil +#shutil.rmtree("build") + diff --git a/test/gentests.py b/test/gentests.py index da4e3c2f6..c3cca5156 100755 --- a/test/gentests.py +++ b/test/gentests.py @@ -43,7 +43,7 @@ def md5_for_file(filename, block_size=2**20): if not data: break md5.update(data) - return md5.hexdigest() + return md5.hexdigest() _file_md5 = md5_for_file diff --git a/test/test_download.py b/test/test_download.py index 0072d4aab..b7cb6cebb 100644 --- a/test/test_download.py +++ b/test/test_download.py @@ -29,7 +29,7 @@ def md5_for_file(filename, block_size=2**20): if not data: break md5.update(data) - return md5.hexdigest() + return md5.hexdigest() _file_md5 = md5_for_file @@ -95,7 +95,7 @@ class DownloadTest(unittest.TestCase): fd.download(['http://blip.tv/cbr/cbr-exclusive-gotham-city-imposters-bats-vs-jokerz-short-3-5796352']) self.assertTrue(os.path.exists(filename)) md5_for_file = _file_md5(filename) - self.assertEqual(md5_for_file, '93c24d2f4e0782af13b8a7606ea97ba7') + self.assertEqual(md5_for_file, '4962f94441605832eb1008eb820ef47a') @_skip_unless(youtube_dl.InfoExtractors.XVideosIE._WORKING, "IE marked as not _WORKING") def test_XVideos(self): @@ -105,7 +105,7 @@ class DownloadTest(unittest.TestCase): fd.download(['http://www.xvideos.com/video939581/funny_porns_by_s_-1']) self.assertTrue(os.path.exists(filename)) md5_for_file = _file_md5(filename) - self.assertEqual(md5_for_file, '1ab4dedc01f771cb2a65e91caa801aaf') + self.assertEqual(md5_for_file, 'aecab2ea59b7996110a7e409f0c55da3') @_skip_unless(youtube_dl.InfoExtractors.VimeoIE._WORKING, "IE marked as not _WORKING") @_skip("No output file specified") @@ -126,7 +126,7 @@ class DownloadTest(unittest.TestCase): fd.download(['http://soundcloud.com/ethmusic/lostin-powers-she-so-heavy']) self.assertTrue(os.path.exists(filename)) md5_for_file = _file_md5(filename) - self.assertEqual(md5_for_file, 'ce3775768ebb6432fa8495d446a078ed') + self.assertEqual(md5_for_file, 'c1b9b9ea8bfd620b96b2628664576e1c') @_skip_unless(youtube_dl.InfoExtractors.StanfordOpenClassroomIE._WORKING, "IE marked as not _WORKING") def test_StanfordOpenClassroom(self): @@ -136,7 +136,7 @@ class DownloadTest(unittest.TestCase): fd.download(['http://openclassroom.stanford.edu/MainFolder/VideoPage.php?course=PracticalUnix&video=intro-environment&speed=100']) self.assertTrue(os.path.exists(filename)) md5_for_file = _file_md5(filename) - self.assertEqual(md5_for_file, '22c8206291368c4e2c9c1a307f0ea0f4') + self.assertEqual(md5_for_file, '8aac7873a07dcfaed66b1559ab128514') @_skip_unless(youtube_dl.InfoExtractors.CollegeHumorIE._WORKING, "IE marked as not _WORKING") @_skip("No output file specified") @@ -157,7 +157,7 @@ class DownloadTest(unittest.TestCase): fd.download(['http://video.xnxx.com/video1135332/lida_naked_funny_actress_5_']) self.assertTrue(os.path.exists(filename)) md5_for_file = _file_md5(filename) - self.assertEqual(md5_for_file, '5f0469c8d1dfd1bc38c8e6deb5e0a21d') + self.assertEqual(md5_for_file, 'c5c67df477eb0d9b058200351448ba4c') def tearDown(self): diff --git a/test/tests.json b/test/tests.json index 611780cc3..731c91718 100644 --- a/test/tests.json +++ b/test/tests.json @@ -20,13 +20,13 @@ }, { "name": "BlipTV", - "md5": "93c24d2f4e0782af13b8a7606ea97ba7", + "md5": "4962f94441605832eb1008eb820ef47a", "url": "http://blip.tv/cbr/cbr-exclusive-gotham-city-imposters-bats-vs-jokerz-short-3-5796352", "file": "5779306.m4v" }, { "name": "XVideos", - "md5": "1ab4dedc01f771cb2a65e91caa801aaf", + "md5": "aecab2ea59b7996110a7e409f0c55da3", "url": "http://www.xvideos.com/video939581/funny_porns_by_s_-1", "file": "939581.flv" }, @@ -38,13 +38,13 @@ }, { "name": "Soundcloud", - "md5": "ce3775768ebb6432fa8495d446a078ed", + "md5": "c1b9b9ea8bfd620b96b2628664576e1c", "url": "http://soundcloud.com/ethmusic/lostin-powers-she-so-heavy", "file": "n6FLbx6ZzMiu.mp3" }, { "name": "StanfordOpenClassroom", - "md5": "22c8206291368c4e2c9c1a307f0ea0f4", + "md5": "8aac7873a07dcfaed66b1559ab128514", "url": "http://openclassroom.stanford.edu/MainFolder/VideoPage.php?course=PracticalUnix&video=intro-environment&speed=100", "file": "PracticalUnix_intro-environment.mp4" }, @@ -56,7 +56,7 @@ }, { "name": "XNXX", - "md5": "5f0469c8d1dfd1bc38c8e6deb5e0a21d", + "md5": "c5c67df477eb0d9b058200351448ba4c", "url": "http://video.xnxx.com/video1135332/lida_naked_funny_actress_5_", "file": "1135332.flv" } diff --git a/youtube-dl b/youtube-dl Binary files differindex ca4e467ff..fc3cc8ad8 100755 --- a/youtube-dl +++ b/youtube-dl diff --git a/youtube-dl.1 b/youtube-dl.1 deleted file mode 100644 index 4508622d2..000000000 --- a/youtube-dl.1 +++ /dev/null @@ -1,306 +0,0 @@ -.TH YOUTUBE-DL 1 "" -.SH NAME -.PP -youtube-dl -.SH SYNOPSIS -.PP -\f[B]youtube-dl\f[] [OPTIONS] URL [URL...] -.SH DESCRIPTION -.PP -\f[B]youtube-dl\f[] is a small command-line program to download videos -from YouTube.com and a few more sites. -It requires the Python interpreter, version 2.x (x being at least 6), -and it is not platform specific. -It should work in your Unix box, in Windows or in Mac OS X. -It is released to the public domain, which means you can modify it, -redistribute it or use it however you like. -.SH OPTIONS -.IP -.nf -\f[C] --h,\ --help\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ print\ this\ help\ text\ and\ exit ---version\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ print\ program\ version\ and\ exit --U,\ --update\ \ \ \ \ \ \ \ \ \ \ \ \ update\ this\ program\ to\ latest\ version --i,\ --ignore-errors\ \ \ \ \ \ continue\ on\ download\ errors --r,\ --rate-limit\ LIMIT\ \ \ download\ rate\ limit\ (e.g.\ 50k\ or\ 44.6m) --R,\ --retries\ RETRIES\ \ \ \ number\ of\ retries\ (default\ is\ 10) ---buffer-size\ SIZE\ \ \ \ \ \ \ size\ of\ download\ buffer\ (e.g.\ 1024\ or\ 16k)\ (default -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ is\ 1024) ---no-resize-buffer\ \ \ \ \ \ \ do\ not\ automatically\ adjust\ the\ buffer\ size.\ By -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ default,\ the\ buffer\ size\ is\ automatically\ resized -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ from\ an\ initial\ value\ of\ SIZE. ---dump-user-agent\ \ \ \ \ \ \ \ display\ the\ current\ browser\ identification ---user-agent\ UA\ \ \ \ \ \ \ \ \ \ specify\ a\ custom\ user\ agent ---list-extractors\ \ \ \ \ \ \ \ List\ all\ supported\ extractors\ and\ the\ URLs\ they -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ would\ handle -\f[] -.fi -.SS Video Selection: -.IP -.nf -\f[C] ---playlist-start\ NUMBER\ \ playlist\ video\ to\ start\ at\ (default\ is\ 1) ---playlist-end\ NUMBER\ \ \ \ playlist\ video\ to\ end\ at\ (default\ is\ last) ---match-title\ REGEX\ \ \ \ \ \ download\ only\ matching\ titles\ (regex\ or\ caseless -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ sub-string) ---reject-title\ REGEX\ \ \ \ \ skip\ download\ for\ matching\ titles\ (regex\ or -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ caseless\ sub-string) ---max-downloads\ NUMBER\ \ \ Abort\ after\ downloading\ NUMBER\ files -\f[] -.fi -.SS Filesystem Options: -.IP -.nf -\f[C] --t,\ --title\ \ \ \ \ \ \ \ \ \ \ \ \ \ use\ title\ in\ file\ name ---id\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ use\ video\ ID\ in\ file\ name --l,\ --literal\ \ \ \ \ \ \ \ \ \ \ \ [deprecated]\ alias\ of\ --title --A,\ --auto-number\ \ \ \ \ \ \ \ number\ downloaded\ files\ starting\ from\ 00000 --o,\ --output\ TEMPLATE\ \ \ \ output\ filename\ template.\ Use\ %(title)s\ to\ get\ the -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ title,\ %(uploader)s\ for\ the\ uploader\ name, -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ %(autonumber)s\ to\ get\ an\ automatically\ incremented -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ number,\ %(ext)s\ for\ the\ filename\ extension, -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ %(upload_date)s\ for\ the\ upload\ date\ (YYYYMMDD), -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ %(extractor)s\ for\ the\ provider\ (youtube,\ metacafe, -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ etc),\ %(id)s\ for\ the\ video\ id\ and\ %%\ for\ a\ literal -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ percent.\ Use\ -\ to\ output\ to\ stdout. ---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) --w,\ --no-overwrites\ \ \ \ \ \ do\ not\ overwrite\ files --c,\ --continue\ \ \ \ \ \ \ \ \ \ \ resume\ partially\ downloaded\ files ---no-continue\ \ \ \ \ \ \ \ \ \ \ \ do\ not\ resume\ partially\ downloaded\ files\ (restart -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ from\ beginning) ---cookies\ FILE\ \ \ \ \ \ \ \ \ \ \ file\ to\ read\ cookies\ from\ and\ dump\ cookie\ jar\ in ---no-part\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ do\ not\ use\ .part\ files ---no-mtime\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ do\ not\ use\ the\ Last-modified\ header\ to\ set\ the\ file -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ modification\ time ---write-description\ \ \ \ \ \ write\ video\ description\ to\ a\ .description\ file ---write-info-json\ \ \ \ \ \ \ \ write\ video\ metadata\ to\ a\ .info.json\ file -\f[] -.fi -.SS Verbosity / Simulation Options: -.IP -.nf -\f[C] --q,\ --quiet\ \ \ \ \ \ \ \ \ \ \ \ \ \ activates\ quiet\ mode --s,\ --simulate\ \ \ \ \ \ \ \ \ \ \ do\ not\ download\ the\ video\ and\ do\ not\ write\ anything -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ to\ disk ---skip-download\ \ \ \ \ \ \ \ \ \ do\ not\ download\ the\ video --g,\ --get-url\ \ \ \ \ \ \ \ \ \ \ \ simulate,\ quiet\ but\ print\ URL --e,\ --get-title\ \ \ \ \ \ \ \ \ \ simulate,\ quiet\ but\ print\ title ---get-thumbnail\ \ \ \ \ \ \ \ \ \ simulate,\ quiet\ but\ print\ thumbnail\ URL ---get-description\ \ \ \ \ \ \ \ simulate,\ quiet\ but\ print\ video\ description ---get-filename\ \ \ \ \ \ \ \ \ \ \ simulate,\ quiet\ but\ print\ output\ filename ---get-format\ \ \ \ \ \ \ \ \ \ \ \ \ simulate,\ quiet\ but\ print\ output\ format ---no-progress\ \ \ \ \ \ \ \ \ \ \ \ do\ not\ print\ progress\ bar ---console-title\ \ \ \ \ \ \ \ \ \ display\ progress\ in\ console\ titlebar --v,\ --verbose\ \ \ \ \ \ \ \ \ \ \ \ print\ various\ debugging\ information -\f[] -.fi -.SS Video Format Options: -.IP -.nf -\f[C] --f,\ --format\ FORMAT\ \ \ \ \ \ video\ format\ code ---all-formats\ \ \ \ \ \ \ \ \ \ \ \ download\ all\ available\ video\ formats ---prefer-free-formats\ \ \ \ prefer\ free\ video\ formats\ unless\ a\ specific\ one\ is -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ requested ---max-quality\ FORMAT\ \ \ \ \ highest\ quality\ format\ to\ download --F,\ --list-formats\ \ \ \ \ \ \ list\ all\ available\ formats\ (currently\ youtube\ only) ---write-srt\ \ \ \ \ \ \ \ \ \ \ \ \ \ write\ video\ closed\ captions\ to\ a\ .srt\ file -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (currently\ youtube\ only) ---srt-lang\ LANG\ \ \ \ \ \ \ \ \ \ language\ of\ the\ closed\ captions\ to\ download -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (optional)\ use\ IETF\ language\ tags\ like\ \[aq]en\[aq] -\f[] -.fi -.SS Authentication Options: -.IP -.nf -\f[C] --u,\ --username\ USERNAME\ \ account\ username --p,\ --password\ PASSWORD\ \ account\ password --n,\ --netrc\ \ \ \ \ \ \ \ \ \ \ \ \ \ use\ .netrc\ authentication\ data -\f[] -.fi -.SS Post-processing Options: -.IP -.nf -\f[C] --x,\ --extract-audio\ \ \ \ \ \ convert\ video\ files\ to\ audio-only\ files\ (requires -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ffmpeg\ or\ avconv\ and\ ffprobe\ or\ avprobe) ---audio-format\ FORMAT\ \ \ \ "best",\ "aac",\ "vorbis",\ "mp3",\ "m4a",\ or\ "wav"; -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ best\ by\ default ---audio-quality\ QUALITY\ \ ffmpeg/avconv\ audio\ quality\ specification,\ insert\ a -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ value\ between\ 0\ (better)\ and\ 9\ (worse)\ for\ VBR\ or\ a -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ specific\ bitrate\ like\ 128K\ (default\ 5) --k,\ --keep-video\ \ \ \ \ \ \ \ \ keeps\ the\ video\ file\ on\ disk\ after\ the\ post- -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ processing;\ the\ video\ is\ erased\ by\ default -\f[] -.fi -.SH CONFIGURATION -.PP -You can configure youtube-dl by placing default arguments (such as -\f[C]--extract-audio\ --no-mtime\f[] to always extract the audio and not -copy the mtime) into \f[C]/etc/youtube-dl.conf\f[] and/or -\f[C]~/.local/config/youtube-dl.conf\f[]. -.SH OUTPUT TEMPLATE -.PP -The \f[C]-o\f[] option allows users to indicate a template for the -output file names. -The basic usage is not to set any template arguments when downloading a -single file, like in -\f[C]youtube-dl\ -o\ funny_video.flv\ "http://some/video"\f[]. -However, it may contain special sequences that will be replaced when -downloading each video. -The special sequences have the format \f[C]%(NAME)s\f[]. -To clarify, that is a percent symbol followed by a name in parenthesis, -followed by a lowercase S. -Allowed names are: -.IP \[bu] 2 -\f[C]id\f[]: The sequence will be replaced by the video identifier. -.IP \[bu] 2 -\f[C]url\f[]: The sequence will be replaced by the video URL. -.IP \[bu] 2 -\f[C]uploader\f[]: The sequence will be replaced by the nickname of the -person who uploaded the video. -.IP \[bu] 2 -\f[C]upload_date\f[]: The sequence will be replaced by the upload date -in YYYYMMDD format. -.IP \[bu] 2 -\f[C]title\f[]: The sequence will be replaced by the video title. -.IP \[bu] 2 -\f[C]ext\f[]: The sequence will be replaced by the appropriate extension -(like flv or mp4). -.IP \[bu] 2 -\f[C]epoch\f[]: The sequence will be replaced by the Unix epoch when -creating the file. -.IP \[bu] 2 -\f[C]autonumber\f[]: The sequence will be replaced by a five-digit -number that will be increased with each download, starting at zero. -.PP -The current default template is \f[C]%(id)s.%(ext)s\f[], but that will -be switchted to \f[C]%(title)s-%(id)s.%(ext)s\f[] (which can be -requested with \f[C]-t\f[] at the moment). -.PP -In some cases, you don\[aq]t want special characters such as 中, spaces, -or &, such as when transferring the downloaded filename to a Windows -system or the filename through an 8bit-unsafe channel. -In these cases, add the \f[C]--restrict-filenames\f[] flag to get a -shorter title: -.IP -.nf -\f[C] -$\ youtube-dl\ --get-filename\ -o\ "%(title)s.%(ext)s"\ BaW_jenozKc -youtube-dl\ test\ video\ \[aq]\[aq]_ä↭𝕐.mp4\ \ \ \ #\ All\ kinds\ of\ weird\ characters -$\ youtube-dl\ --get-filename\ -o\ "%(title)s.%(ext)s"\ BaW_jenozKc\ --restrict-filenames -youtube-dl_test_video_.mp4\ \ \ \ \ \ \ \ \ \ #\ A\ simple\ file\ name -\f[] -.fi -.SH FAQ -.SS Can you please put the -b option back? -.PP -Most people asking this question are not aware that youtube-dl now -defaults to downloading the highest available quality as reported by -YouTube, which will be 1080p or 720p in some cases, so you no longer -need the -b option. -For some specific videos, maybe YouTube does not report them to be -available in a specific high quality format you\[aq]\[aq]re interested -in. -In that case, simply request it with the -f option and youtube-dl will -try to download it. -.SS I get HTTP error 402 when trying to download a video. What\[aq]s -this? -.PP -Apparently YouTube requires you to pass a CAPTCHA test if you download -too much. -We\[aq]\[aq]re considering to provide a way to let you solve the -CAPTCHA (https://github.com/rg3/youtube-dl/issues/154), but at the -moment, your best course of action is pointing a webbrowser to the -youtube URL, solving the CAPTCHA, and restart youtube-dl. -.SS I have downloaded a video but how can I play it? -.PP -Once the video is fully downloaded, use any video player, such as -vlc (http://www.videolan.org) or mplayer (http://www.mplayerhq.hu/). -.SS The links provided by youtube-dl -g are not working anymore -.PP -The URLs youtube-dl outputs require the downloader to have the correct -cookies. -Use the \f[C]--cookies\f[] option to write the required cookies into a -file, and advise your downloader to read cookies from that file. -Some sites also require a common user agent to be used, use -\f[C]--dump-user-agent\f[] to see the one in use by youtube-dl. -.SS ERROR: no fmt_url_map or conn information found in video info -.PP -youtube has switched to a new video info format in July 2011 which is -not supported by old versions of youtube-dl. -You can update youtube-dl with \f[C]sudo\ youtube-dl\ --update\f[]. -.SS ERROR: unable to download video -.PP -youtube requires an additional signature since September 2012 which is -not supported by old versions of youtube-dl. -You can update youtube-dl with \f[C]sudo\ youtube-dl\ --update\f[]. -.SS SyntaxError: Non-ASCII character -.PP -The error -.IP -.nf -\f[C] -File\ "youtube-dl",\ line\ 2 -SyntaxError:\ Non-ASCII\ character\ \[aq]\\x93\[aq]\ ... -\f[] -.fi -.PP -means you\[aq]re using an outdated version of Python. -Please update to Python 2.6 or 2.7. -.PP -To run youtube-dl under Python 2.5, you\[aq]ll have to manually check it -out like this: -.IP -.nf -\f[C] -git\ clone\ git://github.com/rg3/youtube-dl.git -cd\ youtube-dl -python\ -m\ youtube_dl\ --help -\f[] -.fi -.PP -Please note that Python 2.5 is not supported anymore. -.SS What is this binary file? Where has the code gone? -.PP -Since June 2012 (#342) youtube-dl is packed as an executable zipfile, -simply unzip it (might need renaming to \f[C]youtube-dl.zip\f[] first on -some systems) or clone the git repository, as laid out above. -If you modify the code, you can run it by executing the -\f[C]__main__.py\f[] file. -To recompile the executable, run \f[C]make\ youtube-dl\f[]. -.SS The exe throws a \f[I]Runtime error from Visual C++\f[] -.PP -To run the exe you need to install first the Microsoft Visual C++ 2008 -Redistributable -Package (http://www.microsoft.com/en-us/download/details.aspx?id=29). -.SH COPYRIGHT -.PP -youtube-dl is released into the public domain by the copyright holders. -.PP -This README file was originally written by Daniel Bolton -(<https://github.com/dbbolton>) and is likewise released into the public -domain. -.SH BUGS -.PP -Bugs and suggestions should be reported at: -<https://github.com/rg3/youtube-dl/issues> -.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 -The output of \f[C]youtube-dl\ --version\f[] -.IP \[bu] 2 -The output of \f[C]python\ --version\f[] -.IP \[bu] 2 -The name and version of your Operating System ("Ubuntu 11.04 x64" or -"Windows 7 x64" is usually enough). diff --git a/youtube-dl.exe b/youtube-dl.exe Binary files differdeleted file mode 100644 index 2ee57c593..000000000 --- a/youtube-dl.exe +++ /dev/null |