-
Notifications
You must be signed in to change notification settings - Fork 4
/
Downloading_Playlist.php
94 lines (90 loc) · 4.23 KB
/
Downloading_Playlist.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?php
/*
M3U Playlist Generator by Folder
GET Downloading Downloading_Playlist.php
GET RAW Raw_Playlist.php
Author: [email protected]
*/
date_default_timezone_set("Europe/Tirane");
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// SITE ROOT DIR
// GET HOST http://localhost/ FOLDER PATH /
if (empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] === 'off') {
$protocol = 'http://';
} else {
$protocol = 'https://';
}
// Get base URL
$SITE_ROOT = $protocol . $_SERVER['SERVER_NAME'] . dirname($_SERVER['PHP_SELF']) . "/";
//echo $SITE_ROOT;
// GET HOST
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
define("USER_AGENT", $_SERVER['HTTP_USER_AGENT']);
define("ROOT_PATH", dirname($_SERVER["SCRIPT_FILENAME"]) . '/');// C:/DESTINATION PATH
define("WEBPATH", 'http://' . $_SERVER['SERVER_NAME'] . dirname($_SERVER['PHP_SELF']) . '/'); // FULL HTTP PATH
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//$dirpath = dirname($_SERVER["SCRIPT_FILENAME"]) . '/';
//$webpath = 'http://' . $_SERVER['SERVER_NAME'] . dirname($_SERVER['PHP_SELF']) . '/';
// SITE ROOT DIR
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// DATA - VITI - ORA
$data1 = date("l d/m/Y - H:i:s");
$data2 = date("l, d F Y - H:i:s");
$data3 = date("d F Y");
$viti = date("Y");
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/* SETTINGS */
$STREAM_NAME = "Playlist"; // PLAYLIST NAME
define('MP3_PATH', './Mixed_News/'); // MP3 PATH
$MUSIC_PATH = "Mixed_News/"; // MP3 PATH
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ROOT PATH
define("MP3_MUSIC_PATH", $SITE_ROOT. $MUSIC_PATH);
//define('MP3_MUSIC_PATH', 'http://' . $_SERVER['SERVER_NAME'] . dirname($_SERVER['PHP_SELF']) . '/MP3/');
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// EXAMPLES
// define('MP3_MUSIC_PATH', /YOUR PATH/);
// define('MP3_MUSIC_PATH', '/var/www/html/MP3/');
// define('MP3_MUSIC_PATH', 'http://'.$_SERVER['HTTP_HOST'].'/MP3/'); // LOCALHOST PATH http://localhost/MP3
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
define('PLAYLIST_FILE_FORMATS', '/\.(mp3|ogg|flac|m4a|mp4|asx)$/');
define('IF_IS_URL', preg_match('/:\/\//', MP3_MUSIC_PATH));
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/* FUNCTIONS */
function get_files($dir, &$get_files = array()) {
$handle = opendir($dir);
while ($item = readdir($handle)) {
if ($item == '.' or $item == '..')
continue;
$MP3_PATH = $dir.'/'.$item;
if (is_dir($MP3_PATH))
get_files($MP3_PATH, $get_files);
else
$get_files[] = $MP3_PATH;
}
closedir($handle);
return $get_files;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$i = 0;
$get_files = get_files(MP3_PATH);
natcasesort($get_files);
header('Content-type: audio/x-mpegurl');
echo("#EXTM3U (Playlist Generated on $data2)\n\n");
foreach ($get_files as $item) {
if (!preg_match(PLAYLIST_FILE_FORMATS, $item))
continue;
++$i;
$TITLE = array_pop(explode('/', $item)); // the title is the last part of the filename
$TITLE = preg_replace(PLAYLIST_FILE_FORMATS, '', $TITLE);
$URL = substr($item, strlen(MP3_PATH) + 1); // take off the top path
$URL = IF_IS_URL ? MP3_MUSIC_PATH . str_replace('%2F', '/', rawurlencode($URL)) : MP3_MUSIC_PATH . $URL;
///////////////////////////////////////////////////////////////////////////////
//echo "#EXTINF:$i,$TITLE\n$URL\n";
// $STREAM = "#EXTINF:$i,$TITLE\n$URL\n"; // WITH NUMERIC ON EXTINF 1 2 3 ETC
$STREAM = "#EXTINF:-1,$TITLE\n$URL\n";
echo "$STREAM\n";
header('Content-Disposition: attachment; filename="'.$STREAM_NAME.'.m3u"');
///////////////////////////////////////////////////////////////////////////////
}