evdh
Version:
evdh : EisF Video Download Helper, auto download videos on web pages.
349 lines (239 loc) • 11.8 kB
Markdown
:: README.md for evdh (version 0.1.9.0 test201502211209 (public npm version)
# evdh : EisF Video Download Helper
author `sceext` <sceext@foxmail.com> `2009EisF2015`, *2015.02* <br />
copyright 2015 sceext All rights reserved.
**evdh is used to AUTO download videos on webpages** (such as *youku*)
**with the analyse service provided by [flv.cn](http://flv.cn)** <br />
(**[Download evdh](#other-branches)**)
(**[Features of evdh](#features)**)
(**[test info](#tested)**)
[flv.cn](http://flv.cn) can analyse the URL of video playing web pages,
and give the URLs of video files to download.
(for example: videos of [Youku](http://www.youku.com/) can be downloaded by this way) <br />
But when it comes to videos cut in several parts,
it can be painful to download each part of video files one by one **by hand**.
evdh can **auto** download all parts of video files, and **auto** merge them.
With the "task_list" mode, *evdh* can even **auto** download many videos. <br />
With *evdh*, it will be much easier to download videos.
This is the *npm* version of evdh. `(public npm version) branch version-npm`
**NOTE**: The current evdh npm version is NOT ready to be used by other npm modules!
It is just a tool used by human to auto download videos.
## INSTALL
+ **Please use npm**
*evdh* is an AUTO download tool used in *node.js*. <br />
Please use **[npm](https://www.npmjs.com/)**
to install *evdh*. <br /> <https://www.npmjs.com/package/evdh>
If you do not use *npm*, you can try other ways to
[Download](#other-branches) *evdh*.
+ **Software Dependence**
*evdh* depends on these softwares:
+ **RECOMMEND**: `ffmpeg`
After installed these softwares
can you use the functions of *evdh* entirely.
On *ArchLinux* you can use `pacman` to install the softwares:
> `$ sudo pacman -S ffmpeg`
+ On *Debian*/*Ubuntu* please use `apt-get`
+ On *Fedora*/*Redhat* please use `yum`
to install the softwares.
Or to install them from the official websites:
+ official website of *ffmpeg*: <http://www.ffmpeg.org/>
+ **Description of Software Dependence**
+ **node.js** <br />
*evdh* uses *node.js* as the runtime environment.
+ **xmldom** (a module on npm) <br />
*evdh* uses *xmldom* to process xml.
+ **ffmpeg** <br />
*evdh* uses *ffmpeg* to merge video part files. <br />
Without *ffmpeg*, you can not use
the "**AUTO** merge part video files" function of *evdh*.
## CONFIGURE
The default config file is `etc/evdh.conf.xml`
Please edit it to your own needs.
### About token
*evdh* uses the Web API of [flv.cn] <http://flv.cn/> (api.flvxz.com)
You can try to get a token for free from <http://flv.cn/docs.php?doc=api>
**NOTE**: Please notice that the token is very important for you.
When using the URL analyse service of *flv.cn*,
the token is used to identity yourself. <br />
So please be careful to prevent the token be used by others.
The token is stored in a separate file to protect your own private token. <br />
You can change the location of the token file in config file.
Default token file is `etc/private/token` <br />
You should write your own token in such file before use *evdh* to download videos.
## RUN evdh
Please use *evdh* start shell script to start run *evdh*.
You can use this command:
> `$ ./evdh.sh`
This will start *evdh* interactively.
You can use `$ ./evdh.sh --version` to show version info of *evdh*. <br />
Or you can use this to get help:
> ```
> $ ./evdh.sh --help
>
> evdh : EisF Video Download Helper
> Usage: evdh
> evdh [OPTIONS] ...
> Options:
> none just use "evdh" without any command line arguments
> will start evdh in "normal" mode, which runs interactively
>
> --url <url> start evdh in "auto_url" mode
> in this mode, evdh will auto download files, and
> do not ask user to confirm
> --continue start evdh in "auto_continue" mode
> in this mode, evdh will auto continue unfinished task,
> do not ask user to confirm
> --list-file <file>
> You can let evdh auto download many URLs in this "task_list"
> mode. URLs is writen in <file>, one in a line
>
> --help Show this help information
> --version Show evdh version information
> NOTE:
> evdh is used to help download videos on website.
> The URL inputed in evdh is the url of the video playing web page.
> evdh will auto analyse the url by "api.flvxz.com", and get URLs of video
> part files, and auto download them all, and auto merge part videos in
> a whole one with "ffmpeg".
>
> ```
## This is FREE SOFTWARE
This is FREE SOFTWARE, released under GNU GPLv3+ <br />
please see LICENSE for more information.
> ```
> evdh : EisF Video Download Helper, auto download videos on web pages
> Copyright (C) 2015 sceext <sceext@foxmail.com>
>
> This program is free software: you can redistribute it and/or modify
> it under the terms of the GNU General Public License as published by
> the Free Software Foundation, either version 3 of the License, or
> (at your option) any later version.
>
> This program is distributed in the hope that it will be useful,
> but WITHOUT ANY WARRANTY; without even the implied warranty of
> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> GNU General Public License for more details.
>
> You should have received a copy of the GNU General Public License
> along with this program. If not, see <http://www.gnu.org/licenses/>.
> ```
### Other Branches
You can get *evdh* from <https://github.com/sceext2/evdh> <br />
and get the source code of *evdh* at the same time.
This is the *npm* version of *evdh*. `(public npm version) branch version-npm` <br />
<https://github.com/sceext2/evdh/tree/version-npm> <br />
<https://www.npmjs.com/package/evdh>
#### evdh also has these versions
+ **中文版** `(public zh-cn version) branch version-zh-cn` <br />
<https://github.com/sceext2/evdh/tree/version-zh-cn>
+ **English version** `(public version) branch version` <br />
<https://github.com/sceext2/evdh/tree/version>
+ *windows* **version** `(public win version) branch version-win` <br />
<https://github.com/sceext2/evdh/tree/version-win>
Or you can download *evdh* releases from <br />
<https://github.com/sceext2/evdh/releases>
#### uuid mark for evdh
`uuid` mark for this program `evdh` is
> `uuid=1df11f80-183f-405f-b93c-4dff2ce08398 (public npm version)`
## VERSION
**current version** 0.0.2-1.npm test201502211207 `(public npm version) branch version-npm`
### version 0.0.2-1.npm test201502211207 (public npm version)
+ update README.md for evdh npm version.
### version v0.0.1 test201502202333 (public npm version)
+ first npm version of *evdh*. Forked from `evdh public version`. <br />
(`evdh version 0.1.5.0 test201502141915 (public version) branch version`)
### More Information
To get more information about version (include version history) <br />
please see
[VERSION.md](https://github.com/sceext2/evdh/blob/version-npm/o/VERSION.md)
(o/VERSION.md) <br />
Or <https://github.com/sceext2/evdh/releases>
## FEATURES
### evdh now has these features
+ **use [flv.cn](http://flv.cn)'s service to analyse URL** (api.flvxz.com) <br />
**AUTO** analyse the URL of video playing pages,
and get the URL of part video files to download.
+ **AUTO download all part video files, and AUTO create the file name to save** <br />
+ **AUTO merge part video files** <br />
*evdh* uses `ffmpeg` to **AUTO** merge part video files.
There it merges videos without re-encoding.
So it is very fast, and willnot hurt quality of video.
+ [NEW] **AUTO download many videos** <br />
In "task_list" mode, *evdh* can **AUTO** download many videos.
For example, write many URLs of video playing pages in the `url.list` file,
each in a line. <br />
Then use the command `$ ./evdh.sh --list-file url.list`
to **AUTO** download every videos in this list file.
+ **Continue the task not finished last time** <br />
*evdh* has log file, supports resuming HTTP download,
can continue to do the unfinished task last time when start.
+ [NEW] **AUTO mode and Interactive mode** <br />
*evdh* has 2 kinds of modes, **AUTO** mode and Interactive mode.
Use the command `$ ./evdh.sh` to start *evdh* in interactive mode.
The usage of AUTO mode, please use `$ ./evdh.sh --help` to show it.
+ [NEW] **AUTO retry after download failed** <br />
In "task_list" mode, if a download failed, *evdh* will **AUTO** retry to download.
Default retry times is 4.
+ **AUTO select video** <br />
Many videos can be got after analysing only one URL, with different video quality.
*evdh* can **AUTO** select one of them to download. <br />
First, *evdh* will select video by the code of video quality
(the "hd" number, which is provided by the analyse service of flv.cn),
which can be set in config file.
[NEW] Otherwise, in AUTO mode, *evdh* can **AUTO** select video by **KEYWORDS**.
If there is more than one video selected with the hd number,
in Interactive mode, *evdh* will ask user to select one.
But in AUTO mode, *evdh* will not ask user, and **AUTO** select videos with
keywords in the "quality string".
(the "quality string" is provided by the analyse service of flv.cn)
Keywords is writen in config file.
+ **Show download status and speed** <br />
When downloading videos, *evdh* will show the information such as
finished bytes, download speed.
+ **Multi-thread download** <br />
Each part video file downloads with single thread,
but many file can be downloaded at the same time.
So it is multi-thread download on the whole.
Default number of thread is 2, which can be changed in config file.
+ **Download memory buffer** <br />
Default size is 2MB (each file), which can be changed in config file.
This is used to protect hard disk, to prevent write too often.
+ **Config file** <br />
*evdh* has its own config file. token is stored in another file,
which can help to protect the private token.
### Shortcomings of evdh
Now *evdh* has some shortcomings, and some known BUGs.
More information please see
**[SHORTCOMING.md](https://github.com/sceext2/evdh/blob/version-npm/o/SHORTCOMING.md)**
(o/SHORTCOMING.md)
## TESTED
### Test info of evdh English version (public version) branch version
*evdh* is now tested on `ArchLinux` *(2015.02)*
+ **evdh works fine on ArchLinux**.
+ **Known problems** <br />
+ Installing *ffmpeg* on *Ubuntu 14.04* is not very easy. <br />
So the function "Auto merge part video files" has not been tested on *Ubuntu 14.04*.
**NOTE**: evdh is an **auto** download tool
writen to run on **GNU/Linux** OS, with *node.js*.
## About sceext and 2009EisF2015
**sceext** is my pen name.
sceext reads as s-c-e-e-x-t. <br />
`sceext` has no meaning, but only I use *sceext* on the Internet.
(There is hardly no conflicts.)
**EisF** is the mark that I add to my programs.
EisF means **E**isF **is** Eis**F**.
EisF is a *forked* **recursive acronym**. <br />
(Just like `GNU = GNU's Not Unix`)
`EisF = EisF is EisF` (`[E]isF [is] Eis[F]`)
**2009EisF2015** means that
the mark *EisF* has been used from *year 2009* to now (*year 2015*).
## keywords
evdh EisF Video Download Helper English version public version branch version
auto download videos
download videos easier
download videos on web pages
analyse videos on web pages
download youku video
download sohu video
with analyse service provided by flv.cn api.flvxz.com
:: end README.md