Initial import

This commit is contained in:
Pierre Rudloff 2014-03-13 20:07:56 +01:00
parent c082725c80
commit 0651377e93
35 changed files with 1296 additions and 0 deletions

220
api.php Normal file
View File

@ -0,0 +1,220 @@
<?php
/**
* PHP web interface for youtube-dl (http://rg3.github.com/youtube-dl/)
*
* PHP Version 5.3.10
*
* @category Youtube-dl
* @package Youtubedl
* @author Pierre Rudloff <rudloff@strasweb.fr>
* @license GNU General Public License http://www.gnu.org/licenses/gpl.html
* @link http://rudloff.pro
* */
$python="/usr/bin/python";
require_once 'download.php';
if (isset($_GET["url"])) {
if (isset($_GET["format"]) || isset($_GET['audio'])) {
$video = json_decode(VideoDownload::getJSON($_GET["url"], $_GET["format"]));
if (isset($video->url)) {
//Vimeo needs a correct user-agent
$UA = VideoDownload::getUA();
ini_set(
'user_agent',
$UA
);
$url_info = parse_url($video->url);
if ($url_info['scheme'] == 'rtmp') {
if (isset($_GET['audio'])) {
header(
'Content-Disposition: attachment; filename="'.
html_entity_decode(
pathinfo(
VideoDownload::getFilename(
$video->webpage_url
), PATHINFO_FILENAME
).'.mp3', ENT_COMPAT, 'ISO-8859-1'
).'"'
);
header("Content-Type: audio/mpeg");
passthru(
'/usr/bin/rtmpdump -q -r '.escapeshellarg($video->url).
' | /usr/bin/avconv -v quiet -i - -f mp3 pipe:1'
);
exit;
} else {
header(
'Content-Disposition: attachment; filename="'.
html_entity_decode(
VideoDownload::getFilename(
$video->webpage_url, $video->format_id
), ENT_COMPAT, 'ISO-8859-1'
).'"'
);
header("Content-Type: application/octet-stream");
passthru(
'/usr/bin/rtmpdump -q -r '.escapeshellarg($video->url)
);
exit;
}
} else {
if (isset($_GET['audio'])) {
header(
'Content-Disposition: attachment; filename="'.
html_entity_decode(
pathinfo(
VideoDownload::getFilename(
$video->webpage_url
), PATHINFO_FILENAME
).'.mp3', ENT_COMPAT, 'ISO-8859-1'
).'"'
);
header("Content-Type: audio/mpeg");
passthru(
'/usr/bin/wget -q --user-agent='.escapeshellarg($UA).
' -O - '.escapeshellarg($video->url).
' | /usr/bin/avconv -v quiet -i - -f mp3 pipe:1'
);
exit;
} else if (pathinfo($video->url, PATHINFO_EXTENSION) == 'm3u8') {
header(
'Content-Disposition: attachment; filename="'.
html_entity_decode(
pathinfo(
VideoDownload::getFilename(
$video->webpage_url
), PATHINFO_FILENAME
).'.mp4', ENT_COMPAT, 'ISO-8859-1'
).'"'
);
header("Content-Type: video/mp4");
passthru(
'/usr/bin/avconv -v quiet -i '.
escapeshellarg($video->url).' -f h264 pipe:1'
);
exit;
} else {
$headers = get_headers($video->url, 1);
header(
'Content-Disposition: attachment; filename="'.
html_entity_decode(
VideoDownload::getFilename(
$video->webpage_url, $video->format_id
), ENT_COMPAT, 'ISO-8859-1'
).'"'
);
if (is_string($headers['Content-Type'])
&& isset($headers['Content-Type'])
) {
header("Content-Type: ".$headers['Content-Type']);
} else {
header("Content-Type: application/octet-stream");
}
if (is_string($headers['Content-Length'])
&& isset($headers['Content-Length'])
) {
header("Content-Length: ".$headers['Content-Length']);
}
readfile($video->url);
exit;
}
}
} else {
$error=true;
}
} else {
$video = json_decode(VideoDownload::getJSON($_GET["url"]));
if (isset($video->webpage_url)) {
include 'head.php';
?>
<body>
<div class="wrapper">
<div class="main">
<?php
include 'logo.php';
?>
<p>You are going to download<i>
<a href="<?php echo $video->webpage_url; ?>">
<?php
echo $video->title;
?></a></i>.</p>
<?php
echo '<img class="thumb" src="',
$video->thumbnail, '" alt="" />';
?><br/>
<form action="api.php">
<input type="hidden" name="url"
value="<?php echo $video->webpage_url; ?>" />
<?php
if (isset($video->formats)) {
?>
<legend for="format">Select format</legend>
<select id="format" name="format">
<?php
foreach ($video->formats as $format) {
echo '<option value="', $format->format_id, '"';
if ($format->format_id == $video->format_id) {
echo ' selected ';
}
echo '>';
echo $format->format, ' (', $format->ext, ')';
echo '</option>';
}
?>
</select><br/><br/>
<?php
} else {
?>
<input type="hidden" name="format" value="best" />
<?php
}
?>
<input class="downloadBtn" type="submit" value="Download" /><br/>
</form>
</div>
</div>
<?php
include 'footer.php';
?>
</body>
</html>
<?php
} else {
$error=true;
}
}
}
if (isset($error)) {
include 'head.php';
?>
<body>
<div class="wrapper">
<div class="main error">
<?php
include 'logo.php';
?>
<h2>An error occured</h2>
Please check the URL of your video.
If you think this is a bug, please report the following error
to <a href="mailto:contact@rudloff.pro"><i>contact@rudloff.pro</i></a>:
<p><i>
<?php
foreach ($video['error'] as $error) {
print $error;
?>
<br/>
<?php
}
?>
</i></p>
</div>
</div>
<?php
include 'footer.php';
?>
</body>
</html>
<?php
}
?>

