Tag Archives: mp4

Download YouTube videos

 

Clip Converter is a free online media conversion application, which allows you to reocord, convert and download nearly any audio or video URL to common formats. Currently supported services: YouTube (HQ, HD, 4K), Vimeo and many more. This free and fast converter allows you to watch your favorite YouTube videos on your cell phone, PSP, iPhone or nearly any other device.

How to convert and download a YouTube video:
1. Paste your YouTube URL at ‘Media URL’ and press Continue.
2. Select the format and the options for the conversion. The default options are for most videos a good setting.
3. Press the ‘Start’ button at the bottom to start the conversion.
4. This may take several minutes. After the conversion is finished you can download the converted file.

Force download MP4 file – PHP or .htaccess

The PHP way – see below this one for a better way

In a client work, I need to force download a MP4 file on some special occasions.
PHP was the solution – in my case -.

rock ssd

This is the small script that I’v placed in download.php – the important stuff -.
Before I have a file_exist condition and other stuffs… but this is the RAW material!

 header ("Content-type: octet/stream");
 header ("Content-disposition: attachment; filename=".$filename.".mp4;");
 header("Content-Length: ".filesize($myFile));
 ob_clean();
 readfile($myFile);

Some of the MP4 files were beeing downloaded! Other weren’t. sh*t!
The problem was a PHP Fatal error!

[03-May-2014 08:09:18] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 429363201 bytes) in /web/sites/user/domain.com/download.php on line 30

Well!, there are 3 ways to solve this.

  • Edit php.ini and increase the max memory size.
  • Add the following line to the PHP file…
ini_set('memory_limit','128M');
  • Or add the following line to .htaccess
php_value memory_limit 128M

First solution is the best option, since the other 2 might not work due to security settings.

The PHP way *ultimate solution*

This solution we don’t need to increase PHP memory limit.
This will read 8kb of file and push it to the client AND not the full file!

header ("Content-type: octet/stream");
header ("Content-disposition: attachment; filename=".$filename.".mp4;");
header("Content-Length: ".filesize($myFile));
ob_clean();
$handle=fopen($_REQUEST['file'], 'rb');
while (!feof($handle))
{ 
    echo fread($handle, 8192);
    flush();
}
fclose($handle);

The .htaccess way

The normal file type for MP4 is video/mp4.
This way the browser will try to play it and won’t download it.

We can force .htaccess to change it and force the download.

Lets say that we want to force the download when the URL has a ?dl.

RewriteCond %{QUERY_STRING} dl
RewriteRule .*\.mp4 - [T=application/octet-stream]

This way .htaccess www.domain.com/video.mp4?dl and change the file type to application/octet-stream – the one that forces the download.