Dear Forum,

I ran into a problem to which I can't find a solution. I have set up a content type with a file field, to which I attach a video file (mp4, m4v). The video file is stored under the private file system, outside my public_html. Using either modules like VideoJS or Flowplayer etc, I can perfectly display the node and play the video on my Mac/Pc. The video url is clearly handled by Drupal's private system (system/files etc). However, if I visit a node on an iPad, the video will not show. Changing to a public file system solves the problem. Does anyone know the reason for this behaviour?

Comments

adr75’s picture

After turning on the safari error console on the iPad, I noticed that when trying to load the video there is a "byte_range_error_message". Perhaps the iPad requests the video differently than the desktop machines? Is this a consequence of choosing the private file system?

adr75’s picture

Haven't got around this problem so far, but found an hint on stackoverflow that might give the solution. According to this link, the problem may be that the iPad uses partial content requests, and a file_download hook could be written to help with the request (using the information here). Would anyone know how to achieve this?

adr75’s picture

Noticed that byte ranges and sending 'HTTP/1.1 206 Partial Content' in private file handling may be part of Drupal 8? Can anyone help me to work towards a solution for D7?

kressin’s picture

Have you found a solution for this problem? I am currently chewing on my table since I am trying to solve the same problem since a week. Would be VERY thankful for any advice.

Thanks

adr75’s picture

Hi,

Just came across this topic http://drupal.org/node/1765810, and using the Resumable download module appears to be working for me. Videos are stored privately, and flowplayer plays the video on an ipad using code described here. Hope this helps.

webel’s picture

@adr75 The link http://flowplayer.org/demos/installation/multiple-players.html appears to be now broken. This may be the replacement:

http://flash.flowplayer.org/demos/installation/multiple-players.html

I don't understand how the multiple players link helps. Are you using device detection ?

Webel IT Australia, "Elements of the Web", Scientific IT Consultancy,
For PHP-driven Drupal CMS web sites, Enterprise Java, graphical UML, UML Parsing Analysis, SysML, XML.

Miguel Pereira’s picture

The Resumable download module worked like a charm in an iPad.

Tmanagement’s picture

Hi,

We were having the same issue so I thought it might be valuable to post some links to the cause and solution

Has to do with iOS requesting a format that php cannot give without changes.
http://www.vdmi.nl/blog/streaming-ios-private-files-system

The following worked for us on Drupal 7
https://www.drupal.org/project/resumable_download

But also the following worked for us:
https://www.drupal.org/project/nginx_accel_redirect

We use Nginx as a server by the way. So not sure if this is helpful for Apache but I think it is.