-
Notifications
You must be signed in to change notification settings - Fork 8
/
README
executable file
·92 lines (53 loc) · 3.73 KB
/
README
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
ytplayer 是一个弹幕播放器,创建于 bilibili 建站前期,但是和 bilibili 没有任何关系(bilibili 似乎是用了和 ytplayer 同一个时期出现的 Yet Another XXX Player (我忘记 XXX 是什么了)来作为播放器的)。当年 AcFun 上面出现了大量质量低劣的广告,于是我就想着另建一个弹幕网站,接着就有了这个东西。
后来 bilibili 出现了,并且当时表现不错,然后这东西就搁置了。最近突然有人问我要代码,于是就从以前的 SVN 仓库里面扒出代码,传到 GitHub 来了。
演示站点: http://ytp.bbxy.net <-- 此站点会不定期抽风,如果页面显示 HTTP 503 错误,说明服务器又抽风了,请过半天左右以后再尝试访问。
部署说明请看 INSTALL.md 文件
== Flash 播放器如何获取和发送弹幕? ==
=== 发送弹幕 ===
Flash 播放器会将弹幕以 HTTP GET 方式发送给 savecomment.php 页面,各参数意义如下
content:经过 URL 编码的弹幕内容
fontsize:弹幕字号
color:弹幕字体颜色,以十进制表示的十六进制颜色值。比如,若颜色为蓝色(#0000ff),那么这里的值就应该为 255
mode:弹幕模式,0=底部弹幕,2=顶部弹幕,3=飞行弹幕,4=字幕菌
playtime:弹幕对应的影片播放时间,以毫秒为单位
id:弹幕对应的影片编号
完整的请求应该和下面的例子类似:
savecomment.php?content=%E6%B5%8B%E8%AF%95&fontsize=22&color=16777215&mode=3&playtime=199697&id=52
这个例子将会发送一个内容为“测试”,颜色白色,字号为 22,对应 52 号影片,并在影片播放到 199.697s 时出现的飞行弹幕。
=== 获取弹幕 ===
Flash 播放器在加载的时候会通过 playinfo.php 以 HTTP GET 方式读取对应影片的信息以及弹幕,参数如下:
id:影片编号
完整的请求应该和下面的例子类似:
playinfo.php?id=56
playinfo.php 会以 XML 格式返回影片信息及弹幕,格式如下:
<ytPlayer>
<video>
<flvID>1</flvID>
<flvURL>http://v61.v.iask.com/f/1/4de79ddcc3fc25fe3fe2237d8499f01316750450.flv</flvURL>
<playTimes>424</playTimes>
<title>新华里同人歌曲新专辑5in1 - 10月号「大容量」</title>
</video>
<onlineCount>1</onlineCount>
<commentCount>3</commentCount>
<comments>
<comment id="11907" fontSize="22" flySpeed="3000" fontColor="ffcccc" flyType="fly" isSubtitle="0" playTime="0.000" commentTime="1226642291">结束之后的弹幕测试</comment>
<comment id="11849" fontSize="22" flySpeed="3000" fontColor="ffffff" flyType="fly" isSubtitle="0" playTime="0.000" commentTime="1226600750">就归结为Flash的技术问题吧</comment>
<comment id="11848" fontSize="22" flySpeed="3000" fontColor="ffffff" flyType="fly" isSubtitle="0" playTime="0.000" commentTime="1226600740">其实理论上来说只要缓冲够了应该是可以定位到任意帧的嘛</comment>
</comments>
<ytPlayer>
各元素意义如下:
flvID:影片编号
flvURL:视频下载地址,如果视频被分段,则各段地址将以换行符 '\n' 进行分隔
playTimes:视频总时长,单位为秒
title:视频标题
onlineCount:当前在线人数
commentCount:弹幕总数
<commnet> 元素的值为弹幕内容,各属性的意义如下:
id:弹幕编号
fontSize:弹幕大小
flySpeed:弹幕显示时间,即从弹幕出现到弹幕消失的时间总和
fontColor:弹幕文字颜色
flyType:弹幕类型,可选值为 [fly|top|bottom]
isSubtitle:是否为弹幕菌的弹幕,1=是,0=否
playTime:弹幕出现时的影片时间,单位为秒,精确到小数点后 3 位
commentTime:弹幕发表的时间,单位为 UNIX 时间戳