Skip to content

A YouTube/Youku/Niconico video downloader written in Python 3

License

Notifications You must be signed in to change notification settings

linuxhenhao/you-get

 
 

Repository files navigation

You-Get

Build Status

You-Get is a video downloader runs on Python 3. It aims at easing the download of videos on YouTube, Youku/Tudou (biggest online video providers in China), Niconico, etc., in one script.

See the project homepage http://www.soimort.org/you-get for further documentation.

Fork me on GitHub: https://github.com/soimort/you-get

Features

Supported Sites (As of Now)

Dependencies

  • Python 3
  • (Optional) FFmpeg
    • Used for converting and joining video files.

Installation

1. Install via Pip:

$ pip install you-get

Check if the installation was successful:

$ you-get -V

2. Install via EasyInstall:

$ easy_install you-get

Check if the installation was successful:

$ you-get -V

3. Install from Git:

$ git clone git://github.com/soimort/you-get.git

Use the raw script without installation:

$ cd you-get/
$ ./you-get -V

To install the package into the system path, execute:

$ make install

Check if the installation was successful:

$ you-get -V
$ wget -O you-get.zip https://github.com/soimort/you-get/zipball/master
$ unzip you-get.zip

Use the raw script without installation:

$ cd soimort-you-get-*/
$ ./you-get -V

To install the package into the system path, execute:

$ make install

Check if the installation was successful:

$ you-get -V

Click here.

Upgrading:

Using Pip:

$ pip install --upgrade you-get

FAQ (For Windows Users):

  • Q: I don't know how to install it on Windows.

  • A: Then don't do it. Just put your you-get folder into system %PATH%.

  • Q: I got something like UnicodeDecodeError: 'gbk' codec can't decode byte 0xb0 in position 1012: illegal multibyte sequence.

  • A: Run set PYTHONIOENCODING=utf-8.

Examples (For End-Users)

Display the information of the video without downloading:

$ you-get -i http://www.youtube.com/watch?v=sGwy8DsUJ4M

Download the video:

$ 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

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.

To enforce re-downloading of videos, use '-f' option (this will overwrite any existing video or temporary file, rather than skipping or resuming them):

$ 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

Use a specific HTTP proxy for downloading:

$ 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:

$ you-get --no-proxy http://www.youtube.com/watch?v=sGwy8DsUJ4M

Command-Line Options

For a complete list of all available options, see:

$ you-get --help

Examples (For Developers)

In Python 3 (interactive):

>>> from you_get.downloader import *
>>> youtube.download("http://www.youtube.com/watch?v=8bQlxQJEzLk", info_only = True)
Video Site: YouTube.com
Title:      If you're good at something, never do it for free!
Type:       WebM video (video/webm)
Size:       0.13 MB (133176 Bytes)

>>> import you_get
>>> you_get.any_download("http://www.youtube.com/watch?v=sGwy8DsUJ4M")
Video Site: YouTube.com
Title:      Mort from Madagascar LIKES
Type:       WebM video (video/webm)
Size:       1.78 MB (1867072 Bytes)

Downloading Mort from Madagascar LIKES.webm ...
100.0% (  1.8/1.8  MB) [========================================] 1/1

API Reference

See source code.

License

You-Get is licensed under the MIT license.

Contributing

Please see CONTRIBUTING.md.


You-Get - 中文说明

You-Get是一个基于Python 3的视频下载工具。之所以写它的主要原因是,我找不到一个现成的下载工具能够同时支持YouTube优酷;而且,几乎所有以前的视频下载程序都是基于Python 2的。

项目主页:http://www.soimort.org/you-get

GitHub地址:https://github.com/soimort/you-get

特点

说明

You-Get基于优酷下载脚本iambus/youku-lixian用Python 3改写而成,增加了以下功能:

  • 支持YouTube、Vimeo等国外视频网站
  • 支持断点续传
  • 可设置HTTP代理

支持的站点(截至目前)

