-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathted.class.php
43 lines (41 loc) · 1.98 KB
/
ted.class.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
<?php
class ted
{
public $enable_proxies = false;
function azf_Video_info($url)
{
$curl_content = url_get_contents($url, $this->enable_proxies);
preg_match_all('/"__INITIAL_DATA__":(.*?)}\)/', $curl_content, $match);
if (empty($match[1][0])) {
return false;
}
$json = json_decode($match[1][0], true);
$data["source"] = "ted";
$data["title"] = $json["name"];
$data["thumbnail"] = $json["talks"][0]["hero"];
$data["duration"] = gmdate(($json["talks"][0]["duration"] > 3600 ? "H:i:s" : "i:s"), $json["talks"][0]["duration"]);
$i = 0;
if (!empty($json["talks"][0]["downloads"]["nativeDownloads"])) {
foreach ($json["talks"][0]["downloads"]["nativeDownloads"] as $quality => $url) {
$data["links"][$i]["url"] = $url;
$data["links"][$i]["type"] = "mp4";
$data["links"][$i]["quality"] = $quality;
$data["links"][$i]["size"] = get_file_size($data["links"][$i]["url"], $this->enable_proxies);
$i++;
}
} else if (!empty($json["talks"][0]["player_talks"][0]["resources"]["h264"])) {
$data["links"][$i]["url"] = $json["talks"][0]["player_talks"][0]["resources"]["h264"][0]["file"];
$data["links"][$i]["type"] = "mp4";
$data["links"][$i]["quality"] = "sd";
$data["links"][$i]["size"] = get_file_size($data["links"][$i]["url"], $this->enable_proxies);
$i++;
}
if (!empty($json["talks"][0]["downloads"]["audioDownload"])) {
$data["links"][$i]["url"] = unshorten($json["talks"][0]["downloads"]["audioDownload"], $this->enable_proxies);
$data["links"][$i]["type"] = "mp3";
$data["links"][$i]["quality"] = "128 Kbps";
$data["links"][$i]["size"] = get_file_size($data["links"][$i]["url"], $this->enable_proxies);
}
return $data;
}
}