0

我正在尝试在 linux 中制作一个 WDTV Live 插件,它可以播放来自 web url 的视频。

我有一个从 html 源代码解析的 url。问题是 url 在 XBMC 中可以播放,但不能在所有媒体播放器中播放。我检查了 xbmc 日志,看起来 XBMC 为电影 url 创建了一个会话。以下是来自 XBMC 日志文件的日志。

INFO: XCURL::DllLibCurlGlobal::easy_aquire - Created session to http://121.125.77.146
DEBUG: CPlayerCoreFactory::GetPlayers(http://121.125.77.146/cgi-bin/sbview.cgi?systype=10000&subtype=4&id0=17678&id1=27635&id2=368507&id3=285792&nodeid=3071517&userno=0&userid=&level=1&part=0&ispay=0&mkey=2bd5454e93890a8ae2fe76948764a2d6&skey=5176153017445b5b79f897eec711996b&dummy=1279941981&title=%5bStar2Gether%5d%20%c0%cc%ba%a5%c6%ae%c0%fc_1%ba%ce&impurl=&TVINFO=10000,4,17678,27635,368507,285792,)

是否可以做 XBMC 在 PHP 中所做的事情?谢谢

4

2 回答 2

1

添加 sAc 的答案,如果您只希望单个媒体播放器使用它,您还需要实现一个身份验证系统,就像 Netflix 所做的那样。AFAIK,Netflix 会生成一个存储在您的注册表中的密钥,用于识别您的计算机并使用该密钥访问 Netflix 的服务器。我假设 XBMC 有一个类似的实现,它生成一个密钥,将它存储在某个地方并将该密钥用作会话 ID。

从您给出的 URL 中,有两个参数我看到与我上面解释的键相似的键:“mkey=2bd5454e93890a8ae2fe76948764a2d6&skey=5176153017445b5b79f897eec711996b” 这些键通过查询字符串(URL 中的所有?)可能识别你的 XBMC。

为了重现这一点,您真的不需要 PHP 会话,例如:

session_start();
$_SESSION['session_key'] = $_REQUEST['session_key']; // Use either $_GET or $_POST in production
if($_SESSION['session_key'] == "the_super_secret_key") { /* play video */ }

这是一个非常粗略的示例,但您可以完全剥离会话,因为您正在使用 API 调用。the_super_secret_key 也可以从数据库中检索以匹配发送的会话密钥。

于 2010-07-24T07:33:21.800 回答
0

不知道你将如何操作它,但在 php 中创建一个会话变量是这样的:

session_start();

$_SESSION['var_name'] = 'session value/variable here';

现在,您可以访问$_SESSION['var_name']任何页面,前提是您将其放在session_start()使用该会话变量的页面上。

请注意,您可以像这样删除/取消设置会话:

session_start();
unset($_SESSION['var_name']);
session_destroy();
于 2010-07-24T07:19:03.677 回答