Set different max upload size limits based on file type/extension

This should work:

function max_video_size( $file ) {
  $size = $file['size'];
  $size = $size / 1024;
  $type = $file['type'];
  $is_image = strpos( $type, 'video' ) !== false;
  $limit = 750;
  $limit_output="750kb";
  if ( $is_image && $size > $limit ) {
    $file['error'] = 'Video files must be smaller than ' . $limit_output;
  }
  return $file;
}
add_filter( 'wp_handle_upload_prefilter', 'max_video_size' );

Rinse and repeat, changing video in the $is_image line to whatever filetype you want to specify, and even by altering the function, building all desired filetypes into the one filter.


FULL DISCLOSURE = the core of this answer is found in Set limit to media upload?

tech