0,0 → 1,96 |
ViaThinkSoft YouTube Downloader Util 2.2 |
Author: Daniel Marschall <www.daniel-marschall.de> |
Licensed under the terms of the Apache 2.0 license |
|
Syntax: |
./ytdwn [-t|--type v:[ext]|a:[ext]] (default v:) |
[-o|--outputDir <dir>] (default current working directory) |
[-a|--alreadyDownloaded <file>] |
[-f|--failList <file> <treshold>] (This file logs failures) |
[-F|--failTreshold <num>] (Don't download if failure (-f) treshold is reached. Default: 3) |
[-V|--version] (shows version) |
[-v|--verbose] (displays verbose information to STDOUT) |
[-h|--help] (shows help) |
[-N|--no-mp3-tagtransfer] (disables transfer of video ID to MP3 ID tag) |
(This feature requires the package "id3v2") |
[-T|--default-template <t>] (Sets default filename template.) |
(Default: '%(title)s-%(id)s.%(ext)s') |
[-X|--extra-args <args>] (Additional arguments passed through) |
(youtube-dl. Default "-ic") |
[-A|--api-key <file|key>] (specifies the API key, or a file containing the API key) |
(Default: ~/.yt_api_key) |
[--cookies=<file>] A netscape compatible cookie file (for age restricted videos) |
(Default: ~/.yt_cookkies) |
[-C|--resultcache <file>] (allows video results to be cached in this file) |
(only for playlists or channels) |
[-O|--create-outputdir] (allows creation of the output directories, recursively) |
[--] |
<resource> [<resource> ...] |
|
For all paths (outputDir, alreadyDownloaded, apikey, failList and resultcache), you can use the |
term '[listname]' which will be replaced by the basename of the current list file (without file extension). |
For example you can do following: |
./ytdwn -o 'downloads/[listname]' -- list:*.list |
If no list file is processed, it will be replaced with nothing. |
|
The "alreadyDownloaded" argument contains a file which will be managed by ytdwn. |
It will contain all video IDs which have been downloaded. This allows you to |
move away the already downloaded files, and ytdwn will not download them again. |
|
Examples for type: |
v: best video quality |
a: best audio only |
a:mp3 audio only, mp3 |
Valid audio formats according to "man youtube-dl": |
"best", "aac", "flac", "mp3", "m4a", "opus", "vorbis", or "wav"; "best" by default |
|
A <resource> can be one of the following: |
vid:<video ID> |
vurl:<youtube video URL> |
pid:<playlist ID> |
purl:<playlist URL> |
cid:<channel id> |
cname:<channel name> |
curl:<channel or username URL> |
list:<file with resource entries> (comments can be #) |
search:<searchterm> |
|
For channels (cid, cname, curl) you can also perform a search to filter the results. |
This can be done like this: |
cname:[search="Elvis Presley"]channel_1234 |
For the search option, following parameters are possible: |
search:[order=date][maxresults=50]"Elvis Presley" |
Acceptable order values are: date, rating, relevance, title, videoCount, viewCount |
Default values are order=relevance and maxresults=10 |
Use maxresults=-1 to download everything which matches the searchterm. |
|
Requirements: |
- PHP CLI |
- Package "youtube-dl" (ytdwn will try to download it automatically, if possible) |
- A YouTube API key (can be obtained here: https://console.developers.google.com/apis/credentials ) |
- If you want to extract audio, you need additionally: ffmpeg or avconv and ffprobe or avprobe. |
- Optional: package "id3v2" to allow the YouTube video id to be transferred to the MP3 ID tag |
|
|
Age restricted videos how-to |
---------------------------- |
|
To download age restricted videos, you need to supply cookies from a browser that has been logged in to YouTube. |
|
Here is a method how to do this: |
|
(1) Download and install this Chrome extension: |
https://chrome.google.com/webstore/detail/cookiestxt/njabckikapfpffapmjgojcnbfjonfjfg/related |
|
(2) If you cannot see the Cookie-Button at the right top, then click the plugin button, and then enable "pinning" for the plugin "cookie.txt". |
|
(3) Login to YouTube at the same network where the YouTube Downloader will run. |
Press the cookie plugin button and copy the contents to a file called cookies.txt |
|
(4) Edit cookies.txt and add following comment at the very top: |
# HTTP Cookie File |
|
(5) Rename and move the file to ~/.yt_cookies |
OR |
Add the argument "--cookies=cookies.txt" to ytdwn. |
|