curl snippet to get video
name = "Youtube Downloader" description = "Downloads youtube videos" package = Custom dependencies[] = video core = "7.x"
Because my hosting company has tight limits on uploading data via HTTP, I have to upload my videos via FTP and then use the URL video type to display them. The downside is that they don't get thumbnails that way, so I wrote this php script to create them.
I hope you find it useful!
<?php
// Copy this file to the root directory of your drupal site. Note you may have to tweak the options.
//
// Usage: php make_thumbs.php h t t p ://mysite.com/make_thumbs.php
//
// Set these for your site.
$home = "/home/mysite";
$ffmpeg = $home . "/bin/ffmpeg";
$tmp = $home . "/tmp";
$options = "-an -y -f mjpeg -ss 2 -s 160x92 -vframes 1 ";
if (isset($_SERVER['argv'][1])) {
$url = parse_url($_SERVER['argv'][1]);
$_SERVER['SCRIPT_NAME'] = $url['path'];
$_SERVER['HTTP_HOST'] = $url['host'];
}
include_once './includes/bootstrap.inc';
// disable error reporting for bootstrap process
error_reporting(E_ERROR);
// let's bootstrap: we will be able to use drupal apis
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
// enable full error reporting again
error_reporting(E_ALL);
if(!empty($_SERVER['REQUEST_METHOD'])) {
print t('This script is only executable from the command line.');
die();
}
$result = db_query("SELECT * from {video}");
while ($video = db_fetch_object($result)) {
$vnid = $video->nid;
$data = unserialize($video->serialized_data);
if (is_null($data['iid']) | $data['iid'] == "") {
$thumbpath = $tmp . "/" . $video->nid . ".jpg";
print t("Generating thumbnail for " . $vnid . ".\n");
//print t($ffmpeg . " -i " . $video->vidfile . " " . $options . " " . $thumbpath ."\n");
exec($ffmpeg . " -i " . $video->vidfile . " " . $options . " " . $thumbpath, $output);
print_r($output);
$img = image_create_node_from($thumbpath);
$imgnid = $img->nid;
$data['iid'] = $imgnid;
$data = serialize($data);
db_query("UPDATE {video} SET serialized_data = '%s' WHERE nid = %d", $data, $vnid);
} else {
print t("Skipping " . $vnid . ": iid is " . $data['iid'] . "\n");
}
}
?>
name = "Youtube Downloader" description = "Downloads youtube videos" package = Custom dependencies[] = video core = "7.x"