211
download.php Normal file
View File

@ -0,0 +1,211 @@
<?php
/**
* PHP web interface for youtube-dl (http://rg3.github.com/youtube-dl/)
* Main class
*
* PHP Version 5.3.10
*
* @category Youtube-dl
* @package Youtubedl
* @author Pierre Rudloff <rudloff@strasweb.fr>
* @license GNU General Public License http://www.gnu.org/licenses/gpl.html
* @link http://rudloff.pro
* */
/**
* PHP web interface for youtube-dl (http://rg3.github.com/youtube-dl/)
* Main class
*
* PHP Version 5.3.10
*
* @category Youtube-dl
* @package Youtubedl
* @author Pierre Rudloff <rudloff@strasweb.fr>
* @license GNU General Public License http://www.gnu.org/licenses/gpl.html
* @link http://rudloff.pro
* */
Class VideoDownload
{
static private $_python="/usr/bin/python";
static private $_params="--no-playlist";
/**
* Get version of youtube-dl
*
* @return string Version
* */
function getVersion ()
{
exec(
VideoDownload::$_python.' youtube-dl --version',
$version, $code
);
return $version[0];
}
/**
* Get the user agent used youtube-dl
*
* @return string UA
* */
function getUA ()
{
exec(
VideoDownload::$_python.' youtube-dl --dump-user-agent',
$version, $code
);
return $version[0];
}
/**
* List all extractors
*
* @return array Extractors
* */
function listExtractors ()
{
exec(
VideoDownload::$_python.' youtube-dl --list-extractors',
$extractors, $code
);
return $extractors;
}
/**
* Get filename of video
*
* @param string $url URL of page
* @param string $format Format to use for the video
*
* @return string Filename
* */
function getFilename ($url, $format=null)
{
$cmd=VideoDownload::$_python.' youtube-dl';
if (isset($format)) {
$cmd .= ' -f '.escapeshellarg($format);
}
$cmd .=' --get-filename '.escapeshellarg($url)." 2>&1";
exec(
$cmd,
$filename
);
return end($filename);
}
/**
* Get title of video
*
* @param string $url URL of page
*
* @return string Title
* */
function getTitle ($url)
{
exec(
VideoDownload::$_python.' youtube-dl --get-title '.
escapeshellarg($url),
$title
);
$title=$title[0];
return $title;
}
/**
* Get all information about a video
*
* @param string $url URL of page
* @param string $format Format to use for the video
*
* @return string JSON
* */
function getJSON ($url, $format=null)
{
$cmd=VideoDownload::$_python.' youtube-dl '.VideoDownload::$_params;
if (isset($format)) {
$cmd .= ' -f '.escapeshellarg($format);
}
$cmd .=' --dump-json '.escapeshellarg($url);
exec(
$cmd,
$json
);
return $json[0];
}
/**
* Get thumbnail of video
*
* @param string $url URL of page
*
* @return string URL of image
* */
function getThumbnail ($url)
{
exec(
VideoDownload::$_python.' youtube-dl --get-thumbnail '.
escapeshellarg($url),
$thumb
);
if (isset($thumb[0])) {
return $thumb[0];
}
}
/**
* Get a list available formats for this video
*
* @param string $url URL of page
*
* @return string Title
* */
function getAvailabeFormats ($url)
{
exec(
VideoDownload::$_python.' youtube-dl -F '.
escapeshellarg($url),
$formats
);
$return=array();
foreach ($formats as $i=>$format) {
if ($i > 4) {
$return[]=(preg_split('/(\s\s+)|(\s+:?\s+)|(\s+\[)|\]/', $format));
}
}
if (empty($return)) {
foreach ($formats as $i=>$format) {
if ($i > 3) {
$return[]=preg_split('/(\s\s+)|(\s+:?\s+)|(\s+\[)|\]/', $format);
}
}
}
return $return;
}
/**
* Get URL of video from URL of page
*
* @param string $url URL of page
* @param string $format Format to use for the video
*
* @return string URL of video
* */
function getURL ($url, $format=null)
{
$cmd=VideoDownload::$_python.' youtube-dl';
if (isset($format)) {
$cmd .= ' -f '.escapeshellarg($format);
}
$cmd .=' -g '.escapeshellarg($url)." 2>&1";
exec(
$cmd, $url, $code
);
if ($code>0) {
return array('success'=>false, 'error'=>$url);
} else {
return array('success'=>true, 'url'=>end($url));
}
}
}
?>

