快手接口整理 接口地址:https://live.kuaishou.com/live_graphql 注意: 1:下面接口调用时,请先在PC端登录快手然后复制请求头中的cookies, 然后使用后端伪造请求头来调用快手接口,后端拿到数据后 将数据返回给我们自己的前端。 2:项目中只有这一个接口地址,通过调用接口中不同方法来获取不同数据 3:后端需要使用专门的 graphql 插件去发送请求 4:更多的接口请自行分析快手PC端的NetWork 使用注意: 1:PC端登录快手,然后复制请求头cookies,修改 http/index.js 中的 cookies的数值为刚刚复制的即可! 1:用户主页喜欢视频列表接口 请求:POST 调用方法:likedFeedsQuery() 方法参数: 1:principalId 用户快手id(用户自定义的用户名) 2:pcursor 当前的页码(类似分页的page参数),如果留空,默认第一页 3:count 一页展示多少条数据(类似分页的limit参数),默认24 调用实例: query { likedFeeds(principalId: "geekhelp", pcursor: "1.582321864999E12", count: 24) { pcursor list { id,thumbnailUrl,poster,workType,type,useVideoPlayer,imgUrls,imgSizes,magicFace, musicName,caption,location,liked,onlyFollowerCanComment,relativeHeight,timestamp,width,height, counts { displayView,displayLike,displayComment }, user { id,eid,name,avatar, }, expTag } } } 2:获取视频的评论 请求:POST 调用方法:commentListQuery() 方法参数: 1:count 评论数 2:page 无用参数,但是必填默认1即可 3:pcursor 分页的页面,每次请求都会返回下次页码 4:photoId 要获取视频评论的id query { shortVideoCommentList(photoId: '', page: 1, pcursor: '', count: 20t) { commentCount,realCommentCount,pcursor, commentList { commentId,authorId,authorName,content,headurl,timestamp,authorEid,status, subCommentCount,subCommentsPcursor,likedCount,liked, subComments { commentId,authorId,authorName,content,headurl,timestamp,authorEid status,replyToUserName,replyTo,replyToEid } } } } 3:获取热门推荐视频 请求:POST 调用方法:videoRecommendFeeds() 方法参数: 1:count 展示多少条 2:photoId 视频的id参数 调用实例: query { videoRecommendFeeds(photoId: $photoId, count: $count) { list { user { id,avatar,name }, id,thumbnailUrl,poster,workType,type,useVideoPlayer,imgUrls, imgSizes,magicFace,musicName,caption,location,liked,onlyFollowerCanComment, relativeHeight,timestamp,width,height, counts { displayView,displayLike,displayComment }, expTag } } } 4:获取视频的真实MP4播放地址 请求:POST 调用方法:feedById() 方法参数: 1:principalId 主播的快手id,从 likedFeeds 方法 list.user.id 获得 2:photoId 视频的id参数,从 likedFeeds 方法 list.id 中获得 调用实例: query { feedById(principalId: "xxx", photoId: "xxxx") { currentWork { playUrl,poster } } } 5:获取主播首页的视频 请求:POST 调用方法:publicFeeds() 方法参数: 1:principalId 主播的快手id 2:pcursor 分页页码 3:count 一页展示多少数据 调用实例: query { publicFeeds(principalId: "xxxx", pcursor: "xxxx", count: 24) { pcursor, list { id,thumbnailUrl,poster,workType,type,useVideoPlayer,imgUrls,imgSizes,magicFace,musicName, caption,location,liked,onlyFollowerCanComment,relativeHeight,timestamp,width,height, counts { displayView,displayLike,displayComment }, user { id,eid,name,avatar,cityName }, expTag } } } 6:获取视频回复的展开更多 请求:POST 调用方法:subCommentList() 方法参数: 1:photoId 视频id 2:rootCommentId 回复的顶级评论 3:pcursor 下标 4:count 数量 调用实例: query { subCommentList(photoId: $photoId, rootCommentId: $rootCommentId, pcursor: $pcursor, count: $count) { pcursor subCommentsList { commentId,authorId,authorName,content headurl,timestamp,authorEid,status,replyToUserName,replyTo, replyToEid } } } 7:对视频进行 喜欢收藏 请求:POST 调用方法:likeVideo() 方法参数: 1:photoId 视频id 2:principalId 快手用户id 3:cancel 0 喜欢,1 取消喜欢 query { likeVideo(photoId: $photoId, principalId: $principalId, cancel: $cancel) { result } } 7:获取自己关注的主播,有哪些正在进行直播 请求:GET https://live.kuaishou.com/rest/wd/live/liveStream/myfollow { "operationName":"visionProfileLikePhotoList", "variables": { "pcursor":"${pcursor}","page":"${page}" }, "query": " fragment photoContent on PhotoEntity { __typename id duration caption originCaption likeCount viewCount commentCount realLikeCount coverUrl photoUrl photoH265Url manifest manifestH265 videoResource coverUrls { url __typename } timestamp expTag animatedCoverUrl distance videoRatio liked stereoType profileUserTopPhoto musicBlocked } fragment recoPhotoFragment on recoPhotoEntity { __typename id duration caption originCaption likeCount viewCount commentCount realLikeCount coverUrl photoUrl photoH265Url manifest manifestH265 videoResource coverUrls { url __typename } timestamp expTag animatedCoverUrl distance videoRatio liked stereoType profileUserTopPhoto musicBlocked } fragment feedContent on Feed { type author { id name headerUrl following headerUrls { url __typename } __typename } photo { ...photoContent ...recoPhotoFragment __typename } canAddComment llsid status currentPcursor tags { type name __typename } __typename } query visionProfileLikePhotoList($pcursor: String, $page: String, $webPageArea: String) { visionProfileLikePhotoList(pcursor: $pcursor, page: $page, webPageArea: $webPageArea) { result,llsid,webPageArea, feeds { ...feedContent,__typename }, hostName,pcursor,__typename } }" }