Skip to content
mengmo edited this page May 11, 2019 · 46 revisions

YoukuDownLoader general help

简介

  • 基本结构

    YoukuDownLoader 分为两个部分

    1. pure Python library module ykdl: <PATH>/ykdl

    2. 可执行 module cykdl: <PATH>/cykdl。同时也是调用 library ykdl 的编程示例

安装和升级

Prepation

  • 本项目部分功能依赖于 FFmpeg ,请确保您已安装ffmpeg并将其添加到了系统环境变量的path

    Windows 用户可从此处 Builds - Zeranoe FFmpeg 下载最新稳定版

  • 本项目依赖于如下 Python 库:

    m3u8 (依赖 iso8601pip会自动安装)

    pycryptodome

    urllib3

  • 如果直接下载源码或使用 git 安装,需要先自行安装好上述 Python 库,否则 ykdl 无法安装。

  • 使用 pip 或使用 pip+git 下载源码安装则会自动解决 Python 库的依赖。

  • 对于在Android上使用 Termux 的用户,由于pycryptodome当前未提供相应平台的 binary,请先安装编译工具

    附:Termux下完整的 Prepation 安装方法(在 Termux 0.65 下测试通过)

      pkg install clang ffmpeg getconf python
  • 安装clang的同时会安装binutils libllvm ndk-sysroot

  • 安装ffmpeg的同时会安装freetype libandroid-glob libgmp libgnutls libidn2 libmp3lame libnettle libogg libopus libpng libsoxr libunistring libvorbis libvpx libx264 libx265 xvidcore

  • 安装python的同时会安装gdbm libcrypt libffi libsqlite libutil ncurses-ui-libs

可以通过以下方法安装使用

  • 0. 推荐使用 pip 安装本项目,附可行的 pip 安装方法
    curl https://bootstrap.pypa.io/get-pip.py | python / python3
或者
    wget https://bootstrap.pypa.io/get-pip.py -O - | python / python3 -
    pip install ykdl   <-- Python2 / 默认的 Python
    pip3 install ykdl  <-- Python3
  •     通常 Linux 用户需要加一个 --user参数,这样就不要sudo权限

  •     不加--user则是安装在系统位置

  • 2. 下载源代码包(使用最新开发版)

  •     2.1 直接下载 master.zip ,解压后使用

  •     可选步骤:python setup.py install 安装到系统。

  •     2.2 使用 pip 下载源码安装:

    pip / pip3 install https://github.com/zhangn1985/ykdl/archive/master.zip
  •     2.3 使用 git:git clone https://github.com/zhangn1985/ykdl.git

  •     可选步骤:python setup.py install 安装到系统。

  •     2.4 使用 pip+git 下载源码安装:

    pip / pip3 install git+https://github.com/zhangn1985/ykdl@master

升级

  • 1. 通过 pip 安装的,升级只需要在pip / pip3 install后边加一个--upgrade / -U参数。

  • 2. 下载源码安装(使用最新开发版)的,升级请根据所使用的安装方法执行以下命令:

  •     2.1 直接下载 master.zip 升级:请重复安装时的操作

  •     2.2 使用 pip 升级:

    pip / pip3 install --upgrade / -U https://github.com/zhangn1985/ykdl/archive/master.zip
  •     2.3 使用 git 升级:cd /d path\to\work_crawler && git pull

  •     2.4 使用 pip+git 升级:

    pip / pip3 install --upgrade / -U git+https://github.com/zhangn1985/ykdl@master

安装之后的文件分布

  • library module可执行 module 都安装在PYTHON_LIBRARY_PATH/site-packages

    例如:

       /usr/lib/python3/site-packages/ykdl/

       /usr/lib/python3/site-packages/cykdl/

       ~/.local/lib/python3/site-packages/ykdl

       ~/.local/lib/python3/site-packages/cykdl

       C:\Python34\Lib\site-packages\ykdl\    <--Python35/36/37的位置相似

       C:\Python34\Lib\site-packages\cykdl\   <--Python35/36/37的位置相似
  • 可执行文件

    通过setup.py / pip安装的,Setuptools会为cykdl生成封装脚本或者 Windows 上的.exe可执行文件。

    C:\Python34\Scripts\ykdl.exe       <--Windows,Python35/36/37的位置相似。

    /usr/bin/ykdl 或 ~/.local/bin/ykdl <--Linux

使用

  • 可以在 Windows 的命令提示符或者 Linux 的Terminal中执行

    ykdl或者python -m cykdl

  • 使用帮助

ykdl -h
usage: ykdl [-h] [-l] [-i] [-J] [-F FORMAT] [-o OUTPUT_DIR] [-O OUTPUT_NAME]
            [-p PLAYER] [--proxy PROXY] [-t TIMEOUT] [--no-merge] [-s START]
            [-j JOBS] [--debug]
            video_urls [video_urls ...]

YouKuDownLoader(ykdl 1.6.3), a video downloader. Forked form you-get
0.3.34@soimort

positional arguments:
  video_urls            video urls
                        要下载视频的网址

optional arguments:
  -h, --help            show this help message and exit
                        显示本帮助信息并退出
  -l, --playlist        Download as a playlist.
                        将所给的视频 URL 作为播放列表进行下载
  -i, --info            Display the information of videos without downloading.
                        只显示视频信息而不进行下载
  -J, --json            Display info in json format.
                        以 json 格式显示视频信息
  -F FORMAT, --format FORMAT
                        Video format code.
                        指定视频的格式代号。参数通常是 TD, HD, SD, LD。默认最高清晰度。具体请看 -i 的输出。
  -o OUTPUT_DIR, --output-dir OUTPUT_DIR
                        Set the output directory for downloaded videos.
                        指定下载视频的保存目录
  -O OUTPUT_NAME, --output-name OUTPUT_NAME
                        downloaded videos with the NAME you want
                        指定下载视频的文件名
  -p PLAYER, --player PLAYER
                        Directly play the video with PLAYER like mpv
                        直接使用播放器播放而不是下载,推荐使用[mpv](https://mpv.io)
  --proxy PROXY         set proxy HOST:PORT for http(s) transfer. default: use
                        system proxy settings
                        为下载指定代理 HOST:PORT(主机名:端口号),默认使用系统的代理设置
  -t TIMEOUT, --timeout TIMEOUT
                        set socket timeout seconds, default 60s
                        设置网络传输超时时长,单位秒。默认为60秒
  --no-merge            do not merge video slides
                        不合并视频分片
  -s START, --start START
                        start from INDEX to play/download playlist
                        配合 -l 使用,从播放列表的第 X 项开始播放。
  -j JOBS, --jobs JOBS  number of jobs for multiprocess download
                        指定并行下载的视频分片数
  --debug               print debug messages from ykdl
                        打印调试信息
  • 系统代理 system proxy settings

  • 可以在 Windows 的命令提示符或者 Linux 的Terminal中为http(s)传输设置系统代理,方法为

  set http_proxy=HOST:PORT      <--Windows
  set https_proxy=HOST:PORT     <--Windows
  export http_proxy=HOST:PORT   <--Linux
  export https_proxy=HOST:PORT  <--Linux
  • 只对当前窗口有效
You can’t perform that action at this time.