aboutsummaryrefslogtreecommitdiff
path: root/mod/videolist/lib/Videolist/Platform/Metacafe.php
blob: 74a346b348e3eb77ed45410fea6eb746995d412f (plain)
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
<?php

class Videolist_Platform_Metacafe implements Videolist_PlatformInterface
{
    public function getType()
    {
        return "metacafe";
    }

    public function parseUrl($url)
    {
        $parsed = parse_url($url);
        $path = explode('/', $parsed['path']);

        if ($parsed['host'] != 'www.metacafe.com' || $path[1] != 'watch' || !(int) $path[2]) {
            return false;
        }

        return array(
            'video_id' => $path[2],
        );
    }

    public function getData($parsed)
    {
        $video_id = $parsed['video_id'];

        $buffer = file_get_contents("https://www.metacafe.com/api/item/$video_id");
        $xml = new SimpleXMLElement($buffer);

        return array(
            'title' => current($xml->xpath('/rss/channel/item/title')),
            'description' => strip_tags(current($xml->xpath('/rss/channel/item/description'))),
            'thumbnail' => current($xml->xpath('/rss/channel/item/media:thumbnail/@url')),
            'embedurl' => current($xml->xpath('/rss/channel/item/media:content/@url')),
        );
    }
}