56
extractors.php Normal file
View File

@ -0,0 +1,56 @@
<?php
/**
* PHP web interface for youtube-dl (http://rg3.github.com/youtube-dl/)
* List of all supported websites
*
* PHP Version 5.3.10
*
* @category Youtube-dl
* @package Youtubedl
* @author Pierre Rudloff <rudloff@strasweb.fr>
* @author Olivier Haquette <contact@olivierhaquette.fr>
* @license GNU General Public License http://www.gnu.org/licenses/gpl.html
* @link http://rudloff.pro
* */
require 'head.php';
?>
<body class="extractors">
<?php
require 'header.php';
?>
<div class="wrapper">
<?php
require 'logo.php';
?>
<h2 class="titre">Supported websites</h2>
<div class="tripleliste">
<ul>
<?php
require_once 'download.php';
$extractors=(VideoDownload::listExtractors());
foreach ($extractors as $extractor) {
echo '<li>'.$extractor.'</li>';
}
?>
</ul>
</div>
</div>
<?php
require 'footer.php';
?>
</body>
</html>

29
footer.php Normal file
View File

@ -0,0 +1,29 @@
<footer>
<div class="footer_wrapper">
&copy; AllTube Download <span itemprop="copyrightYear">2013</span> &middot;
Code by <a rel="author" target="blank" itemprop="author" href="http://rudloff.pro/">Pierre Rudloff</a>
&middot; Design by
<a rel="author" itemprop="author" target="blank" href="http://olivierhaquette.fr">Olivier Haquette</a>
&middot;
<a target="_blank" href="https://www.facebook.com/pages/AllTube-Download/571380966249415" title="AllTube Download on Facebook">Like us on Facebook</a>
&middot;
Based on <a href="http://rg3.github.io/youtube-dl/">youtube-dl</a>
</div>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u=(("https:" == document.location.protocol) ? "https" : "http") + "://rudloff.pro/piwik//";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 1]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript';
g.defer=true; g.async=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="http://rudloff.pro/piwik/piwik.php?idsite=1" style="border:0" alt="" /></p></noscript>
<!-- End Piwik Code -->
</footer>

26
head.php Normal file
View File

