-
Notifications
You must be signed in to change notification settings - Fork 977
/
getAllWebp.php
98 lines (92 loc) · 3.17 KB
/
getAllWebp.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
95
96
97
98
<?php
//streamer config
require_once '../videos/configuration.php';
if (!isCommandLineInterface()) {
return die('Command Line only');
}
$global['limitForUnlimitedVideos'] = -1;
$videos = video::getAllVideosLight("", false, true);
$count = 0;
foreach ($videos as $value) {
$count++;
echo "\n Start ($count) ******\n";
if ($value['type'] != 'video') {
echo "\nType ({$value['type']}) is not a video: " . $value['title'];
echo "\n End ($count) ******\n";
ob_flush();
continue;
}
echo "\nStart: " . $value['title'];
ob_flush();
$videoFileName = $value['filename'];
$destination = Video::getPathToFile("{$videoFileName}.webp");
if (!file_exists($destination)) {
echo "\nGet webp";
ob_flush();
$videosURL = getFirstVideoURL($videoFileName);
$videoPath = getFirstVideoPath($videoFileName);
$duration = (Video::getItemDurationSeconds(Video::getDurationFromFile($videoPath)) / 2);
if (!empty($videosURL)) {
$url = $videosURL;
$context = stream_context_create([
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
],
]);
$file_headers = @get_headers($url, 0, $context);
if (!$file_headers || $file_headers[0] == 'HTTP/1.1 404 Not Found') {
echo "\nGet webp not found {$url}";
ob_flush();
continue;
} else {
$url = $config->getEncoderURL() . "getImageMP4/" . base64_encode($url) . "/webp/{$duration}";
$image = url_get_contents($url);
file_put_contents($destination, $image);
}
} else {
echo "\nVideo URL empty";
ob_flush();
}
echo "\nGet done";
ob_flush();
} else {
echo "\nFile exists: " . $value['title'] . " {$destination}";
ob_flush();
}
echo "\nFinish: " . $value['title'];
echo "\n******\n";
ob_flush();
}
function getFirstVideoURL($videoFileName)
{
$types = ['', '_Low', '_SD', '_HD'];
$videosList = getVideosURL($videoFileName);
if (!empty($videosList['m3u8']["url"])) {
return $videosList['m3u8']["url"];
}
foreach ($types as $value) {
if (!empty($videosList['mp4' . $value]["url"])) {
return $videosList['mp4' . $value]["url"];
} elseif (!empty($videosList['webm' . $value]["url"])) {
return $videosList['webm' . $value]["url"];
}
}
return false;
}
function getFirstVideoPath($videoFileName)
{
$types = ['', '_Low', '_SD', '_HD'];
$videosList = getVideosURL($videoFileName);
if (!empty($videosList['m3u8']["path"])) {
return $videosList['m3u8']["path"];
}
foreach ($types as $value) {
if (!empty($videosList['mp4' . $value]["path"])) {
return $videosList['mp4' . $value]["path"];
} elseif (!empty($videosList['webm' . $value]["path"])) {
return $videosList['webm' . $value]["path"];
}
}
return false;
}