已实现对以下站点的支持,以后会陆续增加(・∀・)

依赖

安装说明

(以下命令格式均以Linux shell为例)

1. 通过Pip安装:

$ pip install you-get

检查安装是否成功:

$ you-get -V

2. 通过EasyInstall安装:

$ easy_install you-get

检查安装是否成功:

$ you-get -V

3. 从Git安装:

$ git clone git://github.com/soimort/you-get.git

在不安装的情况下直接使用脚本:

$ cd you-get/
$ ./you-get -V

若要将Python package安装到系统默认路径,执行:

$ make install

检查安装是否成功:

$ you-get -V
$ wget -O you-get.zip https://github.com/soimort/you-get/zipball/master
$ unzip you-get.zip

在不安装的情况下直接使用脚本:

$ cd soimort-you-get-*/
$ ./you-get -V

若要将Python package安装到系统默认路径,执行:

$ make install

检查安装是否成功:

$ you-get -V

点击这里

升级:

使用Pip:

$ pip install --upgrade you-get

FAQ(针对Windows用户):

  • Q:我不知道该如何在Windows下安装。

  • A:不需要安装。直接把you-get目录放到系统%PATH%中。

  • Q:出现错误提示UnicodeDecodeError: 'gbk' codec can't decode byte 0xb0 in position 1012: illegal multibyte sequence

  • A:执行set PYTHONIOENCODING=utf-8

使用方法示例

如何下载视频

显示视频信息,但不进行下载(-i--info选项):

$ you-get -i http://www.yinyuetai.com/video/463772

下载视频:

$ you-get http://www.yinyuetai.com/video/463772

下载多个视频:

$ you-get http://www.yinyuetai.com/video/463772 http://www.yinyuetai.com/video/471500

若当前目录下已有与视频标题同名的文件,下载时会自动跳过。若有同名的.download临时文件,程序会从上次中断处开始下载。 如要强制重新下载该视频,可使用-f--force)选项:

$ you-get -f http://www.yinyuetai.com/video/463772

-l--playlist)选项用于下载播放列表(只对某些网站适用):

$ you-get -l http://www.youku.com/playlist_show/id_5344313.html

注:从0.1.3以后的版本起,-l选项不再必须。You-Get可以自动识别并处理播放列表的下载。

指定视频文件的下载目录:

$ you-get -o ~/Downloads http://www.yinyuetai.com/video/463772

显示详细帮助:

$ you-get -h

如何设置代理

默认情况下,Python自动使用系统的代理配置。可以通过环境变量http_proxy来设置系统的HTTP代理。

-x--http-proxy)选项用于手动指定You-Get所使用的HTTP代理。例如:GoAgent的代理服务器是http://127.0.0.1:8087,则通过该代理下载某YouTube视频的命令是:

$ you-get -x 127.0.0.1:8087 http://www.youtube.com/watch?v=KbtO_Ayjw0M

Windows下的自由门等翻墙软件会自动设置系统全局代理,因此无需指定HTTP代理即可下载YouTube视频:

$ you-get http://www.youtube.com/watch?v=KbtO_Ayjw0M

如果不希望程序在下载过程中使用任何代理(包括系统的代理配置),可以显式地指定--no-proxy选项:

$ you-get --no-proxy http://v.youku.com/v_show/id_XMjI0ODc1NTc2.html

断点续传

下载未完成时被中止(因为Ctrl+C终止程序或者网络中断等原因),在目标路径中会有一个扩展名为.download的临时文件。

下次运行只要在目标路径中找到相应的.download临时文件,程序会自动从中断处继续下载。(除非指定了-f选项)

使用Python 2?

优酷等国内视频网站的下载,请移步:iambus/youku-lixian

YouTube等国外视频网站的下载,请移步:rg3/youtube-dl

许可证

You-Get在MIT License下发布。

如何参与贡献 / 报告issue

请阅读 CONTRIBUTING.md

About

A YouTube/Youku/Niconico video downloader written in Python 3

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published