@ -0,0 +1,26 @@
<!Doctype HTML>
<html lang="en" itemscope itemtype="http://schema.org/WebApplication">
<head>
<meta charset="UTF-8" />
<meta name=viewport content="width=device-width, initial-scale=1">
<meta name="description" content="Easily download videos from Youtube, Dailymotion, Vimeo and other websites." />
<link rel="stylesheet" href="style.css" />
<link rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Open+Sans:400,300" />
<link rel="author" href="https://plus.google.com/110403274854419000481?rel=author" />
<link rel="author" href="https://plus.google.com/103696815796116179392?rel=author" />
<title itemprop="name">AllTube Download</title>
<meta itemprop="url" content="http://alltubedownload.net/" />
<link rel="icon" href="img/favicon.png" />
<meta property="og:url" content="http://www.alltubedownload.net/" />
<meta property="og:title" content="AllTube Download" />
<meta property="og:description" content="Easily download videos from Youtube, Dailymotion, Vimeo and other websites." />
<meta property="og:image" content="http://www.alltubedownload.net/img/logo.png" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content="AllTube Download" />
<meta name="twitter:image" content="http://www.alltubedownload.net/img/logo.png" />
<meta name="twitter:creator" content="@Tael67" />
<meta name="twitter:description" content="Easily download videos from Youtube, Dailymotion, Vimeo and other websites." />
</head>

26
header.php Normal file
View File

@ -0,0 +1,26 @@
<?php
/**
* PHP web interface for youtube-dl (http://rg3.github.com/youtube-dl/)
* Header
*
* PHP Version 5.3.10
*
* @category Youtube-dl
* @package Youtubedl
* @author Pierre Rudloff <rudloff@strasweb.fr>
* @author Olivier Haquette <contact@olivierhaquette.fr>
* @license GNU General Public License http://www.gnu.org/licenses/gpl.html
* @link http://rudloff.pro
* */
?>
<header>
<div class="social">
<a class="twitter" href="http://twitter.com/home?status=<?php
echo urlencode('http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']);
?>" target="_blank">
Share on Twitter<div class="twittermask"></div></a>
<a class="facebook" href="https://www.facebook.com/sharer/sharer.php?u=<?php
echo urlencode('http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']);
?>" target="_blank">Share on Facebook<div class="facebookmask"></div></a>
</div>
</header>

BIN
img/compatiblerouage.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 949 B

BIN
img/facebook.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
img/facebookmask.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
img/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
img/fond.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
img/fondfooter.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 885 B

BIN
img/fondfooter.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
img/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
img/logo_60.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
img/logo_90.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
img/logo_app.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
img/logocompatible.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

BIN
img/logocompatiblehover.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

BIN
img/logocompatiblemask.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
img/mp3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

BIN
img/mp3hover.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 731 B

BIN
img/share.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
img/share.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
img/sharemask.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
img/twitter.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

BIN
img/twittermask.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

54
index.php Normal file
View File

@ -0,0 +1,54 @@
<?php
/**
* PHP web interface for youtube-dl (http://rg3.github.com/youtube-dl/)
* Index page
*
* PHP Version 5.3.10
*
* @category Youtube-dl
* @package Youtubedl
* @author Pierre Rudloff <rudloff@strasweb.fr>
* @author Olivier Haquette <contact@olivierhaquette.fr>
* @license GNU General Public License http://www.gnu.org/licenses/gpl.html
* @link http://rudloff.pro
* */
require 'head.php';
?>
<body>
<?php
require 'header.php';
?>
<div class="wrapper">
<div class="main">
<h1><img itemprop="image" class="logo" src="img/logo.png"
alt="AllTube Download" width="328" height="284"></h1>
<form action="api.php">
<label class="labelurl" for="url">
Copy here the URL of your video (Youtube, Dailymotion, etc.)
</label>
<div class="champs">
<span class="URLinput_wrapper">
<input class="URLinput" type="url" name="url" id="url"
required placeholder="http://website.com/video" />
</span>
<input class="downloadBtn" type="submit" value="Download" /><br/>
<div class="mp3">
<p><input type="checkbox" id="audio" class="audio" name="audio">
<label for="audio"><span class="ui"></span>Audio only (MP3)</label></p>
</div>
</div>
</form>
<a class="combatiblelink" href="extractors.php">See all supported websites</a>
</div>
</div>
<?php
require 'footer.php';
?>
</body>
</html>

10
json.php Normal file
View File

