diff --git a/.gitignore b/.gitignore index 39376d18..d2a2328e 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,7 @@ _*/ *.mpg *.ts *.webm +README.html README.rst *.DS_Store diff --git a/README.md b/README.md index fe6a8441..0cbb0af6 100644 --- a/README.md +++ b/README.md @@ -2,198 +2,239 @@ [![Build Status](https://api.travis-ci.org/soimort/you-get.png)](https://travis-ci.org/soimort/you-get) [![PyPI version](https://badge.fury.io/py/you-get.png)](http://badge.fury.io/py/you-get) -[You-Get](https://github.com/soimort/you-get) is a video downloader runs on Python 3. It aims at easing the download of videos on [YouTube](http://www.youtube.com), [Youku](http://www.youku.com)/[Tudou](http://www.tudou.com) (biggest online video providers in China), [ Niconico](http://www.nicovideo.jp), etc., in one script. +[You-Get](http://www.soimort.org/you-get) is a video downloader for [YouTube](http://www.youtube.com), [Youku](http://www.youku.com), [niconico](http://www.nicovideo.jp) and a few other sites. -See the project homepage for further documentation. +`you-get` is a command-line program, written completely in Python 3. Its prospective users are those who prefer CLI over GUI. With `you-get`, downloading a video is just one command away: + + $ you-get http://youtu.be/sGwy8DsUJ4M Fork me on GitHub: -__中文说明__已移至[wiki](https://github.com/soimort/you-get/wiki/%E4%B8%AD%E6%96%87%E8%AF%B4%E6%98%8E)。 - ## Features -### Supported Sites (As of Now) +### Supported Sites + +First-class (better maintained): -* YouTube -* Vimeo -* Coursera -* Blip -* CBS * Dailymotion +* Freesound +* Google+ +* Instagram +* JPopsuki +* Magisto +* Mixcloud +* Niconico (ニコニコ動画) +* Vimeo +* Vine +* Youku (优酷) +* YouTube + +Others: + +* AcFun +* Alive.in.th +* Baidu Music (百度音乐) +* Baidu Wangpan (百度网盘) +* bilibili +* Blip +* Catfun (喵星球) +* CBS +* CNTV (中国网络电视台) +* Coursera +* Douban (豆瓣) * eHow * Facebook -* Google+ * Google Drive -* Khan Academy -* TED -* Tumblr -* Vine -* Instagram -* Magisto -* SoundCloud -* Mixcloud -* Freesound -* JPopsuki -* MTV 81 -* VID48 -* Niconico (ニコニコ動画) -* Youku (优酷) -* Tudou (土豆) -* YinYueTai (音悦台) -* AcFun -* bilibili -* CNTV (中国网络电视台) -* Douban (豆瓣) * ifeng (凤凰视频) * iQIYI (爱奇艺) * Joy.cn (激动网) +* Khan Academy * Ku6 (酷6网) +* Kugou (酷狗音乐) +* Kuwo (酷我音乐) * LeTV (乐视网) * MioMio +* MTV 81 * NetEase (网易视频) * NetEase Music (网易云音乐) * PPTV * QQ (腾讯视频) * Sina (新浪视频) * Sohu (搜狐视频) +* SongTaste +* SoundCloud +* TED +* Tudou (土豆) +* Tumblr +* VID48 +* VideoBam +* VK * 56 (56网) * Xiami (虾米) -* Kugou (酷狗音乐) -* Kuwo (酷我音乐) -* Baidu Music (百度音乐) -* Baidu Wangpan (百度网盘) -* SongTaste -* Alive.in.th -* VK -* Catfun (喵星球) -* VideoBam +* YinYueTai (音悦台) -## Dependencies +## Prerequisites -* [Python 3](http://www.python.org/download/releases/) -* __(Optional)__ [FFmpeg](http://ffmpeg.org) / [Libav](http://libav.org/) - * For converting and joining video files. -* __(Optional)__ [RTMPDump](http://rtmpdump.mplayerhq.hu/) - * For processing RTMP streams. +### Python 3 + +`you-get` is known to work with: + +* Python 3.2 +* Python 3.3 +* Python 3.4 +* PyPy3 + +`you-get` does not (and will never) work with Python 2.x. + +### Dependencies (Optional but Recommended) + +* [FFmpeg](http://ffmpeg.org) or [Libav](http://libav.org/) + * For video and audio processing. +* [RTMPDump](http://rtmpdump.mplayerhq.hu/) + * For RTMP stream processing. ## Installation -### 1. Install via Pip: +You don't have to learn the Python programming language to use this tool. However, you need to make sure that Python 3 (with pip) is installed on your system. - $ [sudo] pip3 install --pre you-get +On Linux and BSD, installation made easy with your package manager: - Check if the installation was successful: +* Find and install packages: `python3` and `python3-pip` (if your distro did not make Python 3 the default, e.g., Debian) +* Or packages: `python` and `python-pip` (if your distro made Python 3 the default, e.g., Arch) + +On other systems (which tend to have quite evil user experience), please read the documentation and ask Google for help: + +* +* + +### 1. Using Pip (Standard Method) + + $ [sudo] pip3 install you-get + +Check if the installation is successful: $ you-get -V -### 2. Install from Git: +### 2. Using Git (Recommended for Developers and Advanced Users) $ git clone git://github.com/soimort/you-get.git - Use the raw script without installation: +Use the raw script without installation: $ cd you-get/ $ ./you-get -V - To install the package into the system path, execute: +To install the package into the system path, execute: - $ make install + $ [sudo] make install - Check if the installation was successful: +Check if the installation is successful: $ you-get -V -### 3. Direct download (from ): +### 3. Direct Download + +Download it [here](https://github.com/soimort/you-get/zipball/master) or: $ wget -O you-get.zip https://github.com/soimort/you-get/zipball/master $ unzip you-get.zip - Use the raw script without installation: +Use the raw script without installation: $ cd soimort-you-get-*/ $ ./you-get -V - To install the package into the system path, execute: +To install the package into the system path, execute: - $ make install + $ [sudo] make install - Check if the installation was successful: +Check if the installation is successful: $ you-get -V -### 4. Install from your distro's repo: - -* __AUR (Arch)__: - -* __Overlay (Gentoo)__: - ## Upgrading -Using Pip: +### 1. Using Pip - $ [sudo] pip install --upgrade you-get + $ [sudo] pip3 install --upgrade you-get -## Examples +## Getting Started -Display the information of the video without downloading: +Display the information of a video without downloading: - $ you-get -i http://www.youtube.com/watch?v=sGwy8DsUJ4M + $ you-get -i 'http://www.youtube.com/watch?v=sGwy8DsUJ4M' -Download the video: +Download a video: - $ you-get http://www.youtube.com/watch?v=sGwy8DsUJ4M + $ you-get 'http://www.youtube.com/watch?v=sGwy8DsUJ4M' Download multiple videos: - $ you-get http://www.youtube.com/watch?v=sGwy8DsUJ4M http://www.youtube.com/watch?v=8bQlxQJEzLk + $ you-get 'http://www.youtube.com/watch?v=sGwy8DsUJ4M' 'http://www.youtube.com/watch?v=8bQlxQJEzLk' -By default, program will skip any video that already exists in the local directory when downloading. If a temporary file (ends with a ".download" filename extension) is found, program will resume the download from last session. +By default, program will skip any video that already exists in the local directory when downloading. If a temporary file (ends with a `.download` extension in its file name) is found, program will resume the download from last session. -To enforce re-downloading of videos, use '-f' option (this will overwrite any existing video or temporary file, rather than skipping or resuming them): +To enforce re-downloading of videos, use option `-f`: (this will overwrite any existing video or temporary file) - $ you-get -f http://www.youtube.com/watch?v=sGwy8DsUJ4M + $ you-get -f 'http://www.youtube.com/watch?v=sGwy8DsUJ4M' Set the output directory for downloaded files: - $ you-get -o ~/Downloads http://www.youtube.com/watch?v=sGwy8DsUJ4M + $ you-get -o ~/Downloads 'http://www.youtube.com/watch?v=sGwy8DsUJ4M' Use a specific HTTP proxy for downloading: - $ you-get -x 127.0.0.1:8087 http://www.youtube.com/watch?v=sGwy8DsUJ4M + $ you-get -x 127.0.0.1:8087 'http://www.youtube.com/watch?v=sGwy8DsUJ4M' -By default, Python will apply the system proxy settings (i.e. environment variable $http_proxy). To cancel the use of proxy, use '--no-proxy' option: +By default, the system proxy setting (i.e. environment variable `http_proxy` on *nix) is applied. To disable any proxy, use option `--no-proxy`: - $ you-get --no-proxy http://www.youtube.com/watch?v=sGwy8DsUJ4M + $ you-get --no-proxy 'http://www.youtube.com/watch?v=sGwy8DsUJ4M' + +Watch a video in your media player of choice: (this is just a trick to let you get rid of annoying ads on the video site) + + $ you-get -p vlc 'http://www.youtube.com/watch?v=sGwy8DsUJ4M' + +## FAQ + +**Q**: Some videos on Youku are restricted to mainland China visitors. Is it possible to bypass this restriction and download those videos? + +**A**: Thanks to [Unblock Youku](https://github.com/zhuzhuor/Unblock-Youku), it is now possible to access such videos from an oversea IP address. You can simply use `you-get` with option `-y proxy.uku.im:8888`. + +**Q**: Will you release an executable version / Windows Installer package? + +**A**: Maybe, but never a priority. ## Command-Line Options -For a complete list of all available options, see: +For a complete list of available options, see: - $ you-get --help - Usage: you-get [OPTION]... [URL]... +``` +$ you-get --help +Usage: you-get [OPTION]... [URL]... - Startup options: - -V | --version Display the version and exit. - -h | --help Print this help and exit. +Startup options: + -V | --version Display the version and exit. + -h | --help Print this help and exit. - Download options (use with URLs): - -f | --force Force overwriting existed files. - -i | --info Display the information of videos without downloading. - -u | --url Display the real URLs of videos without downloading. - -n | --no-merge Don't merge video parts. - -F | --format Video format code. - -c | --cookies Load NetScape's cookies.txt file. - -o | --output-dir Set the output directory for downloaded videos. - -p | --player Directly play the video with PLAYER like vlc/smplayer. - -x | --http-proxy Use specific HTTP proxy for downloading. - -y | --extractor-proxy Use specific HTTP proxy for extracting stream data. - --no-proxy Don't use any proxy. (ignore $http_proxy) - --debug Show traceback on KeyboardInterrupt. +Download options (use with URLs): + -f | --force Force overwriting existed files. + -i | --info Display the information of videos without downloading. + -u | --url Display the real URLs of videos without downloading. + -c | --cookies Load NetScape's cookies.txt file. + -n | --no-merge Don't merge video parts. + -F | --format Video format code. + -o | --output-dir Set the output directory for downloaded videos. + -p | --player Directly play the video with PLAYER like vlc/smplayer. + -x | --http-proxy Use specific HTTP proxy for downloading. + -y | --extractor-proxy Use specific HTTP proxy for extracting stream data. + --no-proxy Don't use any proxy. (ignore $http_proxy) + --debug Show traceback on KeyboardInterrupt. +``` ## License You-Get is licensed under the [MIT license](https://raw.github.com/soimort/you-get/master/LICENSE.txt). -## Contributing +## Reporting an Issue / Contributing -Please see [CONTRIBUTING.md](https://github.com/soimort/you-get/blob/master/CONTRIBUTING.md). +Please read [CONTRIBUTING.md](https://github.com/soimort/you-get/blob/master/CONTRIBUTING.md) first.