精华内容
下载资源
问答
  • Miko动漫视频网站整站源码 二次元动漫网源码 视频弹幕网 自带播放器及数据.rar。
  • 哔哩哔哩弹幕网分析.ppt
  • 神奇弹幕 介绍 一个Bilibili直播弹幕姬+答谢姬+点歌姬+录播姬+回复姬。 人性化互动,支持弹幕聊天,观众互动,自动点歌,数据统计,原画录播,永久禁言等。 最大的特点是在于控制,自由制定规则,拥有无可能! 神奇...
  • 哔哩哔哩弹幕网注册会员步骤.docx
  • 哔哩哔哩弹幕网动画视频下载方法.docx
  • 主要为大家详细介绍了Android仿网络直播弹幕功能的实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 而与优酷、爱奇艺等传统视频网站不同的是,以 ACG(ACG 为英文Animation、Comic、Game 的缩写,是动画、漫画、游戏的总称) 文化为主要内容的弹幕视频网站没有网络视频前的贴片广告。那么,弹幕视频网站如何...
    2015 年 5 月 9 日发布的《传媒蓝皮书 :中国传媒产业发展报告 (2015)》指出,“2014 年网络广告收入首次超过电视广告”,其中贴片广告是网络广告收入的重要组成部分。而与优酷、爱奇艺等传统视频网站不同的是,以 ACG(ACG 为英文Animation、Comic、Game 的缩写,是动画、漫画、游戏的总称) 文化为主要内容的弹幕视频网站没有网络视频前的贴片广告。那么,弹幕视频网站如何实现盈利呢?
     
    弹幕是在互联网环境下诞生的一种实时交互性评论模式,它能以滚动、停留甚至更多动作特效方式直接显现在视频上,是观看视频的人即时发送的简短评论。随着弹幕模式的逐渐走红,近年来土豆、爱奇艺等传统视频网站也陆续推出弹幕功能,但本文讨论的弹幕视频网站仅指以分享动漫、游戏等 ACG 文化内容为主的部分网站,并选取哔哩哔哩弹幕网(俗称 B 站)这一典型案例来探讨该类型网站的盈利模式。
     
     
    弹幕视频网站的盈利模式
     
    1. 图片广告。 弹幕视频网站虽没有贴片广告,但在其首页的板块与板块之间、内容播放页上方存在一定的图片广告。这一类图片广告的设计风格和颜色与网页风格类似,视觉上非常融洽。广告内容多为动漫和游戏类,是针对网站目标受众的精准投放。弹幕视频网站的用户多为喜欢 ACG 文化的二次元爱好者,因而网站在选择广告主时会偏向于与其目标受众定位重合度较高的动漫游戏类,一方面为了使广告的宣传达到广告主的预期效果,另一方面也为了避免受众因对广告的反感而放弃浏览网站,以求达到“二次售卖”的最大效益。
     
    2. 独家新番。 新番源自日语词汇“新番组”,意思是新节目。当前国内普遍认为,新番一般就是指代日本最近(或即将) 出的动画的意思。
    受众的注意力资源是媒介竞争中的重要一环,为了争夺用户的注意力,拥有独家视频资源成为视频网站的竞争法宝之一。2015 年 7 月,B 站购买的正版番剧多达 23 部,其中 9 部独家。为填补购买版权的资金缺口,B 站发起了 “独家新番承包计划”,号召有经济能力的用户承包自己喜爱的新番,以此来代替贴片广告的收入。这其实是一种变相的收费服务探索,从结果来看似乎用户对此并不反感。例如动漫《Fate/Stay Night》上线仅一周,视频播放数就达到 259 万,承包人数为 14834 人。
     
    3. 游戏联运。 弹幕视频网站深知自身是众多重度二次元粉的聚集地,并充分挖掘这一平台优势,通过与游戏厂商进行游戏联运的方式将自身的用户“二次售卖”为游戏厂商的消费者,从中获取利润。和图片广告的内容一样,这类游戏大多贴着“动漫”“二次元”等标签,以精美画风和日本声优为主打,实现对消费者的精准投放。以 B 站为例,在 B 站的网页版和 APP 上均有游戏中心这一板块,含有多款游戏的进入页面。其中《崩坏学园 2》是第一款在安卓平台上区分了“B 服”和“国服”的游戏,即通过 B 站下载该游戏的用户可以直接使用原有 B 站账号进行登录和使用,而通过该游戏官网下载的用户则必须另外申请账号。该游戏厂商米哈游CEO 蔡浩宇透露,《崩坏学园 2》超过50% 的安卓收入来自 B 站,B 站核心用户占到安卓核心用户的 60% ~ 70%。另外,B 站和游戏产品的合作极具针对性,网站会评估联运游戏的风格,如果被认为 “不符合我们的风格”,那么 B 站会拒绝同该游戏产品的合作。
     
    4. 线下活动和周边商品。 即利用线下的活动把网络上虚拟的消费者聚集在一起,加深彼此间的联系,形成线上线下的立体产业链,增强受众黏性。B 站首页上开设了一个名为“日本游”的板块,用户可以通过网站选择去往日本的旅游线路,这些旅游线路几乎均含有 ACG 文化元素,如“关东游”项目主打的就是 ACG 旅游,旅行活动包括看漫展、购买动漫周边产品。周边商品方面,B 站在淘宝开设了官方淘宝店,出售官方毛绒公仔、手机壳、衣服等周边产品,商品的成交量达到上百件。就目前而言,淘宝店内的周边商品种类较少,是值得加大投入力度的领域。
     
     
    弹幕视频网站的发展 :做深做精,加强平台建设
     
    弹幕视频网站的发展离不开 ACG 文化,作为一种亚文化的产物,其受众数量相对少于主流大众文化,但并不意味着弹幕视频网站就会受制于受众数量局限而无法像传统网站一样实现最终盈利。特劳特(中国) 战略定位咨询公司总经理邓德隆认为 :“规模不等于竞争力,顾客心中的强势地位才是真正的竞争力。”由此可见,做大做强并不是企业健康发展的唯一选择,做深做精亦是可行之道。
     
    笔者认为,一方面,弹幕视频网站应当在现有用户的基础 上利用大数据技术充分了解用户属性和用户行为模式,从而实现对用户的精确定位 ;另一方面,弹幕视频网站应该深刻认识到自身在用户心中的地位是一个聚集大批 ACG 文化爱好者的社区平台,不断完善平台建设,强化卖点。
     
    和传统视频网站相比,弹幕视频网站最大的优势在于受众对 ACG 文化的热爱,他们对动漫和游戏的周边产品具有很强的好感度,因此周边市场和线下产业就成为可以大力发掘的突破口。首先,网站可以通过大数据对用户习惯进行分析,从而得出用户的兴趣点,并根据所得结果购买动漫视频版权。其次,在获得一些动漫的版后,网站可以利用这些独家新番的承包计划培养用户的付费习惯,为最终实现所有用户的付费观看奠定基础。再次,弹幕视频网站可以开辟线上商城板块,在网上售卖有关这些动漫内容的周边商品。亦可开设热门动漫的线下主题见面会,凝聚粉丝力量,形成粉丝经济并从中获取利润。而这些利润的获得又有助于网站购买更多的独家番剧,实现良性商业循环。
     
    B 站新开设的 “日本游”项目打开了线下产业的新大门,它能够利用日本旅游的机会聚集起一批经济状况较好的用户,提高用户对网站的忠诚度。在以后的发展过程中,网站可以与较大的旅行社合作,开设多条含有 ACG 文化元素的旅行线路,一方面为旅行社提供大量客户,另一方面也能增强自身的受众黏性。 平台建设的另一项着力点是继续发展游戏联运,将自身作为一个游戏的下载交流市场,用户可以在网站上直接下载感兴趣的游戏,用网站账号登录,省时省力。
     
    总之,弹幕视频网站应当在 ACG 文化平台这一定位下,不断根据现实调整发展策略,深入挖掘受众的兴趣点,开辟出多元化的盈利途径,强化自身在受众心中的地位。
     
     
    结 语
    目前弹幕视频网站所采取的一切盈利策略都应建立在对本土消费者消费习惯的充分认识之上,实现对用户的精准传播。“他山之石,可以攻玉”,吸收和借鉴外国可实行的成功模式很重要,弹幕视频网站可以参考日本 NICONICO 动画网大力发展周边市场和线下活动,完善平台建设,不断强化自身卖点,从而在激烈的市场竞争中走出一条清晰的盈利道路。
     
     
    转载自:CNKI

    转载于:https://www.cnblogs.com/coincidence/p/5936555.html

    展开全文
  • 请将以下大字拖放至书签栏,打开吐槽视频播放页。点击书签栏的吐槽插件书签,将替换新的播放方式进行播放。(每个播放页都需要点一次插件) 吐槽插件 (如果之前的没用了,请重新拖动一遍) 操作方法: 此...

    请将以下大字拖放至书签栏,打开吐槽网视频播放页。点击书签栏的吐槽插件书签,将替换新的播放方式进行播放。(每个播放页都需要点一次插件)

    吐槽插件

    (如果之前的没用了,请重新拖动一遍)

    操作方法:

     

    此书签是修改部分代码功能,真正想解决 还请C站内部人员改改代码吧。

    转载于:https://www.cnblogs.com/wuhairui/p/7690086.html

    展开全文
  • 自定义弹幕动画

    2016-09-19 21:52:59
    自定义弹幕动画
  • 弹幕网分析-1

    千次阅读 2020-01-28 21:29:28
    首先呢,打开改网站随便点个直播间,当然要有人发弹幕。观察弹幕和请求,发现并没有很多的请求,那我们看看ws(websocket)点这个清空记录然后我们刷新一下页面然后发现一堆我们一个一个观...

    首先呢,打开改网站随便点个直播间,当然要有人发弹幕。

    观察弹幕和请求,发现并没有很多的请求,那我们看看ws(websocket)

    点这个清空记录然后我们刷新一下页面

    然后发现一堆我们一个一个观察

    我们可以看到,都是这种二进制的,我们堆栈进去看看

    当我们下断点之后,发现他弹幕就没了,放行之后弹幕就滚动出来了

    跟进去这个函数,这个e参数在这个三元表达式里面处理我们继续看

    this.protoLink.isWs()
    

    判断这个,我们看到isWs,那肯定是ws所以我们看第一个

    我们看这个函数 onProto,一般有经验的可以看出来是一种tlv结构,去掉on剩下Proto谷歌开源了一个pb全称Google Protocol Buffer又简称Protobuf,,然后我们就可以一步一步分析下去,只要掌握了堆栈大法,我们就可以为所欲为的分析任意网站。

    Protocol Buffer
      Google Protocol Buffer又简称Protobuf,它是一种很高效的结构化数据存储格式,一般用于结构化数据的串行化,简单说就是我们常说的数据序列化。这种序列化的协议非常轻便高效,而且是跨平台的,目前已支持多种主流语言(3.0版本支持C++, JAVA, C#, OC, GO, PYTHON等)。
      通过这种方式序列化得到的二进制流数据比传统的XML, JSON等方式的结果都占用更小的空间,并且其解析效率也更高,用于通讯协议或数据存储领域是非常好的。
      再者,其使用的方式也非常简单,我们只需要预先定义好消息(message)的数据格式,然后通过其提供的compiler即可生成对应的文件,在那些文件里定义和实现了操作这个数据结构所有字段的setter/getter方法,我们只需要使用这些方法设置该数据结构的字段,然后通过序列化方法即可得到需要的结果(二进制数据流)。

    ,一般弹幕网站都是使用的ws+pb,或者是ws+json

    展开全文
  • ,提供弹幕抓取,抓取记录查询,弹幕下载,自定义关键字统计,铁粉统计,高光时刻自动捕获,弹幕实时发送速度可视化,高频弹幕词云等功能(正在开发中,即将发布,打造企业级应用的使用体验!) 斗鱼弹幕抓取及实时...
  • 抖音音直播弹幕,源码来自于互联网,请自行拆掉、勿直接调试运行,
  • 目录 成果展示 源代码 成果展示 源代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>barrage</title> <... bord..

    目录

    成果展示

    源代码


    成果展示 

    源代码 

    
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>barrage</title>
      <style>
        .box{
          width: 800px;
          height: 500px;
          margin:0 auto;
          border:5px black solid;
        }
        .barrage-container-wrap{
            width: 100%;
            height: 500px;
            position: relative;
            overflow: hidden;
            background: url('./image/陈强.jpg') no-repeat;
            background-size: 100% 100%;
        }
        .barrage-container{
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 30px;
            cursor: default;
            -webkit-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none;
            user-select: none;
        }
        .barrage-item{
            position:absolute;
            top:0;
            left: 100%;
            white-space: nowrap;
            cursor: pointer;
            color:#fff;
        }
        .barrage-item .barrage-tip{
            display: none;
            position: absolute;
            top:-26px;
            padding: 7px 15px;
            line-height: 12px;
            font-size: 12px;
            color: #f20606;
            background-color: #fff;
            white-space: nowrap;
            border: 1px solid #ddd;
            border-radius: 8px;
            -webkit-box-shadow: 0 0 10px 1px rgba(0,0,0,.1);
            box-shadow: 0 0 10px 1px rgba(0,0,0,.1);
            -webkit-transform-origin: 15px 100%;
            -ms-transform-origin: 15px 100%;
            transform-origin: 15px 100%;
            webkit-animation: tipScale cubic-bezier(.22,.58,.12,.98) .4s;
            animation: tipScale cubic-bezier(.22,.58,.12,.98) .4s;
          }
        .send-wrap{
            width: 800px;
            height: 40px;
          margin-top: 20px;
          border:5px black solid;
        }
        .input{
            width: 300px;
            height: 30px;
            margin-top: 5px;
            margin-left: 250px;
            position: center;
            line-height: 30px;
            outline: none;
            -webkit-appearance: none;
            border-radius: 5px;
            padding:0;
            padding-left: 10px;
        }
        .send-btn{
            height: 38px;
            line-height: 38px;
            margin-top: 5px;
            text-align: center;
            font-weight: bold;
            color: #fff;
            background: #93d0ea;
            text-shadow:1px 1px 1px #333;
            border-radius: 5px;
            margin:0 20px 20px 0;
            position: relative;
            overflow: hidden;
            cursor: pointer;
            padding:5px 15px;
        }
        @-webkit-keyframes tipScale{
            0{
              -webkit-transform: scale(0);
               transform: scale(0);
            }
            50% {
               -webkit-transform: scale(1.1);
               transform: scale(1.1);
            }
            100% {
              -webkit-transform: scale(1);
              transform: scale(1);
            }
        }
      </style>
    </head>
    <body>
    <div class="box">
       <div class="barrage-container-wrap clearfix" >
        <div class="barrage-container">
        </div>  
      </div>
      <div class="send-wrap">
        <input type="text" class="input" placeholder="弹幕发送">
        <span class="send-btn">发送</span>
      </div>  
    </div>
    </body>
    <script>
    (function(){
      var barrageArray = [
              {
                url: '用户头像',
                text: '秋天爱美丽',
                level: 10
              },
              {
                url: '用户头像',
                text: '今天很开心啊',
                level: 10
              },
              {
                url: '用户头像',
                text: 'winter has come',
                level: 10
              },
              {
                url: '',
                text: '土耳其现在形势',
                level: 10
              },
              {
                url: '',
                text: '没事早点回家吃饭啊',
                level: 10
              },
               {
                url: '',
                text: '这主角真实醉了,不会回啊',
                level: 10
              },
              {
                url: '',
                text: '背景音乐真好听啊',
                level: 10
              },
              {
                url: '',
                text: '背景音乐是***',
                level: 10
              },
              {
                url: '',
                text: '经费在燃烧啊',
                level: 10
              },
              {
                url: '',
                text: '国产良心剧',
                level: 10
              },
          ];
      var barrageColorArray = [
        '#0099CC','#333333', '#009966','#FFFF66','#9933FF','#FFFF99','#CCCCFF','#CC9933','#FFFF66'
      ];
      var barrageTipWidth = 50; //提示语的长度
    
      var barrageBoxWrap = document.querySelector('.barrage-container-wrap');;
      var barrageBox = document.querySelector('.barrage-container');
      var inputBox = document.querySelector('.input');
      var sendBtn = document.querySelector('.send-btn');
    
      //容器的宽高度
      var barrageWidth = ~~window.getComputedStyle(barrageBoxWrap).width.replace('px','');
      var barrageHeight = ~~window.getComputedStyle(barrageBoxWrap).height.replace('px','');
    
      //发送
      function sendMsg(){
        var inputValue = inputBox.value;
        inputValue .replace(/\ +/g, "");
    
        if (inputValue.length <= 0) {
            alert('请输入');
            return false;
        }
    
        //生成弹幕
        createBarrage(inputValue,true); 
        inputBox.value = '';  
      }
      
    
      //创建弹幕
      function createBarrage(msg, isSendMsg){
        var divNode = document.createElement('div');
        var spanNode = document.createElement('span');
    
        divNode.innerHTML = msg;
        divNode.classList.add('barrage-item');
        barrageBox.appendChild(divNode);
    
        spanNode.innerHTML = '举报';
        spanNode.classList.add('barrage-tip');
        divNode.appendChild(spanNode);
    
        barrageOffsetLeft = getRandom(barrageWidth, barrageWidth*2);
        barrageOffsetLeft = isSendMsg ? barrageWidth : barrageOffsetLeft
        barrageOffsetTop = getRandom(10, barrageHeight-10);
        barrageColor = barrageColorArray[Math.floor(Math.random()*(barrageColorArray.length))];
    
        //执行初始化滚动
        initBarrage.call(divNode,{
          left : barrageOffsetLeft,
          top : barrageOffsetTop,
          color : barrageColor
        });
      }
    
      //初始化弹幕移动(速度,延迟)
      function initBarrage(obj) {
        //初始化
        obj.top = obj.top || 0;
        obj.class = obj.color || '#fff';
        this.style.left = obj.left + 'px';
        this.style.top = obj.top + 'px';
        this.style.color = obj.color;   
    
        //添加属性
        this.distance = 0;
        this.width = ~~window.getComputedStyle(this).width.replace('px','');
        this.offsetLeft = obj.left;
        this.timer = null;
    
        //弹幕子节点
        var barrageChileNode = this.children[0];
        barrageChileNode.style.left = (this.width-barrageTipWidth)/2 + 'px';
    
        //运动
        barrageAnimate(this);
    
        //停止
        this.onmouseenter = function(){
          barrageChileNode.style.display= 'block';
          cancelAnimationFrame(this.timer);
        };
    
        this.onmouseleave = function(){
          barrageChileNode.style.display = 'none';
          barrageAnimate(this);
        };
    
        //举报
        barrageChileNode.onclick = function(){
          alert('举报成功');
        }
      }
     
      //弹幕动画
      function barrageAnimate(obj){
        move(obj);
    
        if(Math.abs(obj.distance) < obj.width+obj.offsetLeft){
          obj.timer = requestAnimationFrame(function(){
            barrageAnimate(obj);
          });
        }else{
          cancelAnimationFrame(obj.timer);
          //删除节点
          obj.parentNode.removeChild(obj);
        }
      }
    
      //移动
      function move(obj){
        obj.distance--;
        obj.style.transform = 'translateX('+obj.distance+'px)';
        obj.style.webkitTransform = 'translateX('+obj.distance+'px)';
      }
    
      //随机获取高度
      function getRandom(start, end){
        return start +(Math.random() * (end - start));
      }
    
    
      /*******初始化事件**********/
      //系统数据
      barrageArray.forEach(function(item,index){
        createBarrage(item.text, false);
      });
    
      //点击发送
      sendBtn.onclick = sendMsg;   //点击发送
    
      //回车
      inputBox.onkeydown = function(e){
        e = e|| window.event;
        if(e.keyCode == 13){
          send();
        }
      }
    
    })()
    
    //兼容写法
    (function() {
        var lastTime = 0;
        var vendors = ['webkit', 'moz'];
        for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
            window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
            window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] ||    // Webkit中此取消方法的名字变了
                                          window[vendors[x] + 'CancelRequestAnimationFrame'];
        }
    
        if (!window.requestAnimationFrame) {
            window.requestAnimationFrame = function(callback, element) {
                var currTime = new Date().getTime();
                var timeToCall = Math.max(0, 16.7 - (currTime - lastTime));
                var id = window.setTimeout(function() {
                    callback(currTime + timeToCall);
                }, timeToCall);
                lastTime = currTime + timeToCall;
                return id;
            };
        }
        if (!window.cancelAnimationFrame) {
            window.cancelAnimationFrame = function(id) {
                clearTimeout(id);
            };
        }
    }());
    </script>
    </html>
    

     

    展开全文
  • 哔哩哔哩弹幕视频 - ( ゜- ゜)つロ 乾杯~ - bilibili http://www.bilibili.com/  bilibili是中国大陆一个动画、游戏相关的弹幕视频分享网站,也被称为哔哩哔哩、B站,其前身为视频分享网站Mikufans。该网站由...
  • 弹幕姬-crx插件

    2021-04-06 19:01:06
    语言:English,中文 (简体) 自动加载弹幕到当前播放视频. ...//www.youtube.com/watch?v=dt3q6rYzKrg枫林http://8maple.ru/281124/Anime1https://anime1.me/6709D站http://www.dilidili.wang/watch3/72985/H站...
  • 果然,微信小程序视频自带弹幕.是不是很爽,跟我一起来看看. 微信小程序开发之录音机 音频播放 动画 (真机可用)   (此图片来源于网络,如有侵权,请联系删除! )   再上几张图: 1.视频播放器 (此图片来源于网络,如有...
  • 哔哩哔哩直播间弹幕实时获取
  • 虎牙抓取弹幕源码
  • 视频弹幕

    2015-05-29 16:55:13
    非常好的代码库,可以直接使用的视频弹幕库 使用多种方式(View/SurfaceView/TextureView)实现高效绘制 B站xml弹幕格式解析 基础弹幕精确还原绘制 支持mode7特殊弹幕 多核机型优化,高效的预缓存机制 支持多种...
  • Vue全家桶仿移动端AcFun弹幕视频WebApp
  • 哔哩哔哩直播间弹幕实时获取
  • 主要介绍了Android 实现仿网络直播弹幕功能详解的相关资料,并附实例代码及实现效果图,需要的朋友可以参考下
  • QT实现弹幕桌面窗口弹幕显示,qtwidget获取桌面分辨率,自定qlabel控件
  • 弹幕单词 v4.14官方版

    2021-01-06 10:08:25
    为您提供弹幕单词下载,弹幕单词能够让你在电脑桌面弹幕背单词,碎片时间,工作学习同步进行,查词翻译一步到位,包括学习情况、扩展功能、单词本、待学新词等功能!软件特色 查询翻译,一步到位 单词脑图,助力...
  • nodejs 抓取斗鱼实时弹幕+离线弹幕 斗鱼直播有两种弹幕,实时弹幕和离线弹幕 实时弹幕:通过webscoket获取 离线弹幕:通过api接口获取 本chat主要讲解如何获取这两种弹幕数据...
  • Lolita视频弹幕网项目总结 1.调用阿里云发送短信接口 2.使用Dplayer 3.使用GoEasey实现信息的推广 4.获取请求的外网IP并获取地理位置 5.上传视频并截图
  • B站弹幕姬是针对b站视频提供的一款弹幕编辑工具。软件简单实用,B站弹幕姬可以帮你设置弹幕出现时间及出现的位置,如此简单实用的工具受到了众多B站人士的喜爱,成为了B站粉丝们的专用工具了。 软件功能 侧边栏...
  • 访问冰冰的第一个视频,点击弹幕列表,查看历史弹幕,随便选择一天点击。 会在network的XHR下发现上图的一个ajax请求响应。我们点进去看一下: 这是一个GET请求,看到content-encoding: gzip,说明这个请求的响应...
  • jQuery实现的动态的网络直播弹幕效果,可以发弹幕,并滚动播放.
  • 嘿嘿弹幕技术支持

    2019-09-10 19:28:22
    嘿嘿弹幕是新出的一款手机弹幕软件,可以在手机上自定义制作字幕滚动特效,让你的手机摇身一变成为一个弹幕神器。 一款功能强大,容易上手,用于自制滚动轮播字幕弹幕的应用! 无论是演唱会,音乐会,机场接机,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,035
精华内容 5,614
关键字:

弹幕网