@ -0,0 +1,10 @@
<?php
$python="/usr/bin/python";
require_once 'download.php';
if (isset($_GET["url"])) {
header('Content-Type: application/json');
$video = VideoDownload::getJSON($_GET["url"]);
echo $video;
}
?>

4
logo.php Normal file
View File

@ -0,0 +1,4 @@
<h1 class="logobis">
<a class="logocompatible" href="index.php">
AllTube Download<span class="logocompatiblemask"><img src="img/logocompatiblemask.png" width="447" height="107" alt="" /></span>
</a></h1>

16
manifest.webapp Normal file
View File

@ -0,0 +1,16 @@
{
"name": "AllTube",
"description": "Easily download videos from Youtube, Dailymotion, Vimeo and other websites",
"developer": {
"name": "Pierre Rudloff",
"url": "https://rudloff.pro/"
},
"icons": {
"32": "/img/favicon.png",
"60": "/img/logo_60.png",
"90": "/img/logo_90.png",
"243": "/img/logo_app.png"
},
"default_locale": "en",
"launch_path": "/index.php"
}

1
robots.txt Normal file
View File

@ -0,0 +1 @@
Sitemap: http://alltubedownload.net/sitemap.xml

12
sitemap.xml Normal file
View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://alltubedownload.net/</loc>
<changefreq>yearly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>http://alltubedownload.net/extractors.php</loc>
<changefreq>weekly</changefreq>
</url>
</urlset>

616
style.css Normal file
View File

