1. A system for classifying videos based on video content, comprising: a processor; one or more software modules including one or more classifiers; the one or more software modules operable on the processor to perform the steps of: receiving a video file, the video file including a plurality of frames; extracting a subset of frames from the video file; if one or more frames in the extracted subset of frames comprises a dark frame, discarding the one or more dark frames from the subset; determining whether each frame in the extracted subset includes content associated with a general content category; for each frame in the extracted subset that includes content associated with the general content category: dividing the frame into one or more segments based on image content in each segment; generating a material classification score vector for each segment, each material classification score vector including one or more material values associated with one or more predefined material content types, wherein each material value represents a probability that the respective segment includes that type of material content; assigning the material classification score vector for each segment to each respective pixel in the segment; generating a material arrangement vector for the frame based on the material classification score vectors assigned to each pixel; generating a scene classification score vector for the frame via one or more scene classifiers, the scene classification score vector including one or more scene classification scores associated with one or more predefined scene categories within the general content category; determining a representative scene classification score vector for the video file based on the generated scene classification score vectors for each extracted frame in the subset that includes content associated with the general content category; and associating the video file with the one or more predefined scene categories based on the representative scene classification score vector.