Skip to content

Commit

Permalink
修复皮皮虾视频解析;支持皮皮虾图集
Browse files Browse the repository at this point in the history
  • Loading branch information
wujunwei928 committed Dec 22, 2024
1 parent 029341b commit 89130db
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 3 deletions.
4 changes: 4 additions & 0 deletions parser/douyin.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,10 @@ func (d douYin) parseVideoID(videoId string) (*VideoParseInfo, error) {
// 获取视频播放地址
videoUrl := data.Get("video.play_addr.url_list.0").String()
videoUrl = strings.ReplaceAll(videoUrl, "playwm", "play")
data.Get("video.play_addr.url_list").ForEach(func(key, value gjson.Result) bool {
fmt.Println(strings.ReplaceAll(value.String(), "playwm", "play"))
return true
})

// 如果图集地址不为空时,因为没有视频,上面抖音返回的视频地址无法访问,置空处理
if len(images) > 0 {
Expand Down
28 changes: 25 additions & 3 deletions parser/pipixia.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ type piPiXia struct {
}

func (p piPiXia) parseVideoID(videoId string) (*VideoParseInfo, error) {
reqUrl := "https://is.snssdk.com/bds/cell/detail/?cell_type=1&aid=1319&app_name=super&cell_id=" + videoId
reqUrl := "https://h5.pipix.com/bds/webapi/item/detail/?item_id=" + videoId
client := resty.New()
res, err := client.R().
SetHeader(HttpHeaderUserAgent, DefaultUserAgent).
Expand All @@ -21,11 +21,32 @@ func (p piPiXia) parseVideoID(videoId string) (*VideoParseInfo, error) {
return nil, err
}

data := gjson.GetBytes(res.Body(), "data.data.item")
data := gjson.GetBytes(res.Body(), "data.item")
authorId := data.Get("author.id").String()

// 获取图集图片地址
imagesObjArr := data.Get("note.multi_image").Array()
images := make([]string, 0, len(imagesObjArr))
for _, imageItem := range imagesObjArr {
imageUrl := imageItem.Get("url_list.0.url").String()
if len(imageUrl) > 0 {
images = append(images, imageUrl)
}
}

videoUrl := data.Get("video.video_download.url_list.0.url").String() // 备用视频地址, 可能有水印
// comments中可能带有不带水印视频, comments可能为空, 尝试获取
for _, comment := range data.Get("comments").Array() {
commentVideoUrl := comment.Get("item.video.video_high.url_list.0.url").String()
if comment.Get("item.author.id").String() == authorId && len(commentVideoUrl) > 0 {
videoUrl = commentVideoUrl
break
}
}

author := data.Get("author.name").String()
avatar := data.Get("author.avatar.download_list.0.url").String()
title := data.Get("share.title").String()
videoUrl := data.Get("origin_video_download.url_list.0.url").String()
cover := data.Get("cover.url_list.0.url").String()

parseRes := &VideoParseInfo{
Expand All @@ -35,6 +56,7 @@ func (p piPiXia) parseVideoID(videoId string) (*VideoParseInfo, error) {
}
parseRes.Author.Name = author
parseRes.Author.Avatar = avatar
parseRes.Images = images

return parseRes, nil
}
Expand Down

0 comments on commit 89130db

Please sign in to comment.