@ -0,0 +1,616 @@
body {
text-align:center;
background-image:url('img/fond.jpg');
font-family: 'Open Sans', sans-serif;
font-weight:400;
}
/************************HEADER******************************/
header {
position:absolute;
top:0;
text-align:right;
width:100%;
padding:0;
}
.social
{padding-right:21px;}
header a
{
overflow:hidden;
height:38px;
width:38px;
position:relative;
float:right;
margin-top:13px;
margin-left:13px;
margin-right:0;
background-position:0 0;
background-repeat:no-repeat;
-webkit-transition: all 0.1s ease-in;
-moz-transition: all 0.1s ease-in;
-o-transition: all 0.1s ease-in;
}
header a:focus,
header a:hover
{
outline:none;
background-position:0 100%;
-webkit-transition: all 0.1s ease-in;
-moz-transition: all 0.1s ease-in;
-o-transition: all 0.1s ease-in;
}
.share
{background-image:url('img/share.png');}
.sharemask
{
height:38px;
width:38px;
position:absolute;
top:0;
left:0;
z-index:10;
background-image:url('img/sharemask.png');
background-position:top left;
background-repeat:no-repeat;
}
.facebook
{background-image:url('img/facebook.png');}
.facebookmask
{
height:38px;
width:38px;
position:absolute;
top:0;
left:0;
z-index:10;
background-image:url('img/facebookmask.png');
background-position:top left;
background-repeat:no-repeat;
}
.twitter
{background-image:url('img/twitter.png');}
.twittermask
{
height:38px;
width:38px;
position:absolute;
top:0;
left:0;
z-index:10;
background-image:url('img/twittermask.png');
background-position:top left;
background-repeat:no-repeat;
}
/*************************FOOTER****************************/
footer {
position:fixed;
bottom:0;
text-align:center;
width:100%;
background-image:url('img/fondfooter.png');
background-repeat:repeat-x;
background-position:top left;
padding-top:20px;
color:#adadad;
font-size:12px;
z-index:11;
}
.footer_wrapper {
height:28px;
}
footer a{
color:#adadad;
-webkit-transition: all 0.1s ease-in;
-moz-transition: all 0.1s ease-in;
-o-transition: all 0.1s ease-in;
text-decoration:none;
}
footer a:focus,
footer a:hover
{
outline:none;
color:#f2084a;
-webkit-transition: all 0.1s ease-in;
-moz-transition: all 0.1s ease-in;
-o-transition: all 0.1s ease-in;
}
/*************************CONTENT ACCUEIL****************************/
.logo {
padding-bottom:55px;
}
.labelurl
{
position:relative;
color:#3f3f3f;
font-size:19px;
}
.champs
{
position:relative;
margin-bottom:70px;
margin-top:8px;
}
.downloadBtn {
position:relative;
background-color:#3A3A3A;
border: 3px solid #a5a5a5;
color:#dedede;
border-radius:10px;
padding: 12px 14px;
font-size:24px;
font-weight:800;
cursor:pointer;
-webkit-transition: all 0.1s ease-in;
-moz-transition: all 0.1s ease-in;
-o-transition: all 0.1s ease-in;
}
.downloadBtn:focus,
.downloadBtn:hover
{
outline:none;
background-color:#f2084a;
-webkit-transition: all 0.1s ease-in;
-moz-transition: all 0.1s ease-in;
-o-transition: all 0.1s ease-in;
}
.downloadBtn::-moz-focus-inner {
border:none;
}
.URLinput{
position:relative;
background-color:#fff;
border: 3px solid #a5a5a5;
color:#3F3F3F;
border-radius:10px;
padding: 12px 12px 12px 12px;
min-width:426px;
font-size:24px;
font-weight:800;
margin-right:8px;
}
.URLinput:focus {
outline: none;
border-color:#3A3A3A;
}
.URLinput:-webkit-input-placeholder{
color:#c1cfcf;
}
.URLinput:-moz-placeholder {
color:#c1cfcf;
}
.combatiblelink {
position:relative;
color:#a5a5a5;
font-size:13px;
z-index:10;
text-decoration:none;
background-image:url('img/compatiblerouage.png');
background-position:0 100%;
background-repeat:no-repeat;
padding-left:41px;
padding-top:10px;
padding-bottom:10px;
-webkit-transition: all 0.1s ease-in;
-moz-transition: all 0.1s ease-in;
-o-transition: all 0.1s ease-in;
}
.combatiblelink:focus,
.combatiblelink:hover
{
outline:none;
background-position:0 0;
color:#f2084a;
-webkit-transition: all 0.1s ease-in;
-moz-transition: all 0.1s ease-in;
-o-transition: all 0.1s ease-in;
}
.mp3
{
position:relative;
background-color:#cecece;
color:#696969;
border-radius:6px;
width:622px;
font-size:14px;
height:26px;
margin-top:12px;
text-align:left;
font-weight:300;
}
.mp3 p
{
padding:3px;
}
/*
Demo CSS code
*/
.audio:not(:checked),
.audio:checked {
position: absolute;
left: -9999px;
}
.audio:not(:checked) + label,
.audio:checked + label {
position: relative;
padding-left: 82px;
cursor: pointer;
line-height:22px;
}
.audio:not(:checked) + label:before,
.audio:checked + label:before,
.audio:not(:checked) + label:after,
.audio:checked + label:after {
content: '';
position: absolute;
}
.audio:not(:checked) + label:before,
.audio:checked + label:before {
left:0; top: -1px;
width: 45px; height: 20px;
background: #ffffff;
border-radius: 6px;
-webkit-transition: background-color .2s;
-moz-transition: background-color .2s;
-ms-transition: background-color .2s;
-o-transition: background-color .2s;
transition: background-color .2s;
}
.audio:not(:checked) + label:after,
.audio:checked + label:after {
width: 16px; height: 16px;
-webkit-transition: all .2s;
-moz-transition: all .2s;
-ms-transition: all .2s;
-o-transition: all .2s;
transition: all .2s;
border-radius: 6px;
background: #3a3a3a;
top: 1px; left: 2px;
}
.audio:focus + label {
color:black;
}
/* on checked */
.audio:checked + label:before {
background:#f2084a;
}
.audio:checked + label:after {
background: #fff;
top: 1px; left: 27px;
}
.audio:checked + label .ui,
.audio:not(:checked) + label .ui:before,
.audio:checked + label .ui:after {
position: absolute;
left: 3px;
width: 45px;
border-radius: 15px;
font-size: 11px;
font-weight: bold;
line-height: 17px;
height:20px;
-webkit-transition: all .2s;
-moz-transition: all .2s;
-ms-transition: all .2s;
-o-transition: all .2s;
transition: all .2s;
}
.audio:not(:checked) + label .ui:before {
content: "no";
left: 0;
padding-left:23px;
padding-top:2px;
background-image:url('img/mp3hover.png');
background-repeat:no-repeat;
background-position:right top;
width:56px;
-webkit-transition: all .2s;
-moz-transition: all .2s;
-ms-transition: all .2s;
-o-transition: all .2s;
transition: all .2s;
}
.audio:checked + label .ui:after {
content: "yes";
color: #fff;
background-image:url('img/mp3.png');
background-repeat:no-repeat;
background-position:right top;
width:73px;
-webkit-transition: all .2s;
-moz-transition: all .2s;
-ms-transition: all .2s;
-o-transition: all .2s;
transition: all .2s;
}
/*************************CONTENT COMPATIBLES****************************/
.logobis
{
width:447px;
height:107px;
position:relative;
margin:0 auto 10px auto;
}
.logocompatible
{
width:447px;
height:107px;
background-image:url('img/logocompatible.png');
background-repeat:repeat-y;
background-position:0 0;
-webkit-transition: all 0.1s ease-in;
-moz-transition: all 0.1s ease-in;
-o-transition: all 0.1s ease-in;
display:block;
}
.logocompatible:focus,
.logocompatible:hover {
outline:none;
background-position:0 100%;
-webkit-transition: all 0.1s ease-in;
-moz-transition: all 0.1s ease-in;
-o-transition: all 0.1s ease-in;}
.logocompatiblemask
{
z-index:10;
position:absolute;
top:0;
left:0;
width:447px;
height:107px;
background-image:url('img/logocompatiblemask.png');
background-position:0 100%;
background-repeat:no-repeat;
}
.titre
{
font-family: 'Open Sans', sans-serif;
font-weight:300;
color:#383838;
font-size:48px;
}
.tripleliste
{
margin-top:80px;
width:800px;
position:relative;
margin-left:auto;
margin-right:auto;
}
.tripleliste ul
{
margin-bottom:1em;
width:600px;
margin-left:120px;}
.tripleliste ul li
{text-align:left;
List-Style-Type:none;
color:#383838;
font-size:16px;
width:200px;
float:left;
position:relative;
}
html,
body {
margin:0;
height:100%;
}
.wrapper {
height:100%;
display:table;
margin:auto;
padding-bottom:110px;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.main {
display:table-cell;
vertical-align:middle;
}
.extractors {
padding-top:60px;
}
.extractors .wrapper {
padding-bottom:5em;
}
.logocompatible,
.social a {
font-size:0;
text-decoration:none;
}
.social a {
color:#D1D1D1;
}
.logocompatible {
color: #4F4F4F
}
h1 {
margin:0;
}
.error {
max-width: 100ex;
}
.error p {
text-align:justify;
}
.smaller {
font-size:smaller;
}
.thumb {
max-width:700px;
}
@media (max-width: 640px) {
.thumb {
width:90%;
}
.URLinput{
min-width:0;
}
.logo {
max-width:330px;
}
.logocompatible,
.logocompatible img {
max-width:447px;
}
.logocompatible,
.logo,
.champs,
.URLinput,
.mp3 {
width:90%;
margin:auto;
height:auto;
}
.logo {
margin-top:50px;
}
.logocompatible img {
width:100%;
height: auto;
}
.downloadBtn {
margin-top: 0.3em;
}
.mp3 {
margin-bottom: 1em;
}
footer {
display:none;
}
.tripleliste ul,
.tripleliste {
width:auto;
margin-left:auto;
margin-top:auto;
}
.logocompatiblemask {
background:none;
}
.logocompatible {
height:auto;
background-image:none;
background-color:#4F4F4F;
}
.logocompatiblemask,
.logobis {
width:auto;
}
.logocompatiblemask {
position:static;
}
.logobis {
height:auto;
}
.titre {
margin:auto;
}
.error p {
padding:0.5em;
text-align:left;
}
}

15
youtoubeur.php Normal file
View File

@ -0,0 +1,15 @@
<?php
/**
* PHP web interface for youtube-dl (http://rg3.github.com/youtube-dl/)
* Old index file, now redirects to index.php
*
* PHP Version 5.3.10
*
* @category Youtube-dl
* @package Youtubedl
* @author Pierre Rudloff <rudloff@strasweb.fr>
* @license GNU General Public License http://www.gnu.org/licenses/gpl.html
* @link http://rudloff.pro
* */
header('Location: index.php');
?>