Ben
Ben

Reputation: 1914

Force download mp4 files

I want to force the user tho download a youtube video. For example this url. I download the video and I can play the original video, but even the length/size of video is the same I cant play it when is force_downloaded.

function force_download($file,$video_url)
{

  $video_data = file_get_contents($video_url);
  file_put_contents($file, $video_data);

  if(isset($file) && file_exists($file))
  {
    header('Content-length: ' .  filesize($file));
    header('Content-type: application/octet-stream');
    header('Content-Disposition: attachment; filename= "' . $file . '"');

    readfile($file);
  }
}

force_download('youtube.mp4',$video_url);

Upvotes: 2

Views: 16852

Answers (1)

Eric
Eric

Reputation: 907

If you can use htaccess...

<FilesMatch "\.(mp4|MP4)">
  ForceType application/octet-stream
  Header set Content-Disposition attachment
</FilesMatch>

I use this to force PDFs to download as well. Works great!

Here is another stack question regarding forcing download with PHP... Does essentially the same thing as the htaccess I have written above. Setting the content-disposition to attachement is key.

How to force file download with PHP

EDIT: hrmm... but you have already done something similar which isn't working... See if you can get the htaccess to work with what you're trying to do I guess.

Upvotes: 9

Related Questions