PSPTube最新中文脚本下载和Script制作教程
PSPTube的问世,给我们PSP上看FLV视频提供极大的便利,但是长期的缺陷就是只能收看Youtube等国外视频网站,对于网络速度爆快的国内视频网站却一直不支持。
今年2月底的PSPTube官方开始支持自定义Javascript支持其他站点,在国内zengge99的努力下,PSPTube支持了中文拼音搜索!现在看视频都能躺在床上了!哈哈哈~
zengge99最新的方案虽然能够避免各家视频网站的修改,直接去通过baidu和google的视频搜索,使用”site:”来限制条件,但最大缺点就是搜索到视频的数量,排序方式(既先显示视频的质量)的不足,以及被搜索引擎没有检索到的冷门视频无法找到。
如果你已经有2008/2/29发布的PSPTube,直接下载下面最新js脚本,解压到PSPtube目录:
如果你还没有安装PSPTube,下载下面包含最新脚本的完整压缩包,解压到PSP的GAME目录里:
点此下载: PSPTube_0914PSPTube的JavaScript脚本制作教程
我们以制作一个优酷的脚本制作为例。
首先需要一个web调试工具能够方便工作,当然你看源代码慢慢找也可以。
首先打开PSPTubesystemsiteYouku.js,看最下面:
var YouKu = new Object(); YouKu.Name = "Youku"; YouKu.Description = "Youku"; YouKu.SearchDesc = "Youku"; YouKu.SearchOSKMode = 2; YouKu.CheckURL = YouKu_CheckURL; YouKu.GetURL = YouKu_GetURL; YouKu.Search = YouKu_Search; SiteList.push( YouKu );这里申明了一个对象(Object)叫做Youku,左边的一侧可以自己改成任意名字,但是要一致。
从第2行开始,他们的值分别是,名字,描述,搜索时候的描述,搜索字符(1英文等拉丁语系文字,2是中日韩文这样双字节文字),检查URL正确性的函数名,获得FLV实际URL的函数名,搜索的函数名。下面我们一个个来看。
function YouKu_CheckURL( url, option )
if(url.match( /youku/ )) {
return 1;
} else {
return 0;
}
}这里就是搜索后检查URL是否是包含指定的字符,如果你觉得麻烦,直接”return 1;”就可以了。function YouKu_GetURL( url, option )
{
var surl="http://www.flvxz.com/getFlv.php?url=" + url;
var contents = GetContents( surl );
if(contents.match(/("|')(http.*?)("|')/))
{
return RegExp.$2;
}
else
{
return null;
}
}这是通过搜索到的URL来分析出FLV地址的,通常这个过程比较复杂的话,就交给专门的网站来干,这里是使用flvxz.com搜索,然后通过分析搜索结果的页面的字符串,取得实际FLV视频地址。大头戏就在YouKu_Search这个函数里面了!每次网站修改,我们其实只用跟着动这里的代码就行了~
var pattern = /<ulsclass="video">((.|r|n)*?)</ul>/g;这里是指定网站搜索结果页面包含视频的容器。它是怎么来的呢?看下图:
首先忽略最上面的专辑搜索结果,当我把鼠标移动到<ul class=”video”>上面的的时候, 网页上视频的容器突显出来,那么这个ul就是我们要找的优酷搜索结果页面视频的容器。 下面要获得的所有信息,标题,缩略图,链接等等都包含在这个容器里面。对了~我们接下来定义的是搜索的路径,看下面的var url_base = "http://so.youku.com/search_video/q_"; url_base = url_base + PSPTube.encodeURI( keyword )+"_orderby_1_page_";当我在优酷搜索wow的结果,地址栏显示的是:http://so.youku.com/search_video/q_wow 我搜mm,地址栏显示的是:http://so.youku.com/search_video/q_mm那么这里的url_base理所当然就是:http://so.youku.com/search_video/q_ 然后再点击第二页,地址栏显示的是:http://so.youku.com/search_video/q_wow_orderby_1_page_2.html所以我们看出, 优酷的搜索地址就是:http://so.youku.com/search_video/q_搜索的关键字_orderby_1_page_页面数.html 于是我们在后面获取的url值后面还加了一个”.html”:
var url = url_base + String( nPage )+".html";
一般来说这里是不用加的。
下面也只剩下几个地方要修改了,我们来看看最上面的搜索结果的HTML:
共找到 <span class="num">5797</span> 个视频:于是修改对应的代码:
if(contents.match( /共找到s<spansclass="num">(d*?)</span>/ )) { result.total = RegExp.$1 – 0;
}
空格或者换号这样的空字符都用s代替,所有的= ” /等符号前面要加上反斜杠来避免程序去解释。这样我们就取得了搜索结果的数目。
下面其他获取值的也方法也全部一样,在HTML里找到代码,然后赋值给PSPTube。
对于支持中文搜索的网站,我们都在搜索函数定义keyword的时候多加了一句keyword = PYtoGBK(keyword);这样就能支持拼音搜索了,对于中文网站有一点需要注意,你在优酷的网页上查看编码是unicode(uft-8)的,然而土豆等是gb2312(GBK)的,所以优酷这样UTF-8字符集的网站在定义完eyword = PYtoGBK(keyword);后面还要加上keyword = GBKtoUTF8(keyword);
这样让提交搜索的字符串能够正确转换为UTF-8的编码。但是土豆这样的网站在搜索返回的结果需要多做一个处理,如优酷获取标题只需info.Title = RegExp.$1;,然而使用GBK字符集的需要info.Title = GBKtoUTF8(RegExp.$1);让返回的结果转换成UTF-8以便PSPTube识别。
可以参考上文几个脚本里的例子,基本上各种方法都有用过。
下面列出PSPTube搜索函数里支持的所有属性:
Video search
keyword : keyword to search 关键字
start_index : starting index (based on 1) 开始索引
length : number of videos to search for 返回的结果数
option : The current search criteria, defaults to 0 (?) 可选
Return info 返回给程序的信息
.keyword : search string 搜索的关键字
.total : total number of results 总搜索结果
-1 : error -1是错误
0 : no results 0是无结果
>0: total results 大于0显示数量
.start : starting number (based on 1) 从第几个视频开始
.end : ending number (based on 1) 至第几个视频结束
.VideoInfo : video sequence information 视频信息
.VideoInfo[n].Author : Author (string) 作者 字符串值
.VideoInfo[n].Title : Title (string) 标题 字符串值
.VideoInfo[n].LengthSeconds : LengthSeconds: total video playback time (in seconds) (integer) 时间长度,单位是秒,整数
.VideoInfo[n].RatingAvg : RatingAvg: rating (float) 评价得分 浮点数
.VideoInfo[n].RatingCount : RatingCount: number of votes (integer) 打分次数 整数
.VideoInfo[n].Description : Description (string) 视频描述 字符串
.VideoInfo[n].ViewCount : ViewCount (integer) 观看次数 整数
.VideoInfo[n].UploadTime : UploadTime: Video upload time (UNIX style) 上传时间戳
.VideoInfo[n].CommentCount : CommentCount (integer) 评论数 整数
.VideoInfo[n].MylistCount : MylistCount: ? (integer) 我的播放列表数 整数
.VideoInfo[n].Tags : Tags: Space-delimited string of tags, e.g. “tag1 tag2 tag3″ 空格分开的标签 字符串 例如”标签1 标签2 标签3″
.VideoInfo[n].URL : URL: Link to viewing page (string) 视频页面地址 字符串
.VideoInfo[n].ThumbnailURL : ThumbnailURL: URL to thumbnail (string) 缩略图地址 字符串
.VideoInfo[n].SaveFilename : SaveFilename (string) 保存时的文件名 字符串
“Movie deprecated set unique ID please.”
.VideoInfo [n]. Attr: Integer OR video attribute set to the following value 附加属性
1: read-only (not delete) 只读
2: download 下载
4: Play is a need to connect to the network 播放需要链接到网络
Usually, 1 +2 +4, 7
MS is a directory, so one can not be removed MS是目录,不能被删除
MS files, 0
.VideoInfo[n].child : children 下级
.VideoInfo[n].parent : parents 父级
差不多就这样~有什么问题可以联系我。
请问看视频的时候出现 “content is null” 是怎么回事?谢谢!
请问看视频的时候出现“content is null”是怎么回事?
来自baidu或者google的吧 因为调用的负责解析视频地址的程序,没有获取到实际地址。 要么调用的程序不支持该网站,要么获得该网站视频地址的算法有变,程序没有更新.
非常有用!!!谢谢!!可我尝试弄新浪和sohu的播客视频脚本不成功,请帮忙!
喔喔?不客气,你怎么不成功请详细说说~
你好,我把自己弄的不成功的新浪视频脚本删了,我照着你的步骤弄了一下,psptube还是播放不了新浪播客的视频,你可以帮忙弄一个QQ,或新浪,或sohu的视频脚本出来吗?我觉得这三个网站的视频有时候有更多资源,速度也更快点,谢谢
是搜索不到结果还是无法播放,如果只是不能播放估计是解析视频URL的网站不支持以上某一个网站,需要换解析视频地址的网站。如果是无所搜索就是你写的地方有问题。我压缩包里的使用google或者baidu是可以搜索到sina的视频的。
我想做个看www.luren.cc的视频的js,修改了半天一直不成功,能不能帮忙做个。。。我编程太弱了
zengge99好像在最新的更新中修改了config.js把简体换成了繁体 貌似所有的字都能显示出来 但是他的config加你的脚本还是不行 希望你能修改一下config具体的好像不是很难
嗯,有空的时候会更新一下
你好,从09年4月11日一早,我现在用的是psptube1.7youku就只能搜索,播放时显示null。土豆正常,我想是youku又改变了,应该是需要新的脚本了。拜读了您上面的文章感觉一个头有两个大,希望您会者不难,放出新的youku脚本,不胜感激。 个人喜欢youku可以七分钟一段,就算psptube不能书签也不用全集快进,另外比土豆速度也快,期待中。。。。。
我的记忆棒坏了,一直没用PSP…
请问 这两个属性是做什么的 .VideoInfo[n].child : children 下级 .VideoInfo[n].parent : parents 父级
@ goodsand 是HTML元素的子节点和父节点. 比如页面里面中的
,前者是父节点(parents),后者就是子节点(children).to 黑眼圈 还是不太明白,这两个属性具体有什么作用,是什么数据类型,能干什么呢? 另外一个问题是能在_GetURL与_Search函数中公用的全局变量有什么;
不好意思..这篇文章写了快一年,我也不记得这2个属性具体用途了, Search函数是通过搜索结果的页面去分析每个视频页面的URL,缩略图,时间,人气或者类似列出的信息,然后GetURL通过上一个函数获得的视频网页URL去分析视频实际的FLV的URL地址,这个例子里,解析过程是通过第三方网站来完成的,因为没有研究过youku视频地址也页面地址的关系.