1 | <?php |
---|
2 | /** |
---|
3 | * Stream a music file |
---|
4 | * |
---|
5 | * @license GPL |
---|
6 | * |
---|
7 | * @package MythWeb |
---|
8 | * @subpackage Music |
---|
9 | /**/ |
---|
10 | |
---|
11 | // Yes, a db connection |
---|
12 | global $db; |
---|
13 | |
---|
14 | // Pull video ID |
---|
15 | $vid_id = $_GET['Id']; |
---|
16 | |
---|
17 | // Get filename |
---|
18 | list($fname) = $db->query_row('SELECT filename |
---|
19 | FROM videometadata |
---|
20 | WHERE intid = ?', $vid_id); |
---|
21 | |
---|
22 | // Mime type |
---|
23 | switch (substr($fname, strrpos($fname, '.')+1)) { |
---|
24 | case 'mpg': |
---|
25 | case 'mpeg': |
---|
26 | $mime = 'video/mpeg'; |
---|
27 | break; |
---|
28 | case 'mp4': |
---|
29 | $mime = 'video/mp4'; |
---|
30 | break; |
---|
31 | case 'ogg': |
---|
32 | case 'ogm': |
---|
33 | case 'ogv': |
---|
34 | $mime = 'video/ogg'; |
---|
35 | break; |
---|
36 | case 'qt': |
---|
37 | $mime = 'video/quicktime'; |
---|
38 | break; |
---|
39 | case 'webm': |
---|
40 | $mime = 'video/webm'; |
---|
41 | break; |
---|
42 | case 'mkv': |
---|
43 | $mime = 'video/x-matroska'; |
---|
44 | break; |
---|
45 | case 'wmv': |
---|
46 | $mime = 'video/x-ms-wmv'; |
---|
47 | break; |
---|
48 | case 'flv': |
---|
49 | $mime = 'video/x-flv'; |
---|
50 | break; |
---|
51 | default: |
---|
52 | $mime = 'application/octet-stream'; |
---|
53 | } |
---|
54 | header('Content-Type: '.$mime); |
---|
55 | |
---|
56 | // Send the filename |
---|
57 | header('Content-Disposition: filename="'.$fname.'"'); |
---|
58 | |
---|
59 | // Send data via the backend |
---|
60 | $Master_Host = setting('MasterServerIP'); |
---|
61 | $port = _or(get_backend_setting('BackendStatusPort', $Master_Host), |
---|
62 | get_backend_setting('BackendStatusPort')); |
---|
63 | if (stripos($Master_Host,':') !== false) { |
---|
64 | $Master_Host = '['.$Master_Host.']'; |
---|
65 | } |
---|
66 | if (ob_get_level()) { |
---|
67 | ob_end_clean(); |
---|
68 | } |
---|
69 | readfile("http://$Master_Host:$port/Content/GetVideo?Id=".$vid_id); |
---|
70 | |
---|
71 | // Nothing else to do |
---|
72 | exit; |
---|