a api for netkuu
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
handlers
static
tools
tpl
README.md
application.py

README.md

#校园视频API

本API全部为POST方式调用,GET方法为本人写的DEMO.可以进行参考.由于设置了Access-Control-Allow-Origin属性为ALL, 所以可以使用JS采用AJAX的方式跨域获取API数据.

##首页API

项目DEMO网址:http://netkuu.icehoney.me/
对首页进行POST请求,接受参数为key接上需要搜索的关键字.如果值为空,返回所有结果. 例如搜索 中二病也要谈恋爱 返回两个结果是个JSON数组:

[ { "code" : "687474703A2F2F6D382E6E65746B75752E636F6D2F652F64682F7A686F6E67657262696E67322F2A2A2E6D7034",
    "desc" : [ "池田和美",
        "福山润,内田真礼,赤崎千夏,浅仓杏美,上坂堇",
        "新番",
        "日韩",
        "动漫",
        "9",
        " 邪王真眼与勇太的同居生活开始了",
        "2014-3-7 16:37:52"
      ],
    "name" : "中二病也要谈恋爱!恋(1月新番)"
  },
  { "code" : "687474703A2F2F6D382E6E65746B75752E636F6D2F652F64682F7A686F6E67657262696E67796579616F74616E6C69616E61692F2A2A2E6D6B76",
    "desc" : [ "石原立也",
        "福山润,内田真礼",
        "完结",
        "日韩",
        "动漫",
        "13",
        " 邪王真眼与黑炎龙的共鸣——”与你的契约达成了“",
        "2013-7-11 6:19:05"
      ],
    "name" : "中二病也要谈恋爱"
  }
]

下面简要说明下JSON每个键值对的意义:
code是每个条目在服务器上对应的唯一id,之后的查询都需要它.desc是个描述数组,第一个值代表的是导演, 第二个值代表的是主演,第三个值代表的是类型,第四个值代表的是地区,第五个值代表的是类型,第六个值代表 的是有多少集,第七个是简要的描述,第八个是更新的时间.上面的所有值都可以当做关键字进行搜索.

##list页面API

list页面有两个API,一个是返回搜索结果条目的描述信息,一个是返回搜索结果条目的集数信息. 下面是一个描述信息的example,接受参数为code,接受主页搜索请求里每个对象的code属性值:

{ "actor" : "福山润,内田真礼,赤崎千夏,浅仓杏美,上坂堇",
  "adddate" : "2014-3-7 16:37:52",
  "brief" : "由于各种原因导致失去住所的六花开始寻找新家,但过程并不顺利,最终来到了勇太的家里。\n然而,勇太的家人却留下勇太一个人到雅加达去了。\n现在开始的同栖生活!?这样想着心跳不已的两个人。\n但此时樟叶为了迎考而回到了家中。不知应该感到安心还是遗憾,3人开始了奇妙的共同生活。\n另一方面,原小鸟游家搬进了新的住户。\n那是以前勇太曾经憧憬的,自称为魔法魔王少女、索非亚琳·SP·撒旦7世的七宫智音……\n如此这般,仍然完全称不上普通的、勇太的高二第一学期开始了。",
  "director" : "池田和美",
  "name" : "中二病也要谈恋爱!恋(1月新番)",
  "publishTime" : "2014-1-8",
  "region" : "日韩",
  "type" : "动漫"
}

下面是一个集数信息的example,接受参数为code和code值,还有 item:True :

{ "code" : [ "687474703A2F2F6D382E6E65746B75752E636F6D2F652F64682F7A686F6E67657262696E67322F30312E6D7034",
      "687474703A2F2F6D382E6E65746B75752E636F6D2F652F64682F7A686F6E67657262696E67322F30322E6D7034",
      "687474703A2F2F6D382E6E65746B75752E636F6D2F652F64682F7A686F6E67657262696E67322F30332E6D7034",
      "687474703A2F2F6D382E6E65746B75752E636F6D2F652F64682F7A686F6E67657262696E67322F30342E6D7034",
      "687474703A2F2F6D382E6E65746B75752E636F6D2F652F64682F7A686F6E67657262696E67322F30352E6D7034",
      "687474703A2F2F6D382E6E65746B75752E636F6D2F652F64682F7A686F6E67657262696E67322F30362E6D7034",
      "687474703A2F2F6D382E6E65746B75752E636F6D2F652F64682F7A686F6E67657262696E67322F30372E6D7034",
      "",
      ""
    ],
  "name" : "中二病也要谈恋爱!恋(1月新番)"
}

此时返回的code代表每集的ID,如果为空的话,代表这话虽然服务器有登记,但是尚无资源.

需要注意的是对于有些长篇连载的动漫例如,海贼王(451-635集) 集数不是从0开始的,可以参考这段JS代码获取起始集数:

num:function(code){
			if(code.length>9){
				var tempstr="";
				for(i=0;i<code.length-1;i++){
					tempstr = tempstr+"%"+code.substr(i,2);
					i=i+1;
				}
				var url=decodeURIComponent(tempstr);
			}
			num=url.match(/\#\#(\d+)/i);
			if (num){
				return num[1]
			}
			else
				return 0
		}

如果需要配图的话,每个条目的图片可以使用 http://movie.zzti.edu.cn/mov/+code+1.jpg 获取.

##item页面API

item页面是返回每集的具体下载地址,接受两个参数,一个是code一个是num,num代表是第几集,起始从0开始, 所以第一集的话num要传值为0.这次返回的只是纯文本的地址了.

##server页面API

如果你做的客户端想支持很多学校的话,可以使用server页面,server页面返回学校列表,也是一个JSON数组, 每个对象有name和 url键值对.只要在下载地址处进行替换便可轻松支持很多学校.

##视频文件解密

视频文件加密是前160位,按位取反,文件夹tools里面提供了解密工具的C语言实现和二进制文件,使用方法很简单

cd tools
chmod +x convert
./convert jiami.mp4 jiemi.mp4

这样就完成解密可以正常播放视频了.