Compare commits
154 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 36ef9d9509 | |||
| f0242b98a8 | |||
| 782d021327 | |||
| 26dc98c5ca | |||
| c444b69644 | |||
| c3c160f402 | |||
| 59f945e799 | |||
| d2e9088ee4 | |||
| 167e13273e | |||
| 40f283d159 | |||
| 6a020a3218 | |||
| e275a2f1ab | |||
| 8afb663891 | |||
| 1df8afcc18 | |||
| b0035c3448 | |||
| 8c6f08911f | |||
| 7fc3fe2b54 | |||
| 6a6bbc01f5 | |||
| 774e0d72cd | |||
| 00221fad40 | |||
| c0716886d8 | |||
| 386cc2f23e | |||
| 1a93d2ce6e | |||
| 86d55e2f99 | |||
| 1d97efec15 | |||
| 31326e8739 | |||
| 843060b2e0 | |||
| 9c49a1a8bd | |||
| da9084a061 | |||
| caae7db812 | |||
| a29e9ec53c | |||
| 29a8bfbaa9 | |||
| 5e4ecfe225 | |||
| b2ee8bf786 | |||
| da0a0d59a1 | |||
| 52f8db8b79 | |||
| 644f92f6a5 | |||
| 54a1852f08 | |||
| 0b33704b43 | |||
| 17e311adf0 | |||
| 809987a65c | |||
| 2f0e8ad0a6 | |||
| a5bd123ec0 | |||
| c74d3d5d80 | |||
| c20b2894ff | |||
| 005caca467 | |||
| abb88dcb2f | |||
| c052029267 | |||
| 0669b923c0 | |||
| 110c975154 | |||
| 8005b349a4 | |||
| d185f03455 | |||
| 420cf88aeb | |||
| 504afbe65d | |||
| d929dd31d1 | |||
| 49698bfaa3 | |||
| 633f6f9b39 | |||
| 71c8858fcd | |||
| 83f5182bcf | |||
| fb65f76630 | |||
| 1f69efb978 | |||
| 3bcc0a565c | |||
| 2840ae3a8f | |||
| b51355ef99 | |||
| 1762b604b1 | |||
| 8c64aa48d2 | |||
| 8c3a45b6e4 | |||
| dc9e2d8e0c | |||
| e7d727efc2 | |||
| a89c5d20c7 | |||
| 044cb16590 | |||
| 81db2d8040 | |||
| 2811949f4c | |||
| 3a2c78a2da | |||
| 23cf656bd1 | |||
| 41ff5333f7 | |||
| 571d094858 | |||
| 96679b26cf | |||
| b7d1a2247e | |||
| 9746c518a5 | |||
| 959fa33ef9 | |||
| a44c76cdf4 | |||
| 6a3ff26a01 | |||
| 60a1c34662 | |||
| 49bd2af54f | |||
| a5999b83fd | |||
| 82eedd7d83 | |||
| 759320387a | |||
| 0be94d4c6a | |||
| 6bd03617e6 | |||
| a3d06cfe6d | |||
| cd891850ec | |||
| cdee681a2c | |||
| db2c6281eb | |||
| 06a129c9dd | |||
| 5a938b5d04 | |||
| b0e67d2404 | |||
| 92961845c3 | |||
| f9c3398449 | |||
| bffe76ba4b | |||
| 0d29baa7c6 | |||
| dd9d3efcfb | |||
| 9014805f26 | |||
| f973da57a4 | |||
| a073eb792f | |||
| f202278fe1 | |||
| 3328f34eb3 | |||
| 50d7a239ae | |||
| 81eb98e4bd | |||
| 78ef538449 | |||
| 6e3ed6385c | |||
| a2dafa7316 | |||
| 86e5e08789 | |||
| e397cf5b47 | |||
| 3fd01c88c5 | |||
| d2cbb552b7 | |||
| 9c358a8982 | |||
| 7923514ea0 | |||
| 004759c8f2 | |||
| 95f029a5d8 | |||
| ac47cfe369 | |||
| 463fe92d26 | |||
| ba8a90b0bf | |||
| 3a6c68881a | |||
| a290358c2f | |||
| 17faaa4548 | |||
| 3ea19089f9 | |||
| 9077650490 | |||
| 2ecbfb4cbc | |||
| 3519974510 | |||
| e76e4dc8b1 | |||
| 01e013b5e3 | |||
| 64ea994344 | |||
| a3e9208c01 | |||
| ec0d2e46c5 | |||
| 1b3dbefb04 | |||
| c3003bb4db | |||
| 6c7d5d8d14 | |||
| 35c0ad4587 | |||
| 941383109a | |||
| c95ac4f062 | |||
| 0732b1f39f | |||
| 8d78373ea0 | |||
| 17082ad9db | |||
| 725d763c48 | |||
| a993428ac9 | |||
| 7136abc8f3 | |||
| 790622091e | |||
| db03ff92a6 | |||
| b294d9fa38 | |||
| 5de4c645e2 | |||
| 05703c8f9c | |||
| f37b138766 | |||
| 5c7359365f |
+13
@@ -0,0 +1,13 @@
|
|||||||
|
*.kate-swp
|
||||||
|
downloads/*
|
||||||
|
updates_key.pem
|
||||||
|
youtube_dl.egg-info
|
||||||
|
test
|
||||||
|
build/
|
||||||
|
dist/
|
||||||
|
youtube-dl.1
|
||||||
|
youtube-dl.fish
|
||||||
|
youtube-dl.zsh
|
||||||
|
README.txt
|
||||||
|
youtube-dl.bash-completion
|
||||||
|
latest_version
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
Options +Indexes
|
||||||
|
|
||||||
|
RewriteEngine On
|
||||||
|
RewriteRule ^ip/?$ ip.php
|
||||||
|
|
||||||
|
RewriteRule ^bugs?/? https://github.com/ytdl-org/youtube-dl/issues [R=302,L]
|
||||||
|
RewriteRule ^readme/?$ https://github.com/ytdl-org/youtube-dl/blob/master/README.md [R=302,L,NE]
|
||||||
|
RewriteRule ^reporting/? https://github.com/ytdl-org/youtube-dl/blob/master/README.md#bugs [R=302,L,NE]
|
||||||
|
RewriteRule ^update/?$ https://github.com/ytdl-org/youtube-dl/blob/master/README.md#how-do-i-update-youtube-dl [R=302,L,NE]
|
||||||
|
RewriteRule ^donat(e|ions)/?$ https://ytdl-org.github.io/youtube-dl/donations.html [R=302,L]
|
||||||
|
RewriteRule ^faq/?$ https://github.com/ytdl-org/youtube-dl/blob/master/README.md#faq [R=302,L,NE]
|
||||||
|
RewriteRule ^(faq-)?anime/?$ https://github.com/ytdl-org/youtube-dl/blob/master/README.md#can-you-add-support-for-this-anime-video-site-or-site-which-shows-current-movies-for-free [R=302,L,NE]
|
||||||
|
RewriteRule ^copyright-infringement/?$ https://github.com/ytdl-org/youtube-dl/blob/master/README.md#can-you-add-support-for-this-anime-video-site-or-site-which-shows-current-movies-for-free [R=302,L,NE]
|
||||||
|
RewriteRule ^(faq-)?citw/?$ https://github.com/ytdl-org/youtube-dl/blob/master/README.md#do-i-always-have-to-pass-in---max-quality-format-or--citw [R=302,L,NE]
|
||||||
|
RewriteRule ^(?:example-url|questions)/?$ https://github.com/ytdl-org/youtube-dl/blob/master/CONTRIBUTING.md#is-the-description-of-the-issue-itself-sufficient [R=302,L,NE]
|
||||||
|
RewriteRule ^g403/?$ https://github.com/ytdl-org/youtube-dl/blob/master/README.md#i-extracted-a-video-url-with--g-but-it-does-not-play-on-another-machine--in-my-webbrowser [R=302,L,NE]
|
||||||
|
RewriteRule ^format-selection/?$ https://github.com/ytdl-org/youtube-dl#format-selection [R=302,L,NE]
|
||||||
|
RewriteRule ^output-template/?$ https://github.com/ytdl-org/youtube-dl#output-template [R=302,L,NE]
|
||||||
|
RewriteRule ^escape/?$ https://github.com/ytdl-org/youtube-dl#video-url-contains-an-ampersand-and-im-getting-some-strange-output-1-2839-or-v-is-not-recognized-as-an-internal-or-external-command [R=302,L,NE]
|
||||||
|
RewriteRule ^search-issues/?$ https://github.com/ytdl-org/youtube-dl/issues?q=is:issue [R=302,L,NE]
|
||||||
|
|
||||||
|
RewriteRule ^update/LATEST_VERSION$ https://ytdl-org.github.io/youtube-dl/update/LATEST_VERSION [R=302,L]
|
||||||
|
RewriteRule ^update/versions.json https://ytdl-org.github.io/youtube-dl/update/versions.json [R=302,L]
|
||||||
|
|
||||||
|
RewriteRule ^latest/version/?$ latest_version [L,T=text/plain]
|
||||||
|
RewriteRule ^latest_version/?$ - [T=text/plain]
|
||||||
|
RewriteRule ^latest(?:/(.*))?$ /downloads/latest/$1 [R=302,L]
|
||||||
|
RewriteRule ^\.git - [F]
|
||||||
|
|
||||||
|
ErrorDocument 302 "302"
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
# Just a placeholder script so that travis doesn't complain
|
||||||
|
language: python
|
||||||
|
script: true
|
||||||
@@ -1 +0,0 @@
|
|||||||
2011.11.23
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
default: update
|
|
||||||
|
|
||||||
update: compile update-readme update-latest
|
|
||||||
|
|
||||||
update-latest:
|
|
||||||
./youtube-dl.dev --version > LATEST_VERSION
|
|
||||||
|
|
||||||
update-readme:
|
|
||||||
@options=$$(COLUMNS=80 ./youtube-dl.dev --help | sed -e '1,/.*General Options.*/ d' -e 's/^\W\{2\}\(\w\)/### \1/') && \
|
|
||||||
header=$$(sed -e '/.*## OPTIONS/,$$ d' README.md) && \
|
|
||||||
footer=$$(sed -e '1,/.*## FAQ/ d' README.md) && \
|
|
||||||
echo "$${header}" > README.md && \
|
|
||||||
echo -e '\n## OPTIONS' >> README.md && \
|
|
||||||
echo "$${options}" >> README.md&& \
|
|
||||||
echo -e '\n## FAQ' >> README.md && \
|
|
||||||
echo "$${footer}" >> README.md
|
|
||||||
|
|
||||||
compile:
|
|
||||||
cp youtube_dl/__init__.py youtube-dl
|
|
||||||
|
|
||||||
.PHONY: default compile update update-latest update-readme
|
|
||||||
@@ -1,123 +0,0 @@
|
|||||||
# youtube-dl
|
|
||||||
|
|
||||||
## USAGE
|
|
||||||
youtube-dl [options] url [url...]
|
|
||||||
|
|
||||||
## DESCRIPTION
|
|
||||||
**youtube-dl** is a small command-line program to download videos from
|
|
||||||
YouTube.com and a few more sites. It requires the Python interpreter, version
|
|
||||||
2.x (x being at least 5), and it is not platform specific. It should work in
|
|
||||||
your Unix box, in Windows or in Mac OS X. It is released to the public domain,
|
|
||||||
which means you can modify it, redistribute it or use it however you like.
|
|
||||||
|
|
||||||
## OPTIONS
|
|
||||||
-h, --help print this help text and exit
|
|
||||||
-v, --version print program version and exit
|
|
||||||
-U, --update update this program to latest version
|
|
||||||
-i, --ignore-errors continue on download errors
|
|
||||||
-r, --rate-limit LIMIT download rate limit (e.g. 50k or 44.6m)
|
|
||||||
-R, --retries RETRIES number of retries (default is 10)
|
|
||||||
--dump-user-agent display the current browser identification
|
|
||||||
--list-extractors List all supported extractors and the URLs they
|
|
||||||
would handle
|
|
||||||
|
|
||||||
### Video Selection:
|
|
||||||
--playlist-start NUMBER playlist video to start at (default is 1)
|
|
||||||
--playlist-end NUMBER playlist video to end at (default is last)
|
|
||||||
--match-title REGEX download only matching titles (regex or caseless
|
|
||||||
sub-string)
|
|
||||||
--reject-title REGEX skip download for matching titles (regex or
|
|
||||||
caseless sub-string)
|
|
||||||
|
|
||||||
### Filesystem Options:
|
|
||||||
-t, --title use title in file name
|
|
||||||
-l, --literal use literal title in file name
|
|
||||||
-A, --auto-number number downloaded files starting from 00000
|
|
||||||
-o, --output TEMPLATE output filename template. Use %(stitle)s to get the
|
|
||||||
title, %(uploader)s for the uploader name,
|
|
||||||
%(autonumber)s to get an automatically incremented
|
|
||||||
number, %(ext)s for the filename extension, and %%
|
|
||||||
for a literal percent
|
|
||||||
-a, --batch-file FILE file containing URLs to download ('-' for stdin)
|
|
||||||
-w, --no-overwrites do not overwrite files
|
|
||||||
-c, --continue resume partially downloaded files
|
|
||||||
--no-continue do not resume partially downloaded files (restart
|
|
||||||
from beginning)
|
|
||||||
--cookies FILE file to read cookies from and dump cookie jar in
|
|
||||||
--no-part do not use .part files
|
|
||||||
--no-mtime do not use the Last-modified header to set the file
|
|
||||||
modification time
|
|
||||||
--write-description write video description to a .description file
|
|
||||||
--write-info-json write video metadata to a .info.json file
|
|
||||||
|
|
||||||
### Verbosity / Simulation Options:
|
|
||||||
-q, --quiet activates quiet mode
|
|
||||||
-s, --simulate do not download the video and do not write anything
|
|
||||||
to disk
|
|
||||||
--skip-download do not download the video
|
|
||||||
-g, --get-url simulate, quiet but print URL
|
|
||||||
-e, --get-title simulate, quiet but print title
|
|
||||||
--get-thumbnail simulate, quiet but print thumbnail URL
|
|
||||||
--get-description simulate, quiet but print video description
|
|
||||||
--get-filename simulate, quiet but print output filename
|
|
||||||
--get-format simulate, quiet but print output format
|
|
||||||
--no-progress do not print progress bar
|
|
||||||
--console-title display progress in console titlebar
|
|
||||||
|
|
||||||
### Video Format Options:
|
|
||||||
-f, --format FORMAT video format code
|
|
||||||
--all-formats download all available video formats
|
|
||||||
--max-quality FORMAT highest quality format to download
|
|
||||||
-F, --list-formats list all available formats (currently youtube only)
|
|
||||||
|
|
||||||
### Authentication Options:
|
|
||||||
-u, --username USERNAME account username
|
|
||||||
-p, --password PASSWORD account password
|
|
||||||
-n, --netrc use .netrc authentication data
|
|
||||||
|
|
||||||
### Post-processing Options:
|
|
||||||
--extract-audio convert video files to audio-only files (requires
|
|
||||||
ffmpeg and ffprobe)
|
|
||||||
--audio-format FORMAT "best", "aac", "vorbis" or "mp3"; best by default
|
|
||||||
--audio-quality QUALITY ffmpeg audio bitrate specification, 128k by default
|
|
||||||
-k, --keep-video keeps the video file on disk after the post-
|
|
||||||
processing; the video is erased by default
|
|
||||||
|
|
||||||
## FAQ
|
|
||||||
|
|
||||||
### Can you please put the -b option back?
|
|
||||||
|
|
||||||
Most people asking this question are not aware that youtube-dl now defaults to downloading the highest available quality as reported by YouTube, which will be 1080p or 720p in some cases, so you no longer need the -b option. For some specific videos, maybe YouTube does not report them to be available in a specific high quality format you''re interested in. In that case, simply request it with the -f option and youtube-dl will try to download it.
|
|
||||||
|
|
||||||
### I get HTTP error 402 when trying to download a video. What's this?
|
|
||||||
|
|
||||||
Apparently YouTube requires you to pass a CAPTCHA test if you download too much. We''re [considering to provide a way to let you solve the CAPTCHA](https://github.com/rg3/youtube-dl/issues/154), but at the moment, your best course of action is pointing a webbrowser to the youtube URL, solving the CAPTCHA, and restart youtube-dl.
|
|
||||||
|
|
||||||
### I have downloaded a video but how can I play it?
|
|
||||||
|
|
||||||
Once the video is fully downloaded, use any video player, such as [vlc](http://www.videolan.org) or [mplayer](http://www.mplayerhq.hu/).
|
|
||||||
|
|
||||||
### The links provided by youtube-dl -g are not working anymore
|
|
||||||
|
|
||||||
The URLs youtube-dl outputs require the downloader to have the correct cookies. Use the `--cookies` option to write the required cookies into a file, and advise your downloader to read cookies from that file.
|
|
||||||
|
|
||||||
### ERROR: no fmt_url_map or conn information found in video info
|
|
||||||
|
|
||||||
youtube has switched to a new video info format in July 2011 which is not supported by old versions of youtube-dl. You can update youtube-dl with `sudo youtube-dl --update`.
|
|
||||||
|
|
||||||
## COPYRIGHT
|
|
||||||
|
|
||||||
youtube-dl is released into the public domain by the copyright holders.
|
|
||||||
|
|
||||||
This README file was originally written by Daniel Bolton (<https://github.com/dbbolton>) and is likewise released into the public domain.
|
|
||||||
|
|
||||||
## BUGS
|
|
||||||
|
|
||||||
Bugs and suggestions should be reported at: <https://github.com/rg3/youtube-dl/issues>
|
|
||||||
|
|
||||||
Please include:
|
|
||||||
|
|
||||||
* Your exact command line, like `youtube-dl -t "http://www.youtube.com/watch?v=uHlDtZ6Oc3s&feature=channel_video_title"`. A common mistake is not to escape the `&`. Putting URLs in quotes should solve this problem.
|
|
||||||
* The output of `youtube-dl --version`
|
|
||||||
* The output of `python --version`
|
|
||||||
* The name and version of your Operating System ("Ubuntu 11.04 x64" or "Windows 7 x64" is usually enough).
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
RewriteEngine On
|
||||||
|
|
||||||
|
RewriteRule ^$ https://github.com/ytdl-org/youtube-dl/releases
|
||||||
|
RewriteRule latest(.*) /downloads/2019.03.09$1 [L,R=302]
|
||||||
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
RewriteEngine On
|
||||||
|
|
||||||
|
RewriteRule ^$ https://github.com/ytdl-org/youtube-dl/releases/tag/2016.06.03_tmp [R=302,L]
|
||||||
|
RewriteRule ^(.+)$ https://github.com/ytdl-org/youtube-dl/releases/download/2016.06.03_tmp/$1 [R=302,L]
|
||||||
|
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
|
||||||
|
<title>youtube-dl</title>
|
||||||
|
<link rel="stylesheet" href="style.css" type="text/css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<h1>youtube-dl downloads</h1>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
$latest = file_get_contents('latest_version');
|
||||||
|
|
||||||
|
echo '<div class="latest">';
|
||||||
|
echo '<div><a href="latest">Latest</a> (v' . htmlspecialchars($latest) . ') downloads:</div>';
|
||||||
|
echo '<a href="downloads/latest/youtube-dl">youtube-dl</a> ';
|
||||||
|
echo '<a href="downloads/latest/youtube-dl.exe">youtube-dl.exe</a> ';
|
||||||
|
echo '<a href="downloads/latest/youtube-dl-' . htmlspecialchars($latest) . '.tar.gz">youtube-dl-' . htmlspecialchars($latest) . '.tar.gz</a>';
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
See the right for more resources.
|
||||||
|
|
||||||
|
<table border="0" id="rgb" style="float: right;">
|
||||||
|
<tr><td><a class="button" id="main-homepage" href="http://ytdl-org.github.io/youtube-dl/">Homepage</a></td></tr>
|
||||||
|
<tr><td><a class="button" id="g" href="http://ytdl-org.github.io/youtube-dl/download.html">Download instructions</a></td></tr>
|
||||||
|
<tr><td><a class="button" id="r" href="http://ytdl-org.github.io/youtube-dl/documentation.html">Documentation</a></td></tr>
|
||||||
|
<tr><td><a class="button" id="main-support" href="https://github.com/ytdl-org/youtube-dl/issues/">Support</a></td></tr>
|
||||||
|
<tr><td><a class="button" id="y" href="https://github.com/ytdl-org/youtube-dl/">Develop</a></td></tr>
|
||||||
|
<tr><td><a class="button" id="b" href="http://ytdl-org.github.io/youtube-dl/about.html">About</a></td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
header('Content-Type: text/plain');
|
||||||
|
echo $_SERVER['REMOTE_ADDR'];
|
||||||
@@ -0,0 +1,152 @@
|
|||||||
|
body {
|
||||||
|
font-family: sans-serif;
|
||||||
|
margin-left: 10%;
|
||||||
|
margin-right: 10%;
|
||||||
|
margin-top: 2ex;
|
||||||
|
margin-bottom: 3ex;
|
||||||
|
background-color: white;
|
||||||
|
color: black;
|
||||||
|
/*background-color: #fff1db;*/
|
||||||
|
background-color: white;
|
||||||
|
/*
|
||||||
|
background-image: url("gradient.png");
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
background-image: url("gradient2.png");
|
||||||
|
background-repeat: repeat-y;
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
background-image: url("gradient3.png");
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
background-image: url("gradient4.png");
|
||||||
|
background-repeat: repeat-y;
|
||||||
|
*/
|
||||||
|
background-image: url("gradient5.png");
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.heading {
|
||||||
|
border: 0;
|
||||||
|
color: black;
|
||||||
|
font-size: xx-large;
|
||||||
|
font-weight: bold;
|
||||||
|
padding-bottom: 1ex;
|
||||||
|
border-bottom: 1px solid black;
|
||||||
|
margin-bottom: 2ex;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.heading tr {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
.heading td {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
.heading a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
.title {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.subtitle {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.toc {
|
||||||
|
padding-left: 2ex;
|
||||||
|
border: 1px solid #aaaaaa;
|
||||||
|
background-color: white;
|
||||||
|
padding-bottom: 1ex;
|
||||||
|
border-radius: 10px;
|
||||||
|
-moz-border-radius: 10px;
|
||||||
|
}
|
||||||
|
.toc ul {
|
||||||
|
margin: 0; list-style-type: none;
|
||||||
|
}
|
||||||
|
hr {
|
||||||
|
margin-top: 3ex;
|
||||||
|
margin-bottom: 3ex;
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
.note {
|
||||||
|
margin-top: 10ex;
|
||||||
|
text-align: center;
|
||||||
|
font-size: x-small;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
font-size: x-large;
|
||||||
|
margin-top: 2ex;
|
||||||
|
color: black;
|
||||||
|
margin-left: 2%;
|
||||||
|
margin-right: 2%;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
font-size: large;
|
||||||
|
margin-left: 5%;
|
||||||
|
margin-right: 5%;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
margin-left: 5%;
|
||||||
|
margin-right: 5%;
|
||||||
|
}
|
||||||
|
ul {
|
||||||
|
margin-left: 5%;
|
||||||
|
margin-right: 5%;
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
margin-left: 3%;
|
||||||
|
margin-top: 0.5ex;
|
||||||
|
margin-bottom: 0.5ex;
|
||||||
|
}
|
||||||
|
tt {
|
||||||
|
padding-left: 0.5ex;
|
||||||
|
padding-right: 0.5ex;
|
||||||
|
background: #dddddd;
|
||||||
|
}
|
||||||
|
#rgb {
|
||||||
|
width: 33%;
|
||||||
|
margin: 3ex auto;
|
||||||
|
}
|
||||||
|
.button {
|
||||||
|
color: white;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: x-large;
|
||||||
|
text-decoration: none;
|
||||||
|
text-align: center;
|
||||||
|
display: block;
|
||||||
|
padding: 2ex;
|
||||||
|
border-radius: 10px;
|
||||||
|
-moz-border-radius: 10px;
|
||||||
|
}
|
||||||
|
#r {
|
||||||
|
background-color: #884444;
|
||||||
|
border: 2px solid #880000;
|
||||||
|
}
|
||||||
|
#g {
|
||||||
|
background-color: #448844;
|
||||||
|
border: 2px solid #006600;
|
||||||
|
}
|
||||||
|
#b {
|
||||||
|
background-color: #444488;
|
||||||
|
border: 2px solid #000088;
|
||||||
|
}
|
||||||
|
#y {
|
||||||
|
background-color: #888844;
|
||||||
|
border: 2px solid #666600;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main-homepage {
|
||||||
|
background-color: #848;
|
||||||
|
border: 2px solid #808;
|
||||||
|
|
||||||
|
}
|
||||||
|
#main-support {
|
||||||
|
background-color: #448888;
|
||||||
|
border: 2px solid #008888;
|
||||||
|
}
|
||||||
|
|
||||||
|
.all-versions {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
# Various small unit tests
|
|
||||||
|
|
||||||
import os,sys
|
|
||||||
sys.path.append(os.path.dirname(os.path.dirname(__file__)))
|
|
||||||
|
|
||||||
import youtube_dl
|
|
||||||
|
|
||||||
def test_simplify_title():
|
|
||||||
assert youtube_dl._simplify_title(u'abc') == u'abc'
|
|
||||||
assert youtube_dl._simplify_title(u'abc_d-e') == u'abc_d-e'
|
|
||||||
|
|
||||||
assert youtube_dl._simplify_title(u'123') == u'123'
|
|
||||||
|
|
||||||
assert u'/' not in youtube_dl._simplify_title(u'abc/de')
|
|
||||||
assert u'abc' in youtube_dl._simplify_title(u'abc/de')
|
|
||||||
assert u'de' in youtube_dl._simplify_title(u'abc/de')
|
|
||||||
assert u'/' not in youtube_dl._simplify_title(u'abc/de///')
|
|
||||||
|
|
||||||
assert u'\\' not in youtube_dl._simplify_title(u'abc\\de')
|
|
||||||
assert u'abc' in youtube_dl._simplify_title(u'abc\\de')
|
|
||||||
assert u'de' in youtube_dl._simplify_title(u'abc\\de')
|
|
||||||
|
|
||||||
assert youtube_dl._simplify_title(u'ä') == u'ä'
|
|
||||||
assert youtube_dl._simplify_title(u'кириллица') == u'кириллица'
|
|
||||||
|
|
||||||
# Strip underlines
|
|
||||||
assert youtube_dl._simplify_title(u'\'a_') == u'a'
|
|
||||||
Executable
+19
@@ -0,0 +1,19 @@
|
|||||||
|
#/bins/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
version="$1"
|
||||||
|
|
||||||
|
if [ -z "$version" ]; then
|
||||||
|
echo "Usage: $0 version"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "$(dirname $(readlink -f $0))"
|
||||||
|
|
||||||
|
echo -n "$version" > latest_version
|
||||||
|
|
||||||
|
echo -e "RewriteEngine On" > downloads/.htaccess
|
||||||
|
echo -e "RewriteRule ^$ https://github.com/ytdl-org/youtube-dl/releases" >> downloads/.htaccess
|
||||||
|
echo -e "RewriteRule ^(\d{4}\.\d{2}\.\d{2}(?:\.\d+)?/?)$ https://github.com/ytdl-org/youtube-dl/releases/tag/\$1" >> downloads/.htaccess
|
||||||
|
echo -e "RewriteRule ^(\d{4}\.\d{2}\.\d{2}(?:\.\d+)?/.+)$ https://github.com/ytdl-org/youtube-dl/releases/download/\$1" >> downloads/.htaccess
|
||||||
|
echo -e "RewriteRule latest(.*) /downloads/$1\$1 [L,R=302]" >> downloads/.htaccess
|
||||||
-4188
File diff suppressed because it is too large
Load Diff
@@ -1,6 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
import youtube_dl
|
|
||||||
|
|
||||||
youtube_dl.main()
|
|
||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user