gout to become the Swiss Army Knife of the http client @^^@---> gout 是http client领域的瑞士军刀,小巧,强大,犀利。具体用法可看文档,如使用迷惑或者API用得不爽都可提issues

gout

gout 是go写的http 客户端,为提高工作效率而开发

Go codecov Go Report Card

构架

gout-ad.png

feature

  • 支持设置 GET/PUT/DELETE/PATH/HEAD/OPTIONS
  • 支持设置请求 http header(可传 struct,map,array,slice 等类型)
  • 支持设置 URL query(可传 struct,map,array,slice,string 等类型)
  • 支持设置 json 编码到请求 body 里面(可传struct, map, string, []byte 等类型)
  • 支持设置 xml 编码到请求 body 里面(可传struct, string, []byte 等类型)
  • 支持设置 yaml 编码到请求 body 里面(可传struct, map, string, []byte 等类型)
  • 支持设置 form-data(可传 struct, map, array, slice 等类型)
  • 支持设置 x-www-form-urlencoded(可传 struct,map,array,slice 等类型)
  • 支持设置 io.Reader,uint/uint8/uint16...int/int8...string...[]byte...float32,float64 至请求 body 里面
  • 支持解析响应body里面的json,xml,yaml至结构体里(BindJSON/BindXML/BindYAML)
  • 支持解析响应body的内容至io.Writer, uint/uint8...int/int8...string...[]byte...float32,float64
  • 支持解析响应header至结构体里
  • 支持接口性能benchmark,可控制压测一定次数还是时间,可控制压测频率
  • 支持retry-backoff,可以指定重试条件
  • 支持发送裸http数据包
  • 支持导出curl命令
  • 传入自定义*http.Client
  • 支持请求中间件(https://github.com/antlabs/gout-middleware)
  • 等等更多

演示

gout-example.gif

内容

Installation

go get github.com/guonaihong/gout

example

examples 目录下面的例子,都是可以直接跑的。如果觉得运行例子还是不明白用法,可以把你迷惑的地方写出来,然后提issue

运行命令如下

cd _example
# GOPROXY 是打开go module代理,可以更快下载模块
# 第一次运行需要加GOPROXY下载模块,模块已的直接 go run 01-color-json.go 即可
env GOPROXY=https://goproxy.cn go run 01-color-json.go

quick start

package main

import (
   "fmt"
   "github.com/guonaihong/gout"
   "time"
)

// 用于解析 服务端 返回的http body
type RspBody struct {
   ErrMsg  string `json:"errmsg"`
   ErrCode int    `json:"errcode"`
   Data    string `json:"data"`
}

// 用于解析 服务端 返回的http header
type RspHeader struct {
   Sid  string `header:"sid"`
   Time int    `header:"time"`
}

func main() {
   rsp := RspBody{}
   header := RspHeader{}

   //code := 0
   err := gout.

   	// POST请求
   	POST("127.0.0.1:8080").

   	// 打开debug模式
   	Debug(true).

   	// 设置查询字符串
   	SetQuery(gout.H{"page": 10, "size": 10}).

   	// 设置http header
   	SetHeader(gout.H{"X-IP": "127.0.0.1", "sid": fmt.Sprintf("%x", time.Now().UnixNano())}).

   	// SetJSON设置http body为json
   	// 同类函数有SetBody, SetYAML, SetXML, SetForm, SetWWWForm
   	SetJSON(gout.H{"text": "gout"}).

   	// BindJSON解析返回的body内容
   	// 同类函数有BindBody, BindYAML, BindXML
   	BindJSON(&rsp).

   	// 解析返回的http header
   	BindHeader(&header).
   	// http code
   	// Code(&code).

   	// 结束函数
   	Do()

   	// 判度错误
   if err != nil {
   	fmt.Printf("send fail:%s\n", err)
   }
}

/*
> POST /?page=10&size=10 HTTP/1.1
> Sid: 15d9b742ef32c130
> X-Ip: 127.0.0.1
> Content-Type: application/json
>

{
   "text": "gout"
}


*/

API examples

GET POST PUT DELETE PATH HEAD OPTIONS

package main

import (
	"github.com/guonaihong/gout"
)

func main() {
	url := "https://github.com"
	// 发送GET方法
	gout.GET(url).Do()

	// 发送POST方法
	gout.POST(url).Do()

	// 发送PUT方法
	gout.PUT(url).Do()

	// 发送DELETE方法
	gout.DELETE(url).Do()

	// 发送PATH方法
	gout.PATCH(url).Do()

	// 发送HEAD方法
	gout.HEAD(url).Do()

	// 发送OPTIONS
	gout.OPTIONS(url).Do()
}

Query Parameters

SetQuery

package main

import (
    "fmt"
    "github.com/guonaihong/gout"
    "time"
)

func main() {
    err := gout.
        //设置GET请求和url,:8080/test.query是127.0.0.1:8080/test.query的简写
        GET(":8080/test.query").
        //打开debug模式
        Debug(true).
        //设置查询字符串
        SetQuery(gout.H{
            "q1": "v1",
            "q2": 2,
            "q3": float32(3.14),
            "q4": 4.56,
            "q5": time.Now().Unix(),
            "q6": time.Now().UnixNano(),
            "q7": time.Now().Format("2006-01-02")}).
        //结束函数
        Do()
    if err != nil {
        fmt.Printf("%s\n", err)
        return
    }

}

/*
> GET /test.query?q1=v1&q2=2&q3=3.14&q4=4.56&q5=1574081600&q6=1574081600258009213&q7=2019-11-18 HTTP/1.1
>

< HTTP/1.1 200 OK
< Content-Length: 0
*/

SetQuery支持的更多数据类型

package main

import (
	"github.com/guonaihong/gout"
)

func main() {

	code := 0

	err := gout.

		//发送GET请求 :8080/testquery是127.0.0.1:8080/testquery简写
		GET(":8080/testquery").

		// 设置查询字符串
		SetQuery( /*看下面支持的情况*/ ).

		//解析http code,如不关心服务端返回状态吗,不设置该函数即可
		Code(&code).
		Do()
	if err != nil {

	}
}



/*
SetQuery支持的类型有
* string
* map[string]interface{},可以使用gout.H别名
* struct
* array, slice(长度必须是偶数)
*/

// 1.string
SetQuery("check_in=2019-06-18&check_out=2018-06-18")

// 2.gout.H 或者 map[string]interface{}
SetQuery(gout.H{
    "check_in":"2019-06-18",
    "check_out":"2019-06-18",
})

// 3.struct
type testQuery struct {
    CheckIn string `query:checkin`
    CheckOut string `query:checkout`
}

SetQuery(&testQuery{CheckIn:2019-06-18, CheckOut:2019-06-18})

// 4.array or slice
// ?active=enable&action=drop
SetQuery([]string{"active", "enable", "action", "drop"})`

http header

Set request header

package main

import (
    "fmt"
    "github.com/guonaihong/gout"
    "time"
)

func main() {
    err := gout.
        //设置GET请求和url,:8080/test.header是127.0.0.1:8080/test.header的简写
        GET(":8080/test.header").
        //设置debug模式
        Debug(true).
        //设置请求http header
        SetHeader(gout.H{
            "h1": "v1",
            "h2": 2,
            "h3": float32(3.14),
            "h4": 4.56,
            "h5": time.Now().Unix(),
            "h6": time.Now().UnixNano(),
            "h7": time.Now().Format("2006-01-02")}).
        Do()
    if err != nil {
        fmt.Printf("%s\n", err)
        return
    }

}

/*
> GET /test.header HTTP/1.1
> H2: 2
> H3: 3.14
> H4: 4.56
> H5: 1574081686
> H6: 1574081686471347098
> H7: 2019-11-18
> H1: v1
>


< HTTP/1.1 200 OK
< Content-Length: 0
*/

Parsing the response header

package main

import (
    "fmt"
    "github.com/guonaihong/gout"
    "time"
)

// 和解析json类似,如要解析http header需设置header tag
type rspHeader struct {
    Total int       `header:"total"`
    Sid   string    `header:"sid"`
    Time  time.Time `header:"time" time_format:"2006-01-02"`
}

func main() {

    rsp := rspHeader{}
    err := gout.
        // :8080/test.header是 http://127.0.0.1:8080/test.header的简写
        GET(":8080/test.header").
        //打开debug模式
        Debug(true).
        //解析请求header至结构体中
        BindHeader(&rsp). 
        //结束函数
        Do()
    if err != nil {
        fmt.Printf("%s\n", err)
        return
    }

    fmt.Printf("rsp header:\n%#v \nTime:%s\n", rsp, rsp.Time)
}

/*
> GET /test.header HTTP/1.1
>



< HTTP/1.1 200 OK
< Content-Length: 0
< Sid: 1234
< Time: 2019-11-18
< Total: 2048
*/

SetHeader和BindHeader支持的更多类型

package main

import (
    "fmt"
    "github.com/guonaihong/gout"
)

type testHeader struct {
    CheckIn  string `header:checkin`
    CheckOut string `header:checkout`
}

func main() {

    t := testHeader{}

    code := 0

    err := gout.
        GET(":8080/testquery").
        Code(&code).
        SetHeader( /*看下面支持的类型*/ ).
        BindHeader(&t).
        Do()
    if err != nil {
        fmt.Printf("fail:%s\n", err)
    }   
}
  • BindHeader支持的类型有 结构体
// struct
type testHeader struct {
    CheckIn string `header:checkin`
    CheckOut string `header:checkout`
}
  • SetHeader支持的类型有
/*
map[string]interface{},可以使用gout.H别名
struct
array, slice(长度必须是偶数)
*/

// gout.H 或者 map[string]interface{}
SetHeader(gout.H{
    "check_in":"2019-06-18",
    "check_out":"2019-06-18",
})

// struct
type testHeader struct {
    CheckIn string `header:checkin`
    CheckOut string `header:checkout`
}

SetHeader(&testHeader{CheckIn:2019-06-18, CheckOut:2019-06-18})

// array or slice
// -H active:enable -H action:drop
SetHeader([]string{"active", "enable", "action", "drop"})

http body

body

Set the data to the http request body

// SetBody 设置string, []byte等类型数据到http body里面
// SetBody支持的更多数据类型可看下面
package main

import (
	"fmt"
	"github.com/guonaihong/gout"
)

func main() {
	err := gout.
		// 设置POST方法和url
		POST(":8080/req/body").
		//打开debug模式
		Debug(true).
		// 设置非结构化数据到http body里面
		// 设置json需使用SetJSON
		SetBody("send string").
		//结束函数
		Do()

	if err != nil {
		fmt.Printf("%s\n", err)
		return
	}

}

/*
> POST /req/body HTTP/1.1
>

send string

< HTTP/1.1 200 OK
< Content-Type: text/plain; charset=utf-8
< Content-Length: 2

*/

Parse the response body into a variable

// BindBody bind body到string, []byte等类型变量里面
package main

import (
	"fmt"
	"github.com/guonaihong/gout"
)

func main() {
	s := ""
	err := gout.
		// 设置GET 方法及url
		GET("www.baidu.com").
		// 绑定返回值
		BindBody(&s).
		// 结束函数
		Do()

	if err != nil {
		fmt.Printf("%s\n", err)
		return
	}

	fmt.Printf("html size = %d\n", len(s))
}

支持的类型有

  • io.Reader(SetBody 支持)
  • io.Writer(BindBody 支持)
  • int, int8, int16, int32, int64
  • uint, uint8, uint16, uint32, uint64
  • string
  • []byte
  • float32, float64

明确不支持的类型有

  • struct
  • array, slice

json

Serialize json to request body

更多支持数据类型及用法

package main

import (
	"fmt"
	"github.com/guonaihong/gout"
)

func main() {
	err := gout.POST(":8080/colorjson").
		//打开debug模式
		Debug(true).
		//设置json到请求body
		SetJSON(
			gout.H{
				"str":   "foo",
				"num":   100,
				"bool":  false,
				"null":  nil,
				"array": gout.A{"foo", "bar", "baz"},
				"obj":   gout.H{"a": 1, "b": 2},
			},
		).
		Do()

	if err != nil {
		fmt.Printf("err = %v\n", err)
	}
}

/*
> POST /colorjson HTTP/1.1
> Content-Type: application/json
>

{
    "array": [
        "foo",
        "bar",
        "baz"
    ],
    "bool": false,
    "null": null,
    "num": 100,
    "obj": {
        "a": 1,
        "b": 2
    },
    "str": "foo"
}
*/

Parsed http response body in json format

package main

import (
	"fmt"
	"github.com/guonaihong/gout"
)

type rsp struct {
	ErrMsg  string `json:"errmsg"`
	ErrCode int    `json:"errcode"`
}

func main() {
	rsp := rsp{}
	err := gout.
		GET(":8080/colorjson").
		//打开debug模式
		Debug(true).
		//绑定响应json数据到结构体
		BindJSON(&rsp).
		//结束函数
		Do()

	if err != nil {
		fmt.Printf("err = %v\n", err)
	}
}

yaml

  • SetYAML() 设置请求http body为yaml
  • BindYAML() 解析响应http body里面的yaml到结构体里面

发送yaml到服务端,然后把服务端返回的yaml结果解析到结构体里面

type data struct {
    Id int `yaml:"id"`
    Data string `yaml:"data"`
}


var d1, d2 data
var httpCode int 


err := gout.POST(":8080/test.yaml").SetYAML(&d1).BindYAML(&d2).Code(&httpCode).Do()
if err != nil || httpCode != 200{
    fmt.Printf("send fail:%s\n", err)
}

xml

  • SetXML() 设置请求http body为xml
  • BindXML() 解析响应http body里面的xml到结构体里面

发送xml到服务端,然后把服务端返回的xml结果解析到结构体里面

type data struct {
    Id int `xml:"id"`
    Data string `xml:"data"`
}


var d1, d2 data
var httpCode int 


err := gout.POST(":8080/test.xml").SetXML(&d1).BindXML(&d2).Code(&httpCode).Do()
if err != nil || httpCode != 200{
    fmt.Printf("send fail:%s\n", err)
}

form-data

  • SetForm() 设置http body 为multipart/form-data格式数据

客户端发送multipart/form-data到服务端,curl用法等同go代码

curl -F mode=A -F text="good" -F voice=@./test.pcm -f voice2=@./test2.pcm url
  • 使用gout.H
package main

import (
	"fmt"
	"github.com/guonaihong/gout"
)

func main() {

	code := 0
	err := gout.
		POST(":8080/test").
		// 打开debug模式
		Debug(true).
		SetForm(
			gout.H{
				"mode": "A",
				"text": "good",
				// 从文件里面打开
				"voice":  gout.FormFile("test.pcm"),
				"voice2": gout.FormMem("pcm"),
			},
		).
		//解析http code,如不关心可以不设置
		Code(&code).
		Do()

	if err != nil {
		fmt.Printf("%s\n", err)
	}

	if code != 200 {
	}
}

/*
> POST /test HTTP/1.1
> Content-Type: multipart/form-data; boundary=2b0685e5b98e540f80b247d5e7c1283807aa07e62b827543859a6db765a8
>

--2b0685e5b98e540f80b247d5e7c1283807aa07e62b827543859a6db765a8
Content-Disposition: form-data; name="mode"

A
--2b0685e5b98e540f80b247d5e7c1283807aa07e62b827543859a6db765a8
Content-Disposition: form-data; name="text"

good
--2b0685e5b98e540f80b247d5e7c1283807aa07e62b827543859a6db765a8
Content-Disposition: form-data; name="voice"; filename="voice"
Content-Type: application/octet-stream

pcm pcm pcm

--2b0685e5b98e540f80b247d5e7c1283807aa07e62b827543859a6db765a8
Content-Disposition: form-data; name="voice2"; filename="voice2"
Content-Type: application/octet-stream

pcm
--2b0685e5b98e540f80b247d5e7c1283807aa07e62b827543859a6db765a8--


< HTTP/1.1 200 OK
< Server: gurl-server
< Content-Length: 0
*/
 
  • 使用结构体
type testForm struct {
    Mode string `form:"mode"`
    Text string `form:"text"`
    Voice string `form:"voice" form-file:"true"` //从文件中读取 
    Voice2 []byte `form:"voice2" form-file:"mem"`  //从内存中构造
}

type rsp struct{
    ErrMsg string `json:"errmsg"`
    ErrCode int `json:"errcode"`
}

t := testForm{}
r := rsp{}
code := 0

err := gout.POST(url).SetForm(&t).ShoudBindJSON(&r).Code(&code).Do()
if err != nil {

}

x-www-form-urlencoded

  • 使用SetWWWForm函数实现发送x-www-form-urlencoded类型数据
package main

import (
	"fmt"
	"github.com/guonaihong/gout"
)

func main() {

	code := 0
	err := gout.
		POST(":8080/post").
		// 打开debug模式
		Debug(true).
		// 设置x-www-form-urlencoded数据
		SetWWWForm(
			gout.H{
				"int":     3,
				"float64": 3.14,
				"string":  "test-www-Form",
			},
		).
		// 关心http code 返回值设置
		Code(&code).
		Do()
	if err != nil {
		fmt.Printf("%s\n", err)
		return
	}

	if code != 200 {
	}
}

/*
> POST /post HTTP/1.1
> Content-Type: application/x-www-form-urlencoded
>

float64=3.14&int=3&string=test-www-Form

< HTTP/1.1 200 OK
< Content-Length: 0
< Server: gurl-server

*/

callback

callback主要用在,服务端会返回多种格式body的场景, 比如404返回的是html, 200返回json。 这时候要用Callback挂载多种处理函数,处理不同的数据结构

func main() {
	
	r, str404 := Result{}, ""
	code := 0

	err := gout.GET(":8080").Callback(func(c *gout.Context) (err error) {

		switch c.Code {
		case 200: //http code为200时,服务端返回的是json 结构
			c.BindJSON(&r)
		case 404: //http code为404时,服务端返回是html 字符串
			c.BindBody(&str404)
		}
		code = c.Code
		return nil

	}).Do()

	if err != nil {
		fmt.Printf("err = %s\n", err)
		return
	}

	fmt.Printf("http code = %d, str404(%s) or json result(%v)\n", code, str404, r)

}

Set request timeout

setimeout是request级别的超时方案。相比http.Client级别,更灵活。

package main

import (
	"fmt"
	"github.com/guonaihong/gout"
	"time"
)

func main() {
	err := gout.GET(":8080").
		SetTimeout(2 * time.Second).
		Do()

	if err != nil {
		fmt.Printf("err = %v\n", err)
	}
}

proxy

  • SetProxy 设置代理服务地址
package main

import (
	"fmt"
	"github.com/guonaihong/gout"
	"log"
)

func main() {
	c := &http.Client{}
	s := ""
	err := gout.
		New(c).
		GET("www.qq.com").
		// 设置proxy服务地址
		SetProxy("http://127.0.0.1:7000").
		// 绑定返回数据到s里面
		BindBody(&s).
		Do()

	if err != nil {
		log.Println(err)
		return
	}

	fmt.Println(s)
}

socks5

  • SetSOCKS5 设置socks5地址
package main

import (
    "fmt"
    "github.com/guonaihong/gout"
    "log"
    "net/http"
)

func main() {
    c := &http.Client{}
    s := ""
    err := gout.
        New(c).
        GET("www.qq.com").
        // 设置proxy服务地址
        SetSOCKS5("127.0.0.1:7000").
        // 绑定返回数据到s里面
        BindBody(&s).
        Do()

    if err != nil {
        log.Println(err)
        return
    }   

    fmt.Println(s)
}

cookie

  • SetCookies设置cookie, 可以设置一个或者多个cookie
package main

import (
	"fmt"
	"github.com/guonaihong/gout"
	"net/http"
)

func main() {

	// === 发送多个cookie ====
	err := gout.
		// :8080/cookie是http://127.0.0.1:8080/cookie的简写
		GET(":8080/cookie").
		//设置debug模式
		Debug(true).
		SetCookies(
			//设置cookie1
			&http.Cookie{
				Name:  "test1",
				Value: "test1",
			},
			//设置cookie2
			&http.Cookie{
				Name:  "test2",
				Value: "test2",
			},
		).
		Do()

	if err != nil {
		fmt.Println(err)
		return
	}

	// === 发送一个cookie ===
	err = gout.
		// :8080/cookie/one是http://127.0.0.1:8080/cookie/one的简写
		GET(":8080/cookie/one").
		//设置debug模式
		Debug(true).
		SetCookies(
			//设置cookie1
			&http.Cookie{
				Name:  "test3",
				Value: "test3",
			},
		).
		Do()
	fmt.Println(err)

}

context

  • WithContext设置context,可以取消http请求

Cancel a sending request

package main

import (
    "context"
    "github.com/guonaihong/gout"
    "time"
)

func main() {
    // 声明一个context
    ctx, cancel := context.WithCancel(context.Background())

    //调用cancel可取消http请求
    go func() {
        time.Sleep(time.Second)
        cancel()
    }() 

    err := gout.
        GET("127.0.0.1:8080/cancel"). //设置GET请求以及需要访问的url
        WithContext(ctx).             //设置context, 外层调用cancel函数就可取消这个http请求
        Do()

    if err != nil {
    }   
}

unix socket

  • UnixSocket可以把http底层通信链路由tcp修改为unix domain socket
    下面的例子,会通过domain socket发送http GET请求,http body的内容是hello world
package main

import (
    "fmt"
    "github.com/guonaihong/gout"
    "net/http"
)

func main() {
    c := http.Client{}

    g := gout.
        New(&c).
        UnixSocket("/tmp/test.socket") //设置unixsocket文件位置

    err := g.
        GET("http://a/test").   //设置GET请求
        SetBody("hello world"). //设置body内容
        Do()
    fmt.Println(err)
}

http2 doc

go 使用https访问http2的服务会自动启用http2协议,这里不需要任何特殊处理

  • https://http2.golang.org/ (bradfitz建的http2测试网址,里面大约有十来个测试地址,下面的例子选了一个)
package main

import (
    "fmt"
    "github.com/guonaihong/gout"
)

func main() {
    s := ""
    err := gout.
        GET("https://http2.golang.org/reqinfo"). //设置GET请求和请求url
        Debug(true).                             //打开debug模式,可以看到请求数据和响应数据
        SetBody("hello, ###########").           //设置请求body的内容,如果你的请求内容是json格式,需要使用SetJSON函数
        BindBody(&s).                            //解析响应body内容
        Do()                                     //结束函数

    if err != nil {
        fmt.Printf("send fail:%s\n", err)
    }   
    _ = s 
}

debug mode

Turn on debug mode

该模式主要方便调试用的,默认开启颜色高亮(如果要关闭颜色高亮,请往下看)

func main() {
	
	err := gout.POST(":8080/colorjson").
		Debug(true). //打开debug模式
		SetJSON(gout.H{"str": "foo",
			"num":   100,
			"bool":  false,
			"null":  nil,
			"array": gout.A{"foo", "bar", "baz"},
			"obj":   gout.H{"a": 1, "b": 2},
		}).Do()

	if err != nil {
		fmt.Printf("err = %v\n", err)
	}
}

Turn off color highlighting in debug mode

使用gout.NoColor()传入Debug函数关闭颜色高亮

func main() {
	
	err := gout.POST(":8080/colorjson").
		Debug(gout.NoColor()).
		SetJSON(gout.H{"str": "foo",
			"num":   100,
			"bool":  false,
			"null":  nil,
			"array": gout.A{"foo", "bar", "baz"},
			"obj":   gout.H{"a": 1, "b": 2},
		}).Do()

	if err != nil {
		fmt.Printf("err = %v\n", err)
	}
}

Custom debug mode

debug 自定义模式,可传递函数。下面演示用环境变量开启debug模式(只有传递IOS_DEBUG环境变量才输出日志)

package main

import (
    "fmt"
    "github.com/guonaihong/gout"
    "os"
)

func IOSDebug() gout.DebugOpt {
    return gout.DebugFunc(func(o *gout.DebugOption) {
        if len(os.Getenv("IOS_DEBUG")) > 0 { 
            o.Debug = true
        }
    })  
}

func main() {

    s := ""
    err := gout.
        GET("127.0.0.1:8080").
        // Debug可以支持自定义方法
        // 可以实现设置某个环境变量才输出debug信息
        // 或者debug信息保存到文件里面,可以看下_example/15-debug-save-file.go
        Debug(IOSDebug()).
        SetBody("test hello").
        BindBody(&s).
        Do()

    fmt.Printf("err = %v\n", err)
}

// env IOS_DEBUG=true go run customize.go

trace info

gout.Trace()可输出http各个阶段的耗时,比如dns lookup时间,tcp连接时间等等。可以很方便的做些性能调优。

package main

import (
    "fmt"
    "github.com/guonaihong/gout"
)

func openDebugTrace() {
    err := gout.POST(":8080/colorjson").
        Debug(gout.Trace()).
        SetJSON(gout.H{"str": "foo",
            "num":   100,
            "bool":  false,
            "null":  nil,
            "array": gout.A{"foo", "bar", "baz"},
            "obj":   gout.H{"a": 1, "b": 2},
        }).Do()

    if err != nil {
        fmt.Printf("err = %v\n", err)
    }
}
  • output
=================== Trace Info(S): ===================
     DnsDuration           : 0s
     ConnDuration          : 868.623µs
     TLSDuration           : 0s
     RequestDuration       : 376.712µs
     WaitResponeDuration   : 717.008µs
     ResponseDuration      : 76.158µs
     TotalDuration         : 2.13921ms
=================== Trace Info(E): ===================

benchmark

benchmarking a certain number of times

下面的例子,起了20并发。对:8080端口的服务,发送3000次请求进行压测,内容为json结构

package main

import (
	"fmt"
	"github.com/guonaihong/gout"
)

const (
	benchNumber     = 30000
	benchConcurrent = 20
)

func main() {
	err := gout.
		POST(":8080").                     //压测本地8080端口
		SetJSON(gout.H{"hello": "world"}). //设置请求body内容
		Filter().                          //打开过滤器
		Bench().                           //选择bench功能
		Concurrent(benchConcurrent).       //并发数
		Number(benchNumber).               //压测次数
		Do()

	if err != nil {
		fmt.Printf("%v\n", err)
	}
}

benchmark-duration

下面的例子,起了20并发。对:8080端口的服务,压测持续时间为10s,内容为json结构

package main

import (
	"fmt"
	"github.com/guonaihong/gout"
	"time"
)

const (
	benchTime       = 10 * time.Second
	benchConcurrent = 30
)

func main() {
	err := gout.
		POST(":8080").                     //压测本机8080端口
		SetJSON(gout.H{"hello": "world"}). //设置请求body内容
		Filter().                          //打开过滤器
		Bench().                           //选择bench功能
		Concurrent(benchConcurrent).       //并发数
		Durations(benchTime).              //压测时间
		Do()

	if err != nil {
		fmt.Printf("%v\n", err)
	}
}

benchmark-rate

下面的例子,起了20并发。对:8080端口的服务,压测总次数为3000次,其中每秒发送1000次。内容为json结构

package main

import (
	"fmt"
	"github.com/guonaihong/gout"
)

const (
	benchNumber     = 3000
	benchConcurrent = 20
)

func main() {
	err := gout.
		POST(":8080").                     //压测本机8080端口
		SetJSON(gout.H{"hello": "world"}). //设置请求body内容
		Filter().                          //打开过滤器
		Bench().                           //选择bench功能
		Rate(1000).                        //每秒发1000请求
		Concurrent(benchConcurrent).       //并发数
		Number(benchNumber).               //压测次数
		Do()

	if err != nil {
		fmt.Printf("%v\n", err)
	}
}

Custom benchmark functions

自定义压测函数,构造每次不一样的http request数据

package main

import (
    "fmt"
    "github.com/google/uuid"
    "github.com/guonaihong/gout"
    "github.com/guonaihong/gout/filter"
    "sync/atomic"
)

func main() {
    i := int32(0)

    err := filter.NewBench().
        Concurrent(30). //开30个go程
        Number(30000).  //压测30000次
        Loop(func(c *gout.Context) error {

			// 下面的代码,每次生成不一样的http body 用于压测
            uid := uuid.New()  //生成uuid
            id := atomic.AddInt32(&i, 1) //生成id, 可以理解为++i,线程安全版本

            c.POST(":1234").SetJSON(gout.H{"sid": uid.String(),
                "appkey": fmt.Sprintf("ak:%d", id),
                "text":   fmt.Sprintf("test text :%d", id)})
            return nil

        }).Do()

    if err != nil {
        fmt.Printf("err = %v\n", err)
    }
}

retry-backoff

retry 功能使用带抖动功能和指数回退的算法实现backoff

package main

import (
	"fmt"
	"github.com/guonaihong/gout"
	"time"
)

func main() {
	err := gout.HEAD("127.0.0.1:8080").
		Debug(true).                      //打开debug模式
		Filter().                         //打开过滤器
		Retry().                          //打开重试模式
		Attempt(5).                       //最多重试5次
		WaitTime(500 * time.Millisecond). //基本等待时间
		MaxWaitTime(3 * time.Second).     //最长等待时间
		Do()

	if err != nil {
		fmt.Printf("err = %v\n", err)
	}
}

retry conditions httpcode

指定重试条件,这里面的例子是服务端返回的状态码是209进行重试 完整代码

package main

import (
	"fmt"
	"github.com/guonaihong/gout"
	"github.com/guonaihong/gout/filter"
	"time"
)

func useRetryFuncCode() {
	s := ""
	err := gout.GET(":8080/code").Debug(true).BindBody(&s).F().
		Retry().Attempt(3).WaitTime(time.Millisecond * 10).MaxWaitTime(time.Millisecond * 50).
		Func(func(c *gout.Context) error {
			if c.Error != nil || c.Code == 209 {
				return filter.ErrRetry
			}

			return nil

		}).Do()

	fmt.Printf("err = %v\n", err)
}

retry conditions backupurl

指定条件进行重试,这里的例子是默认url不能访问,使用backup url进行访问 完整代码

package main

import (
	"fmt"
	"github.com/guonaihong/gout"
	"github.com/guonaihong/gout/core"
	"github.com/guonaihong/gout/filter"
	"time"
)
func useRetryFunc() {
	// 获取一个没有服务绑定的端口
	port := core.GetNoPortExists()
	s := ""

	err := gout.GET(":" + port).Debug(true).BindBody(&s).F().
		Retry().Attempt(3).WaitTime(time.Millisecond * 10).MaxWaitTime(time.Millisecond * 50).
		Func(func(c *gout.Context) error {
			if c.Error != nil {
				c.SetHost(":1234") //必须是存在的端口
				return filter.ErrRetry
			}
			return nil

		}).Do()
	fmt.Printf("err = %v\n", err)
}

import

send raw http request

package main

import (
    "fmt"
    "github.com/guonaihong/gout"
)

func main() {
	s := `POST /colorjson HTTP/1.1
Host: 127.0.0.1:8080
User-Agent: Go-http-client/1.1
Content-Length: 97
Content-Type: application/json
Accept-Encoding: gzip

{"array":["foo","bar","baz"],"bool":false,"null":null,"num":100,"obj":{"a":1,"b":2},"str":"foo"}
    `
	err := gout.NewImport().RawText(s).Debug(true).SetHost(":1234").Do()
	if err != nil {
		fmt.Printf("err = %s\n", err)
		return
	}
}

export

generate curl command

package main

import (
    "fmt"
    "github.com/guonaihong/gout"
)

func main() {
    // 1.formdata
    err := gout.GET(":1234").
        SetForm(gout.A{"text", "good", "mode", "A", "voice", gout.FormFile("./t8.go")}).
        Export().Curl().Do()
    // output:
    // curl -X GET -F "text=good" -F "mode=A" -F "voice=@./voice" "http://127.0.0.1:1234"

    // 2.json body
    err = gout.GET(":1234").
        SetJSON(gout.H{"key1": "val1", "key2": "val2"}).
        Export().Curl().Do()
    // output:
    // curl -X GET -H "Content-Type:application/json" -d "{\"key1\":\"val1\",\"key2\":\"val2\"}" "http://127.0.0.1:1234"

    fmt.Printf("%v\n", err)
}

Incoming custom *http.Client

使用New接口即可使用自己的http.Client对象

package main

import (
	"fmt"
	"net/http"

	"github.com/guonaihong/gout"
)

func main() {

	c := &http.Client{} //http.Client里面有fd连接池,如果对这块优化不是太了解,只使用一个实例就行
	err := gout.New(c). // New接口可传入http.Client对象
				GET("www.qq.com").
				Debug(true).
				Do()

	if err != nil {
		fmt.Printf("err = %s\n", err)
		return
	}
}

Global configuration

Null values are also serialized

	query := gout.H{
		"t":          1296,
		"callback":   "searchresult",
		"q":          "美食",
		"stype":      1,
		"pagesize":   100,
		"pagenum":    1,
		"imageType":  2,
		"imageColor": "",
		"brand":      "",
		"imageSType": "",
		"fr":         1,
		"sortFlag":   1,
		"imageUType": "",
		"btype":      "",
		"authid":     "",
		"_":          1611822443760,
	}

调用代码如下:

gout.GET(url).Debug(true).SetQuery(query).SetHeader(header).BindBody(&body).Do()

控制台请求信息如下:

> GET xxxx?_=1611822443760&callback=searchresult&fr=1&imageType=2&pagenum=1&pagesize=100&q=%E7%BE%8E%E9%A3%9F&sortFlag=1&stype=1&t=1296 HTTP/1.1

默认会删除,authid等空值,使用gout.NotIgnoreEmpty()接口,空value不会删除

Unique features

forward gin data

gout 设计之初就考虑到要和gin协同工作的可能性,下面展示如何方便地使用gout转发gin绑定的数据。

package main

import (
	"github.com/gin-gonic/gin"
	"github.com/guonaihong/gout"
)

type testQuery struct {
	Size int    `query:"size" form:"size"` // query tag是gout设置查询字符串需要的
	Page int    `query:"page" form:"page"`
	Ak   string `query:"ak" form:"ak"`
}

//下一个服务节点
func nextSever() {
	r := gin.Default()

	r.GET("/query", func(c *gin.Context) {
		q := testQuery{}
		err := c.ShouldBindQuery(&q)
		if err != nil {
			return
		}
		c.JSON(200, q)
	})
	r.Run(":1234")
}

func main() {
	go nextSever()
	r := gin.Default()

	// 演示把gin绑定到的查询字符串转发到nextServer节点
	r.GET("/query", func(c *gin.Context) {
		q := testQuery{}
		// 绑定查询字符串
		err := c.ShouldBindQuery(&q)
		if err != nil {
			return
		}

		// 开发转发, 复用gin所用结构体变量q
		code := 0 // http code
		err := gout.
			//发起GET请求
			GET("127.0.0.1:1234/query").
			//设置查询字符串
			SetQuery(q).
			//关心http server返回的状态码 设置该函数
			Code(&code).
			Do()
		if err != nil || code != 200 { /* todo Need to handle errors here */
		}
		c.JSON(200, q)
	})

	r.Run()
}

// http client
// curl '127.0.0.1:8080/query?size=10&page=20&ak=test'

FAQ

gout benchmark性能如何

下面是与apache ab的性能对比 _example/16d-benchmark-vs-ab.go

gout-vs-ab.png

Owner
guonaihong
in coding as in eating? bit世界如此多娇,引无数英雄竞折腰。 俱往矣,数风流人物,还看今朝。
guonaihong
Comments
  • url使用SetQuery方法时,value为空,请求会去除当前key

    url使用SetQuery方法时,value为空,请求会去除当前key

    	query := gout.H{
    		"t":          1296,
    		"callback":   "searchresult",
    		"q":          "美食",
    		"stype":      1,
    		"pagesize":   100,
    		"pagenum":    1,
    		"imageType":  2,
    		"imageColor": "",
    		"brand":      "",
    		"imageSType": "",
    		"fr":         1,
    		"sortFlag":   1,
    		"imageUType": "",
    		"btype":      "",
    		"authid":     "",
    		"_":          1611822443760,
    	}
    

    调用代码如下:

    gout.GET(url).Debug(true).SetQuery(query).SetHeader(header).BindBody(&body).Do()
    

    控制台请求信息如下:

    > GET xxxx?_=1611822443760&callback=searchresult&fr=1&imageType=2&pagenum=1&pagesize=100&q=%E7%BE%8E%E9%A3%9F&sortFlag=1&stype=1&t=1296 HTTP/1.1
    

    发现:当value为空时,请求的query会自动删除key值

  • 用 Go 自带的 form 生成可能不能满足部分要求

    用 Go 自带的 form 生成可能不能满足部分要求

    https://github.com/guonaihong/gout/blob/7f7d32a6cc3f1b286658a31f86d9427d46a0cff6/encode/form.go#L52

    中生成表单字段的部分使用了 f.CreateFormFile

    part, err := f.CreateFormFile(key, filepath.Base(key),"image/png")
    	if err != nil {
    		return err
    	}
    

    正常这个函数生成的 form 的 Content-TypeContent-Disposition 是默认的

    func (w *Writer) CreateFormFile(fieldname, filename string) (io.Writer, error) {
    	h := make(textproto.MIMEHeader)
    	h.Set("Content-Disposition",
    		fmt.Sprintf(`form-data; name="%s"; filename="%s"`,
    			escapeQuotes(fieldname), escapeQuotes(filename)))
    	h.Set("Content-Type", "application/octet-stream")
    	return w.CreatePart(h)
    }
    

    是否考虑重写这个函数做到可以自定义 filename 和 Content-Type

  • 同一个请求的两种方式产生不同的结果,不得其解

    同一个请求的两种方式产生不同的结果,不得其解

    package main
    
    import (
    	"fmt"
    	"github.com/guonaihong/gout"
    	"net/http"
    )
    
    func a() {
    	gout.New(&http.Client{}).POST("https://apissl.gifshow.com/rest/n/feed/hot?mod=Xiaomi%28MIX%29&country_code=CN&abi=arm32&extId=78a8d28a546dc34af887e4c48da3ba26&kpn=KUAISHOU&deviceBit=0&oc=MYAPP%2C1&egid=DFPF18E125B85332653CD26A3B011D344902249475E4E7C6D867F5C0749487DA&sbh=84&hotfix_ver=&sh=2560&appver=8.1.30.16773&cold_launch_time_ms=1623919861219&iuid=&did_gt=1623405089128&nbh=168&socName=Qualcomm%20MSM8994&newOc=MYAPP%2C1&androidApiLevel=23&max_memory=192&isp=&kcv=1323&browseType=3&kpf=ANDROID_PHONE&ddpi=560&did=ANDROID_b7eb20272983de89&net=WIFI&app=0&did_tag=0&ud=1704471768&c=MYAPP%2C1&sys=ANDROID_Android%206.0&cold=false&sw=1440&ftt=&keyconfig_state=2&rdid=ANDROID_b5bcb53c723da83d&language=zh-cn&darkMode=false&ver=UNKNOWN").Debug(true).
    		//SetQuery(respA.Params).
    		SetHeader(gout.H{
    			"Cookie":          "region_ticket=RT_FF47B44883986822AAB0B2CFCC442EA8E26D84B05A6D25D332F5E70C312FB6E8783569CDA;token=baf91b16cb0f4303bc455fd2b5f18437-1704471768",
    			"X-REQUESTID":     "162392450767751988",
    			"User-Agent":      "kwai-android aegon/1.30.0",
    			"Accept-Language": "zh-cn",
    			"Content-Type":    "application/x-www-form-urlencoded",
    			"X-Client-Info":   "model=Nexus 6P;os=Android;nqe-score=-1;network=WIFI;signal-strength=4;",
    			"Connection":      "keep-alive",
    		}).
    		//SetCookies(&http.Cookie{
    		//	Name:  "region_ticket",
    		//	Value: "RT_FF47B44883986822AAB0B2CFCC442EA8E26D84B05A6D25D332F5E70C312FB6E8783569CDA",
    		//}, &http.Cookie{
    		//	Name:  "token",
    		//	Value: "baf91b16cb0f4303bc455fd2b5f18437-1704471768",
    		//}).
    		SetWWWForm(gout.H{
    			"type":                "7",
    			"page":                "1",
    			"coldStart":           "false",
    			"count":               "10",
    			"pv":                  "false",
    			"id":                  "27",
    			"refreshTimes":        "0",
    			"pcursor":             "",
    			"source":              "2",
    			"needInterestTag":     "false",
    			"seid":                "9534eef4-283a-47e1-b436-4d272b09330c",
    			"volume":              "0.0",
    			"backRefresh":         "false",
    			"pageCount":           "1",
    			"adChannel":           "",
    			"passThrough":         "0",
    			"thanosSpring":        "false",
    			"newUserRefreshTimes": "35",
    			"newUserAction":       "{\"click\":[5230649539859501308,5254011963590844715,5189272721759750588,5250634267218464130,5230368068036643447,5234590191956689198,5230649540756341765,5203909418831487646,5251197214392352783,5235997565475598264],\"follow\":[],\"like\":[]}",
    			"recoReportContext":   "{\"warmStart\":\"1\",\"deviceStatBattery\":76,\"deviceStatMemory\":1011,\"deviceStatDiskFree\":15939}",
    			"edgeRecoBit":         "2",
    			"realShowPhotoIds":    "5230086595924021922,5252323116369635819",
    			"__NStokensig":        "e550a12f6137e9f4148ed004bfcbe8267f8a2e9e20715292bd8118f7c48967f8",
    			"kuaishou.api_st":     "Cg9rdWFpc2hvdS5hcGkuc3QSsAEu_WWwcCnr6UNTxdYRJJSiWT8QiPsOc4qYHXSwbwHmUQ3tKcWI-sx4PUbduGoagwhK_8SVEf5SOMyHjjnMYdv0Mh2u7Q6QvRr3YlO_0x96tXUFNNO2otAX8EuIfmZgP4iqfi3tmIu_hMcmy1JwC0AsO81Cfx7jpCGRIjdORIcZZnHuppbYdErKUHL-g8iM6avUAFjfJ3Z49nopgNC8_8xjlWVBjMPDmXvOUZm2l3VG5BoSgZ_Nba6SSgega5pcXl8O1pthIiAVEitI_1gKrI5uOgHqijhfeHfeKTAjoNOvHy23uJQm-CgFMAE",
    			"token":               "baf91b16cb0f4303bc455fd2b5f18437-1704471768",
    			"sig":                 "6146cb6348cb63e28ae6dda03a6a7406",
    			"__NS_sig3":           "2f3e7b6d7f427d4177676465504e46076560b71d7a76786e",
    			"client_key":          "3c2cd3f3",
    			"cs":                  "false",
    			"os":                  "android",
    		}).
    		Do()
    }
    
    func b() {
    	gout.NewImport().RawText(`POST /rest/n/feed/hot?mod=Xiaomi%28MIX%29&abi=arm32&country_code=CN&extId=78a8d28a546dc34af887e4c48da3ba26&kpn=KUAISHOU&deviceBit=0&oc=MYAPP%2C1&egid=DFPF18E125B85332653CD26A3B011D344902249475E4E7C6D867F5C0749487DA&sbh=84&hotfix_ver=&sh=2560&appver=8.1.30.16773&cold_launch_time_ms=1623919861219&nbh=168&socName=Qualcomm%20MSM8994&newOc=MYAPP%2C1&androidApiLevel=23&max_memory=192&isp=&kcv=1323&browseType=3&kpf=ANDROID_PHONE&ddpi=560&did=ANDROID_b7eb20272983de89&net=WIFI&app=0&did_tag=0&ud=1704471768&c=MYAPP%2C1&sys=ANDROID_Android%206.0&cold=false&sw=1440&ftt=&keyconfig_state=2&rdid=ANDROID_b5bcb53c723da83d&language=zh-cn&darkMode=false&iuid=&did_gt=1623405089128&ver=UNKNOWN HTTP/1.1
    Host: apissl.gifshow.com
    Content-Length: 1403
    Cookie: region_ticket=RT_FF47B44883986822AAB0B2CFCC442EA8E26D84B05A6D25D332F5E70C312FB6E8783569CDA;token=baf91b16cb0f4303bc455fd2b5f18437-1704471768
    X-REQUESTID: 162392450767751988
    User-Agent: kwai-android aegon/1.30.0
    Accept-Language: zh-cn
    Content-Type: application/x-www-form-urlencoded
    X-Client-Info: model=Nexus 6P;os=Android;nqe-score=-1;network=WIFI;signal-strength=4;
    Connection: keep-alive
    
    type=7&page=1&coldStart=false&count=10&pv=false&id=27&refreshTimes=0&pcursor=&source=2&needInterestTag=false&seid=9534eef4-283a-47e1-b436-4d272b09330c&volume=0.0&backRefresh=false&pageCount=1&adChannel=&passThrough=0&thanosSpring=false&newUserRefreshTimes=35&newUserAction=%7B%22click%22%3A%5B5230649539859501308%2C5254011963590844715%2C5189272721759750588%2C5250634267218464130%2C5230368068036643447%2C5234590191956689198%2C5230649540756341765%2C5203909418831487646%2C5251197214392352783%2C5235997565475598264%5D%2C%22follow%22%3A%5B%5D%2C%22like%22%3A%5B%5D%7D&recoReportContext=%7B%22warmStart%22%3A%221%22%2C%22deviceStatBattery%22%3A76%2C%22deviceStatMemory%22%3A1011%2C%22deviceStatDiskFree%22%3A15939%7D&edgeRecoBit=2&realShowPhotoIds=5230086595924021922%2C5252323116369635819&__NStokensig=e550a12f6137e9f4148ed004bfcbe8267f8a2e9e20715292bd8118f7c48967f8&kuaishou.api_st=Cg9rdWFpc2hvdS5hcGkuc3QSsAEu_WWwcCnr6UNTxdYRJJSiWT8QiPsOc4qYHXSwbwHmUQ3tKcWI-sx4PUbduGoagwhK_8SVEf5SOMyHjjnMYdv0Mh2u7Q6QvRr3YlO_0x96tXUFNNO2otAX8EuIfmZgP4iqfi3tmIu_hMcmy1JwC0AsO81Cfx7jpCGRIjdORIcZZnHuppbYdErKUHL-g8iM6avUAFjfJ3Z49nopgNC8_8xjlWVBjMPDmXvOUZm2l3VG5BoSgZ_Nba6SSgega5pcXl8O1pthIiAVEitI_1gKrI5uOgHqijhfeHfeKTAjoNOvHy23uJQm-CgFMAE&token=baf91b16cb0f4303bc455fd2b5f18437-1704471768&sig=6146cb6348cb63e28ae6dda03a6a7406&__NS_sig3=2f3e7b6d7f427d4177676465504e46076560b71d7a76786e&client_key=3c2cd3f3&cs=false&os=android`,
    	).Debug(true).Do()
    }
    
    func main() {
    	a()
    	fmt.Println("*********************************************************************")
    	fmt.Println("*********************************************************************")
    	fmt.Println("*********************************************************************")
    	fmt.Println("*********************************************************************")
    	b()
    }
    
    

    下面是结果

    > POST /rest/n/feed/hot?mod=Xiaomi%28MIX%29&country_code=CN&abi=arm32&extId=78a8d28a546dc34af887e4c48da3ba26&kpn=KUAISHOU&deviceBit=0&oc=MYAPP%2C1&egid=DFPF18E125B85332653CD26A3B011D344902249475E4E7C6D867F5C0749487DA&sbh=84&hotfix_ver=&sh=2560&appver=8.1.30.16773&cold_launch_time_ms=1623919861219&iuid=&did_gt=1623405089128&nbh=168&socName=Qualcomm%20MSM8994&newOc=MYAPP%2C1&androidApiLevel=23&max_memory=192&isp=&kcv=1323&browseType=3&kpf=ANDROID_PHONE&ddpi=560&did=ANDROID_b7eb20272983de89&net=WIFI&app=0&did_tag=0&ud=1704471768&c=MYAPP%2C1&sys=ANDROID_Android%206.0&cold=false&sw=1440&ftt=&keyconfig_state=2&rdid=ANDROID_b5bcb53c723da83d&language=zh-cn&darkMode=false&ver=UNKNOWN HTTP/1.1
    > Cookie: region_ticket=RT_FF47B44883986822AAB0B2CFCC442EA8E26D84B05A6D25D332F5E70C312FB6E8783569CDA;token=baf91b16cb0f4303bc455fd2b5f18437-1704471768
    > X-Requestid: 162392450767751988
    > User-Agent: kwai-android aegon/1.30.0
    > Accept-Language: zh-cn
    > Content-Type: application/x-www-form-urlencoded,application/x-www-form-urlencoded
    > X-Client-Info: model=Nexus 6P;os=Android;nqe-score=-1;network=WIFI;signal-strength=4;
    > Connection: keep-alive
    >
    
    __NS_sig3=2f3e7b6d7f427d4177676465504e46076560b71d7a76786e&__NStokensig=e550a12f6137e9f4148ed004bfcbe8267f8a2e9e20715292bd8118f7c48967f8&backRefresh=false&client_key=3c2cd3f3&coldStart=false&count=10&cs=false&edgeRecoBit=2&id=27&kuaishou.api_st=Cg9rdWFpc2hvdS5hcGkuc3QSsAEu_WWwcCnr6UNTxdYRJJSiWT8QiPsOc4qYHXSwbwHmUQ3tKcWI-sx4PUbduGoagwhK_8SVEf5SOMyHjjnMYdv0Mh2u7Q6QvRr3YlO_0x96tXUFNNO2otAX8EuIfmZgP4iqfi3tmIu_hMcmy1JwC0AsO81Cfx7jpCGRIjdORIcZZnHuppbYdErKUHL-g8iM6avUAFjfJ3Z49nopgNC8_8xjlWVBjMPDmXvOUZm2l3VG5BoSgZ_Nba6SSgega5pcXl8O1pthIiAVEitI_1gKrI5uOgHqijhfeHfeKTAjoNOvHy23uJQm-CgFMAE&needInterestTag=false&newUserAction=%7B%22click%22%3A%5B5230649539859501308%2C5254011963590844715%2C5189272721759750588%2C5250634267218464130%2C5230368068036643447%2C5234590191956689198%2C5230649540756341765%2C5203909418831487646%2C5251197214392352783%2C5235997565475598264%5D%2C%22follow%22%3A%5B%5D%2C%22like%22%3A%5B%5D%7D&newUserRefreshTimes=35&os=android&page=1&pageCount=1&passThrough=0&pv=false&realShowPhotoIds=5230086595924021922%2C5252323116369635819&recoReportContext=%7B%22warmStart%22%3A%221%22%2C%22deviceStatBattery%22%3A76%2C%22deviceStatMemory%22%3A1011%2C%22deviceStatDiskFree%22%3A15939%7D&refreshTimes=0&seid=9534eef4-283a-47e1-b436-4d272b09330c&sig=6146cb6348cb63e28ae6dda03a6a7406&source=2&thanosSpring=false&token=baf91b16cb0f4303bc455fd2b5f18437-1704471768&type=7&volume=0.0
    
    < HTTP/1.1 200 
    < Date: Fri, 18 Jun 2021 03:38:15 GMT
    < Connection: keep-alive
    < X-Ksresult: 50
    < Content-Type: application/json;charset=utf-8
    < Alt-Svc: quic=":8443";ma=2592000;v="43"
    < X-Kslogid: 623987495768699109
    < X-Ksclient-Ip: 116.227.16.86
    
    
    {
        "error_msg": "签名验证失败",
        "result": 50
    }
    
    *********************************************************************
    *********************************************************************
    *********************************************************************
    *********************************************************************
    > POST /rest/n/feed/hot?mod=Xiaomi%28MIX%29&abi=arm32&country_code=CN&extId=78a8d28a546dc34af887e4c48da3ba26&kpn=KUAISHOU&deviceBit=0&oc=MYAPP%2C1&egid=DFPF18E125B85332653CD26A3B011D344902249475E4E7C6D867F5C0749487DA&sbh=84&hotfix_ver=&sh=2560&appver=8.1.30.16773&cold_launch_time_ms=1623919861219&nbh=168&socName=Qualcomm%20MSM8994&newOc=MYAPP%2C1&androidApiLevel=23&max_memory=192&isp=&kcv=1323&browseType=3&kpf=ANDROID_PHONE&ddpi=560&did=ANDROID_b7eb20272983de89&net=WIFI&app=0&did_tag=0&ud=1704471768&c=MYAPP%2C1&sys=ANDROID_Android%206.0&cold=false&sw=1440&ftt=&keyconfig_state=2&rdid=ANDROID_b5bcb53c723da83d&language=zh-cn&darkMode=false&iuid=&did_gt=1623405089128&ver=UNKNOWN HTTP/1.1
    > Content-Type: application/x-www-form-urlencoded
    > Connection: keep-alive
    > Content-Length: 1403
    > User-Agent: kwai-android aegon/1.30.0
    > Accept-Language: zh-cn
    > X-Client-Info: model=Nexus 6P;os=Android;nqe-score=-1;network=WIFI;signal-strength=4;
    > Cookie: region_ticket=RT_FF47B44883986822AAB0B2CFCC442EA8E26D84B05A6D25D332F5E70C312FB6E8783569CDA;token=baf91b16cb0f4303bc455fd2b5f18437-1704471768
    > X-Requestid: 162392450767751988
    >
    
    type=7&page=1&coldStart=false&count=10&pv=false&id=27&refreshTimes=0&pcursor=&source=2&needInterestTag=false&seid=9534eef4-283a-47e1-b436-4d272b09330c&volume=0.0&backRefresh=false&pageCount=1&adChannel=&passThrough=0&thanosSpring=false&newUserRefreshTimes=35&newUserAction=%7B%22click%22%3A%5B5230649539859501308%2C5254011963590844715%2C5189272721759750588%2C5250634267218464130%2C5230368068036643447%2C5234590191956689198%2C5230649540756341765%2C5203909418831487646%2C5251197214392352783%2C5235997565475598264%5D%2C%22follow%22%3A%5B%5D%2C%22like%22%3A%5B%5D%7D&recoReportContext=%7B%22warmStart%22%3A%221%22%2C%22deviceStatBattery%22%3A76%2C%22deviceStatMemory%22%3A1011%2C%22deviceStatDiskFree%22%3A15939%7D&edgeRecoBit=2&realShowPhotoIds=5230086595924021922%2C5252323116369635819&__NStokensig=e550a12f6137e9f4148ed004bfcbe8267f8a2e9e20715292bd8118f7c48967f8&kuaishou.api_st=Cg9rdWFpc2hvdS5hcGkuc3QSsAEu_WWwcCnr6UNTxdYRJJSiWT8QiPsOc4qYHXSwbwHmUQ3tKcWI-sx4PUbduGoagwhK_8SVEf5SOMyHjjnMYdv0Mh2u7Q6QvRr3YlO_0x96tXUFNNO2otAX8EuIfmZgP4iqfi3tmIu_hMcmy1JwC0AsO81Cfx7jpCGRIjdORIcZZnHuppbYdErKUHL-g8iM6avUAFjfJ3Z49nopgNC8_8xjlWVBjMPDmXvOUZm2l3VG5BoSgZ_Nba6SSgega5pcXl8O1pthIiAVEitI_1gKrI5uOgHqijhfeHfeKTAjoNOvHy23uJQm-CgFMAE&token=baf91b16cb0f4303bc455fd2b5f18437-1704471768&sig=6146cb6348cb63e28ae6dda03a6a7406&__NS_sig3=2f3e7b6d7f427d4177676465504e46076560b71d7a76786e&client_key=3c2cd3f3&cs=false&os=android
    
    < HTTP/1.1 200 
    < Alt-Svc: quic=":8443";ma=2592000;v="43"
    < X-Kslogid: 623987495857848730
    < X-Ksclient-Ip: 116.227.16.86
    < Connection: keep-alive
    < X-Ksresult: 1
    < Date: Fri, 18 Jun 2021 03:38:16 GMT
    < Content-Type: application/json;charset=UTF-8
    
    
    {
        "feeds": [
            {
                "adminTags": [],
                "caption": "猪逃跑失败,猪点真背,勒的疼! #搞笑 #搞笑配音 #搞笑视频",
                "comment_count": 336,
                "comments": [],
                "coverCommonTags": {
                    "authorHeadMask": {
                        "bgImage": [
                            {
                                "cdn": "static.yximgs.com",
                                "url": "https://static.yximgs.com/udata/pkg/KS-COVERTAG/feed_tag_certification_orange.2e9605e8.png"
                            }
                        ],
                        "darkModeStyle": {
                            "bgImage": [
                                {
                                    "cdn": "static.yximgs.com",
                                    "url": "https://static.yximgs.com/udata/pkg/KS-COVERTAG/dark_feed_tag_certification_orange.8063e780.png"
                                }
                            ]
                        },
                        "tagType": 9,
                        "text": ""
                    },
                    "authorRelationTag": {
                        "bgImage": [
                            {
                                "cdn": "js2.a.yximgs.com",
                                "url": "http://js2.a.yximgs.com/bs2/fes/app_feed_verified_yellow_icon.png"
                            }
                        ],
                        "darkModeStyle": {
                            "bgImage": [
                                {
                                    "cdn": "static.yximgs.com",
                                    "url": "https://static.yximgs.com/udata/pkg/KS-COVERTAG/dark_feed_icon_certification_orange.8323ffd415a9f967.png"
                                }
                            ]
                        },
                        "tagType": 9,
                        "text": ""
                    }
                },
                "cover_thumbnail_urls": [
                    {
                        "cdn": "tx2.a.yximgs.com",
                        "url": "http://tx2.a.yximgs.com/ksc1/ptVrBOLR7G0txfLkYWABUj7zfE5MyZ3KwfloVka6BvVSpVc0nUam_ghaeHoSzgua-_P_IuLpvdRDkRlJA0XIEtrlwLyketGYh-bNKTH75YQ-tcr49NU5CFkSVQSQ5JqdIEu6N2-TG1a7DJZeWhcNXMqu8uReHm5Lt_4szqJA3QXn8BW5CGBQJBIlkjW8R0bR.kpg?tag=1-1623987496-h-0-1kwy7eu1py-af0d7b50389a06a1\u0026type=hot\u0026clientCacheKey=3xesgbt96azvva6_hd.kpg\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "ali2.a.yximgs.com",
                        "url": "http://ali2.a.yximgs.com/ksc1/ptVrBOLR7G0txfLkYWABUj7zfE5MyZ3KwfloVka6BvVSpVc0nUam_ghaeHoSzgua-_P_IuLpvdRDkRlJA0XIEtrlwLyketGYh-bNKTH75YQ-tcr49NU5CFkSVQSQ5JqdIEu6N2-TG1a7DJZeWhcNXMqu8uReHm5Lt_4szqJA3QXn8BW5CGBQJBIlkjW8R0bR.kpg?tag=1-1623987496-h-1-ss5txnjcny-8075423ff78df27b\u0026type=hot\u0026clientCacheKey=3xesgbt96azvva6_hd.kpg\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "displayTime": null,
                "duration": 77600,
                "editInfo": {},
                "enableFullScreenPlay": false,
                "enableShareToStory": true,
                "exp_tag": "1_a/2000871708995985745_sl389",
                "extEntry": null,
                "ext_params": {
                    "color": "7C6155",
                    "h": 1280,
                    "interval": 30,
                    "mtype": 3,
                    "sound": 77579,
                    "video": 77600,
                    "w": 720
                },
                "fashionEntranceShow": {
                    "bizId": "5xaadp99yzama9c",
                    "showType": 3
                },
                "feedSwitches": {
                    "enableExplicitPhotoDescription": false,
                    "enablePlayerPanel": false
                },
                "ff_cover_thumbnail_urls": [
                    {
                        "cdn": "tx2.a.yximgs.com",
                        "url": "http://tx2.a.yximgs.com/ksc1/CeHobngmaa-A_WbWPa0CP2XXR9QOQUcwfolHbum0LzXwugA0YBAGTkqebFFHgeajJdsyGH_4dpmIbQpOgq_VebHEJaderjhW-YLjWHOKDGLZtkC8Lehblq7gyMQooWIKuWG1HGpq6JEcCvWFFpjMLkBfaVm0t7tIXJwvkhq2oeLcPiDkBThMHt630yj1vT8l.kpg?tag=1-1623987496-h-0-e0yx9hjuwu-435c5844b02c77d4\u0026type=hot\u0026clientCacheKey=3xesgbt96azvva6_ff.kpg\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "ali2.a.yximgs.com",
                        "url": "http://ali2.a.yximgs.com/ksc1/CeHobngmaa-A_WbWPa0CP2XXR9QOQUcwfolHbum0LzXwugA0YBAGTkqebFFHgeajJdsyGH_4dpmIbQpOgq_VebHEJaderjhW-YLjWHOKDGLZtkC8Lehblq7gyMQooWIKuWG1HGpq6JEcCvWFFpjMLkBfaVm0t7tIXJwvkhq2oeLcPiDkBThMHt630yj1vT8l.kpg?tag=1-1623987496-h-1-ytsjllpnvt-f2da4dd3066f3e49\u0026type=hot\u0026clientCacheKey=3xesgbt96azvva6_ff.kpg\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "following": 0,
                "forward_count": 0,
                "forward_stats_params": {
                    "et": "1_a/2000871708995985745_sl389",
                    "fid": "1704471768"
                },
                "frameStyle": 3,
                "hated": 0,
                "headurls": [
                    {
                        "cdn": "ali2.a.yximgs.com",
                        "url": "http://ali2.a.yximgs.com/uhead/AB/2021/06/02/14/BMjAyMTA2MDIxNDQxMTJfNjE2MjUwMjg4XzJfaGQyNThfMTQz_s.jpg"
                    },
                    {
                        "cdn": "js2.a.yximgs.com",
                        "url": "http://js2.a.yximgs.com/uhead/AB/2021/06/02/14/BMjAyMTA2MDIxNDQxMTJfNjE2MjUwMjg4XzJfaGQyNThfMTQz_s.jpg"
                    }
                ],
                "isShareCountExp": false,
                "kwaiId": "ying987789",
                "like_count": 22062,
                "liked": 0,
                "location": {},
                "longVideo": true,
                "main_mv_urls": [
                    {
                        "cdn": "v1.kwaicdn.com",
                        "url": "http://v1.kwaicdn.com/ksc1/kajMvTDXa7LWFjKELGZ1KdYDN3zgBVD4UCg4OtUccMg4x7Rvz1dy-_6RKyK0gx7C85gotLv-7t99yvYcAgk-2odxKlGr-COEQDVFcYLY_-n9glkvJI_ERQucDFqfKJ5gr6kXSDlpcI6EDcLZn63r2Nsz_yRx_0fDhbWdmp2YvTo0drsMYWOcO2UJTebuD5oS.mp4?pkey=AAXcOWoWySGhCewDd9gH9_UCXgtOkGKWvL1Jt2MFrUgEB5gfleeQT-mQfqQbnbtdkmiLNQ-NR8bKIlB1ZnyaEk9tT4tFXLu4LMcUJ_aPpMTzsLgmh5eaFLNBRJnE58cSgig\u0026tag=1-1623987496-h-0-as3cir1ljv-bba5de96a4feb6cc\u0026type=hot\u0026clientCacheKey=3xesgbt96azvva6_b.mp4\u0026tt=b\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "v2.kwaicdn.com",
                        "url": "http://v2.kwaicdn.com/ksc1/kajMvTDXa7LWFjKELGZ1KdYDN3zgBVD4UCg4OtUccMg4x7Rvz1dy-_6RKyK0gx7C85gotLv-7t99yvYcAgk-2odxKlGr-COEQDVFcYLY_-n9glkvJI_ERQucDFqfKJ5gr6kXSDlpcI6EDcLZn63r2Nsz_yRx_0fDhbWdmp2YvTo0drsMYWOcO2UJTebuD5oS.mp4?pkey=AAXAaqlVqVdOTw91aKPlIqpNOzXODNkC0fPMW8Sm6F3LQA_-il0K4L8YYETCmAjcRMW7bSTBXfZZ7LS4eesCRxPOZwFsipW2jmz9eEcrTBeXu9BpoDkHLqpI8OQcMjHhfds\u0026tag=1-1623987496-h-1-bruvoralfq-b01bad9c48e585a4\u0026type=hot\u0026clientCacheKey=3xesgbt96azvva6_b.mp4\u0026tt=b\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "main_mv_urls_h265": [
                    {
                        "cdn": "v1.kwaicdn.com",
                        "url": "http://v1.kwaicdn.com/ksc1/sHpIOoQS3gxeB89LPcLW-Z_qJiX7N1OsSRV5u_h0tcZuxO42uyFMM3soIiRL6N-n_2eRitSXrSaSb9oAbVXzRvCeat9jldNa3w1GbfaJ1HTXLnEnpN8BozBfYiwKLom3a3QHZhl-McNLYKx3v310I5BhKEQ3NcegzfT1q6UB4EOUR0T2Su2K96EMwmyYV4ln.mp4?pkey=AAXucK9gE0flhVMLKl-RyRmQnRMo7s16NjVYvwz0_jyOV4NaTDgPRaGUAae2k0imRKboT9g_GtlVLG_w0Qs_7-fCo4LjN58tI69aatwpPA4Zcrnt2Mx3PnZ24ZCjkYmOuBk\u0026tag=1-1623987496-h-0-yhdjka9ecz-5313e7347a200a27\u0026type=hot\u0026clientCacheKey=3xesgbt96azvva6_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "v2.kwaicdn.com",
                        "url": "http://v2.kwaicdn.com/ksc1/sHpIOoQS3gxeB89LPcLW-Z_qJiX7N1OsSRV5u_h0tcZuxO42uyFMM3soIiRL6N-n_2eRitSXrSaSb9oAbVXzRvCeat9jldNa3w1GbfaJ1HTXLnEnpN8BozBfYiwKLom3a3QHZhl-McNLYKx3v310I5BhKEQ3NcegzfT1q6UB4EOUR0T2Su2K96EMwmyYV4ln.mp4?pkey=AAVD0eE6fbpyPm2BPwMJby12dJjDn5rmvAJf5kg9LJUrEIzNea7BtJ8VM0264X7QFSBfNVMEN8-mEBzCcflNEzagboikQX7zNReNh8vl8qRxEC3f4Z2_wslGX9Iv_7mngG4\u0026tag=1-1623987496-h-1-ga5s50j4md-76cfe748563424ca\u0026type=hot\u0026clientCacheKey=3xesgbt96azvva6_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "noNeedToRequestPLCApi": true,
                "operationExpTagDisplayInfo": {},
                "photoCommentFriendsVisible": 0,
                "photoReward": {
                    "canReward": true,
                    "descNotClickText": "1位用户赞赏了作品",
                    "headButton": true,
                    "headButtonNow": true,
                    "rewardCount": 1,
                    "rewardUsers": [
                        {
                            "headurl": "http://static.yximgs.com/uhead/AB/2019/06/19/20/BMjAxOTA2MTkyMDExNDFfOTAwNDFfZGVmYXVsdFVzZXJIZWFkX2RlZmF1bHQ=.png",
                            "headurls": [
                                {
                                    "cdn": "static.yximgs.com",
                                    "url": "http://static.yximgs.com/uhead/AB/2019/06/19/20/BMjAxOTA2MTkyMDExNDFfOTAwNDFfZGVmYXVsdFVzZXJIZWFkX2RlZmF1bHQ=.png"
                                }
                            ]
                        }
                    ]
                },
                "photoTextLocationInfo": {
                    "heightRatio": 0.6265625,
                    "leftRatio": 0.1712963,
                    "topRatio": 0.134375,
                    "widthRatio": 0.65092593
                },
                "photo_id": 5225301521758236000,
                "photo_status": 0,
                "plcFeatureEntryAbFlag": 0,
                "plcHighPriorityThanBottomEntry": false,
                "plcResponseTime": 1623987496589,
                "profilePagePrefetchInfo": {
                    "profilePageType": 2
                },
                "pureTitle": "猪逃跑失败,猪点真背,勒的疼! #搞笑 #搞笑配音 #搞笑视频 ",
                "recoTags": [],
                "reco_reason": "sl389",
                "sameFrame": {
                    "allow": true,
                    "availableDepth": 7
                },
                "savePlayProgressStrategy": 0,
                "serverExpTag": "feed_photo|5225301521758235346|616250288|1_a/2000871708995985745_sl389",
                "shareGuide": {
                    "guides": {
                        "default": {
                            "iconType": "wechat"
                        }
                    },
                    "minPlayDurationInSeconds": 15,
                    "photoShareGuide": true,
                    "playTimes": 2,
                    "textDisplayDurationInSeconds": 4
                },
                "share_count": 269,
                "share_info": "userId=3xj6qzg9p5pkiha\u0026photoId=3xesgbt96azvva6",
                "showProgressEnterDetail": true,
                "similarModules": [
                    {
                        "tagName": "搞笑配音",
                        "type": 1
                    }
                ],
                "slideCommentEntryDisabled": false,
                "sortFeatures": [
                    {
                        "name": "0",
                        "value": 0.48976547
                    },
                    {
                        "name": "3",
                        "value": 0.00951354
                    },
                    {
                        "name": "5",
                        "value": 0.025093252
                    },
                    {
                        "name": "1",
                        "value": 0.02082655
                    },
                    {
                        "name": "2",
                        "value": 0.00029743084
                    },
                    {
                        "name": "6",
                        "value": 0.38806123
                    },
                    {
                        "name": "7",
                        "value": 0.1611215
                    },
                    {
                        "name": "4",
                        "value": 0.018147055
                    },
                    {
                        "name": "8",
                        "value": 0.18283549
                    },
                    {
                        "name": "9",
                        "value": 0
                    },
                    {
                        "name": "10",
                        "value": 104
                    },
                    {
                        "name": "11",
                        "value": 395
                    },
                    {
                        "name": "12",
                        "value": 15739
                    },
                    {
                        "name": "13",
                        "value": 0
                    },
                    {
                        "name": "14",
                        "value": 0.9670769
                    },
                    {
                        "name": "15",
                        "value": 0.017363962
                    },
                    {
                        "name": "16",
                        "value": 616250300
                    },
                    {
                        "name": "17",
                        "value": 0
                    },
                    {
                        "name": "18",
                        "value": 1
                    },
                    {
                        "name": "19",
                        "value": 0
                    },
                    {
                        "name": "20",
                        "value": 0.009812653
                    },
                    {
                        "name": "21",
                        "value": 0.14543924
                    },
                    {
                        "name": "23",
                        "value": -1
                    },
                    {
                        "name": "24",
                        "value": 0.12762088
                    },
                    {
                        "name": "25",
                        "value": 0
                    },
                    {
                        "name": "201",
                        "value": 0.0053631007
                    },
                    {
                        "name": "202",
                        "value": 0
                    }
                ],
                "soundTrack": {
                    "artist": "星期八(搞笑配音)",
                    "audioType": 1,
                    "audioUrls": [
                        {
                            "cdn": "tx2.a.yximgs.com",
                            "url": "http://tx2.a.yximgs.com/bs2/ost/NTE1OTMzMDE2ODBfNjE2MjUwMjg4.m4a"
                        },
                        {
                            "cdn": "ali2.a.yximgs.com",
                            "url": "http://ali2.a.yximgs.com/bs2/ost/NTE1OTMzMDE2ODBfNjE2MjUwMjg4.m4a"
                        }
                    ],
                    "avatarUrls": [
                        {
                            "cdn": "ali2.a.yximgs.com",
                            "url": "http://ali2.a.yximgs.com/bs2/ost/NTE1OTMzMDE2ODBfNjE2MjUwMjg4.jpg"
                        },
                        {
                            "cdn": "tx2.a.yximgs.com",
                            "url": "http://tx2.a.yximgs.com/bs2/ost/NTE1OTMzMDE2ODBfNjE2MjUwMjg4.jpg"
                        }
                    ],
                    "disableEnhancedEntry": true,
                    "duration": 77,
                    "genreId": 0,
                    "id": "5xaadp99yzama9c",
                    "imageUrls": [
                        {
                            "cdn": "ali2.a.yximgs.com",
                            "url": "http://ali2.a.yximgs.com/bs2/ost/NTE1OTMzMDE2ODBfNjE2MjUwMjg4.jpg"
                        },
                        {
                            "cdn": "tx2.a.yximgs.com",
                            "url": "http://tx2.a.yximgs.com/bs2/ost/NTE1OTMzMDE2ODBfNjE2MjUwMjg4.jpg"
                        }
                    ],
                    "loudness": -15,
                    "name": "星期八(搞笑配音)的作品原声",
                    "photoId": 5225301521758236000,
                    "type": 9,
                    "user": {
                        "eid": "3xj6qzg9p5pkiha",
                        "following": false,
                        "headurl": "http://ali2.a.yximgs.com/uhead/AB/2021/06/02/14/BMjAyMTA2MDIxNDQxMTJfNjE2MjUwMjg4XzJfaGQyNThfMTQz_s.jpg",
                        "headurls": [
                            {
                                "cdn": "ali2.a.yximgs.com",
                                "url": "http://ali2.a.yximgs.com/uhead/AB/2021/06/02/14/BMjAyMTA2MDIxNDQxMTJfNjE2MjUwMjg4XzJfaGQyNThfMTQz_s.jpg"
                            },
                            {
                                "cdn": "js2.a.yximgs.com",
                                "url": "http://js2.a.yximgs.com/uhead/AB/2021/06/02/14/BMjAyMTA2MDIxNDQxMTJfNjE2MjUwMjg4XzJfaGQyNThfMTQz_s.jpg"
                            }
                        ],
                        "kwaiId": "ying987789",
                        "profilePagePrefetchInfo": {
                            "profilePageType": 2
                        },
                        "user_id": 616250288,
                        "user_name": "星期八(搞笑配音)",
                        "user_sex": "M",
                        "visitorBeFollowed": false
                    }
                },
                "sourcePhotoPage": "h",
                "streamManifest": {
                    "adaptationSet": [
                        {
                            "duration": 77600,
                            "id": 1,
                            "representation": [
                                {
                                    "avgBitrate": 594,
                                    "backupUrl": [
                                        "http://v2.kwaicdn.com/ksc1/sHpIOoQS3gxeB89LPcLW-Z_qJiX7N1OsSRV5u_h0tcZuxO42uyFMM3soIiRL6N-n_2eRitSXrSaSb9oAbVXzRvCeat9jldNa3w1GbfaJ1HTXLnEnpN8BozBfYiwKLom3a3QHZhl-McNLYKx3v310I5BhKEQ3NcegzfT1q6UB4EOUR0T2Su2K96EMwmyYV4ln.mp4?pkey=AAVZLz-1h6jrT6iLxbKcoMHtw-Y59Kx1Yv4SMXVp5AhMFlzvwQpCI4tL69I0O1ZhIujR4juT6U5dEYI01WKtI1LFPktiTYL6I5mgQ44O79NOOjr60FrIq9jt9Dp2Ur2mSk0\u0026tag=1-1623987496-h-1-d31rk3q9tn-9e953eea6c0f8437\u0026type=hot\u0026clientCacheKey=3xesgbt96azvva6_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131"
                                    ],
                                    "bitratePattern": [
                                        1133,
                                        492,
                                        1381,
                                        183,
                                        263
                                    ],
                                    "defaultSelect": false,
                                    "disableAdaptive": false,
                                    "featureP2sp": false,
                                    "fileSize": 5764300,
                                    "frameRate": 25,
                                    "height": 1280,
                                    "hidden": false,
                                    "id": 1,
                                    "maxBitrate": 2300,
                                    "quality": 1.6,
                                    "qualityLabel": "高清",
                                    "qualityType": "720p",
                                    "url": "http://v1.kwaicdn.com/ksc1/sHpIOoQS3gxeB89LPcLW-Z_qJiX7N1OsSRV5u_h0tcZuxO42uyFMM3soIiRL6N-n_2eRitSXrSaSb9oAbVXzRvCeat9jldNa3w1GbfaJ1HTXLnEnpN8BozBfYiwKLom3a3QHZhl-McNLYKx3v310I5BhKEQ3NcegzfT1q6UB4EOUR0T2Su2K96EMwmyYV4ln.mp4?pkey=AAWmQP4-4-jVJpVQejJ-nQiXm4s6kFiClSPP-2iDJMY38M9i8gR-FCCA8NDwEpF7bO_v4HQKapR6KSo7AxsiwwMpuoo-jyaa35MH46GAAHLm3PALxJXaHbgqX0rdYxrFgHA\u0026tag=1-1623987496-h-0-p0mdusroqj-04dcfeaa3e74c6f0\u0026type=hot\u0026clientCacheKey=3xesgbt96azvva6_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131",
                                    "width": 720
                                },
                                {
                                    "avgBitrate": 650,
                                    "backupUrl": [
                                        "http://v2.kwaicdn.com/ksc1/Tu5sTWaY8ugXT1C4sRkQ-JyM7zDKxG_xaygC6k42t_YM5yrR3Y-2ZM7HGeiVg-Ki3jUqHCr0LFNMVol56T2ar_KuZcHPXq2pXz3rOk6PZgsdoQ5is3KSl-HlGe0iYRu6myokLdHXe5ea5Xgka0m-qE0JuPlI5RxzuB1Yk1i052bH27ZOb764ARZxMftc4r1d.mp4?pkey=AAVg-lFWTfG64IgU6qjhC1ggKItkQfkOiDqc1Qw7FXgcDIZ2RmbfGrgCFncfmUky7-Mdu-3IIFyiM4DS7PNFHM5oznkUDMnKCjk09ltiOyqvkIAdIQnkex27O2yweeorFDs\u0026tag=1-1623987496-h-1-oze0jv6iab-137d10bb4b002a35\u0026type=hot\u0026clientCacheKey=3xesgbt96azvva6_hd18.mp4\u0026tt=hd18\u0026di=74e31056\u0026bp=10131"
                                    ],
                                    "bitratePattern": [
                                        863,
                                        554,
                                        1008,
                                        197,
                                        208
                                    ],
                                    "defaultSelect": false,
                                    "disableAdaptive": false,
                                    "featureP2sp": false,
                                    "fileSize": 6310902,
                                    "frameRate": 25,
                                    "height": 1024,
                                    "hidden": false,
                                    "id": 2,
                                    "maxBitrate": 750,
                                    "quality": 1.4,
                                    "qualityLabel": "标清",
                                    "qualityType": "576p",
                                    "url": "http://v1.kwaicdn.com/ksc1/Tu5sTWaY8ugXT1C4sRkQ-JyM7zDKxG_xaygC6k42t_YM5yrR3Y-2ZM7HGeiVg-Ki3jUqHCr0LFNMVol56T2ar_KuZcHPXq2pXz3rOk6PZgsdoQ5is3KSl-HlGe0iYRu6myokLdHXe5ea5Xgka0m-qE0JuPlI5RxzuB1Yk1i052bH27ZOb764ARZxMftc4r1d.mp4?pkey=AAU4sjo1Pm7rIc7orVDJEFJEzh5eFO6qmvlE9ZT3-xKCnZFL8zfc8_X70xn6WjX-sXwNxtojwXgJGk7BoYh2nD65G4JADT1YfKfFGb-u7Wqewy2YhddIsRNHCpufreD7-W4\u0026tag=1-1623987496-h-0-2wtp25n1wt-e55d23b032378d33\u0026type=hot\u0026clientCacheKey=3xesgbt96azvva6_hd18.mp4\u0026tt=hd18\u0026di=74e31056\u0026bp=10131",
                                    "width": 576
                                },
                                {
                                    "avgBitrate": 427,
                                    "backupUrl": [
                                        "http://v2.kwaicdn.com/ksc1/JGsmDSEQUXI2a1bSggg3WoITaU3xuKLls6G8nQZu7H7YcyVwuDk7xE_zQMM17fWQG2SCO1pccPzF1tOTfzVd0G2PyT3KRgNo_uIOa72jNUIm-4OCvcbFR2QiNOOoXBEb54pjBGJ9yALdJcH9bfJPzeNPKNw7dGUO6rWsO2d6KrS8T_RHrVsUIwB4Kf-wuwcj.mp4?pkey=AAVIwjTfJVHoFKvj7mRWZ41PbtImdSeYfDfSVWDqZVTNSEuxmd4wGpKrssoH5ZED8eVsJ9EHtAE47CftzfEFE8_aL-LxU2G8rdQsexRCBWeihoXaXpSDvpPo8OuVvV5__Hk\u0026tag=1-1623987496-h-1-twjf48iar0-61ae0a23323ebf98\u0026type=hot\u0026clientCacheKey=3xesgbt96azvva6_hd19.mp4\u0026tt=hd19\u0026di=74e31056\u0026bp=10131"
                                    ],
                                    "bitratePattern": [
                                        534,
                                        358,
                                        583,
                                        179,
                                        95
                                    ],
                                    "defaultSelect": false,
                                    "disableAdaptive": false,
                                    "featureP2sp": false,
                                    "fileSize": 4145280,
                                    "frameRate": 25,
                                    "height": 960,
                                    "hidden": false,
                                    "id": 3,
                                    "maxBitrate": 400,
                                    "quality": 1.2,
                                    "qualityLabel": "流畅",
                                    "qualityType": "480p",
                                    "url": "http://v1.kwaicdn.com/ksc1/JGsmDSEQUXI2a1bSggg3WoITaU3xuKLls6G8nQZu7H7YcyVwuDk7xE_zQMM17fWQG2SCO1pccPzF1tOTfzVd0G2PyT3KRgNo_uIOa72jNUIm-4OCvcbFR2QiNOOoXBEb54pjBGJ9yALdJcH9bfJPzeNPKNw7dGUO6rWsO2d6KrS8T_RHrVsUIwB4Kf-wuwcj.mp4?pkey=AAX2Im5tGd5ojZY7Jzwre-td5JITIZjG3QUZ1yAH5p0yDHmtHpm9Dpnbus7FCVmJ9riArG8okkLtj1MiLJfjn6uHCjdUEe84L6rqqhYPUCRm3rIr_4OGnU1HVpfarb92YKs\u0026tag=1-1623987496-h-0-otyd65ttbk-81ff71b551878cdb\u0026type=hot\u0026clientCacheKey=3xesgbt96azvva6_hd19.mp4\u0026tt=hd19\u0026di=74e31056\u0026bp=10131",
                                    "width": 540
                                }
                            ]
                        }
                    ],
                    "businessType": 2,
                    "mediaType": 2,
                    "playInfo": {},
                    "version": "1.0.0"
                },
                "supportType": 0,
                "tag_hash_type": 1,
                "tags": [
                    {
                        "id": 843,
                        "name": "搞笑视频",
                        "rich": true,
                        "tag": "搞笑视频"
                    }
                ],
                "time": "2021-06-17 22:46:59",
                "timestamp": 1623941219187,
                "type": 1,
                "unlike_count": 0,
                "us_c": 0,
                "us_d": 0,
                "us_l": true,
                "user_id": 616250288,
                "user_name": "星期八(搞笑配音)",
                "user_sex": "M",
                "verified": true,
                "verifiedDetail": {
                    "description": "搞笑幽默领域创作者",
                    "iconType": 1,
                    "musicCompany": false,
                    "newVerified": true,
                    "type": 4
                },
                "videoColdStartType": 0,
                "view_count": 1467752
            },
            {
                "adminTags": [],
                "caption": "俄罗斯:飞了,不好了,飞起来了 #俄罗斯 #战斗民族 #搞笑",
                "comment_count": 1125,
                "comments": [],
                "cover_thumbnail_urls": [
                    {
                        "cdn": "tx2.a.yximgs.com",
                        "url": "http://tx2.a.yximgs.com/ksc1/kTx2927xvMzpumt3Ubh-O520-nYu6a9_6965GsN8mGMTZ1KOrfgLxOJtKCUPQMPraZdIeoG96aYUsfOjUxS9W_1vnBSgBSAS5hRRPrmI7Wis8yYG634FXVP1eVf6YIxSwEpCo7Cau5xjTzRLe0KetLdfrU-Ne6z1wv3ZksoF1xybCa231KFTcy1MmjVeMUzv.kpg?tag=1-1623987496-h-0-ji8clk1ir9-314bdf364da32632\u0026type=hot\u0026clientCacheKey=3xugv8f6d4mhrva_hd.kpg\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "ali2.a.yximgs.com",
                        "url": "http://ali2.a.yximgs.com/ksc1/kTx2927xvMzpumt3Ubh-O520-nYu6a9_6965GsN8mGMTZ1KOrfgLxOJtKCUPQMPraZdIeoG96aYUsfOjUxS9W_1vnBSgBSAS5hRRPrmI7Wis8yYG634FXVP1eVf6YIxSwEpCo7Cau5xjTzRLe0KetLdfrU-Ne6z1wv3ZksoF1xybCa231KFTcy1MmjVeMUzv.kpg?tag=1-1623987496-h-1-gsqxxpnpkk-d7370efed993f1eb\u0026type=hot\u0026clientCacheKey=3xugv8f6d4mhrva_hd.kpg\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "displayTime": "",
                "duration": 12200,
                "editInfo": {},
                "enableFullScreenPlay": false,
                "enableShareToStory": true,
                "exp_tag": "1_i/2000871708995985745_sl191",
                "extEntry": null,
                "ext_params": {
                    "color": "000000",
                    "h": 1280,
                    "interval": 30,
                    "mtype": 3,
                    "sound": 12191,
                    "video": 12200,
                    "w": 720
                },
                "fashionEntranceShow": {
                    "bizId": "5xc2dj9grtby5sq",
                    "showType": 3
                },
                "feedSwitches": {
                    "enableExplicitPhotoDescription": false,
                    "enablePlayerPanel": false
                },
                "ff_cover_thumbnail_urls": [
                    {
                        "cdn": "tx2.a.yximgs.com",
                        "url": "http://tx2.a.yximgs.com/ksc1/GizxdWv3Ick02YFWe-ZD_OB9SRZT7VonfK2PcFrCE8_KlixNaEi4nwEjwB04fnPIRRmbcYY2j7PhKb3O59O33H_ladXKuUH2_84FSYTiz0aPes5DeWgEXRXdVu9JvGJyv8rysV12IkMSN5KnAvsgMROhXgh7kTCzaEr2ED92spLHSgSyZOCzdO8AJFvD31oi.kpg?tag=1-1623987496-h-0-l7rfofffyg-8c01ad9752e2a59b\u0026type=hot\u0026clientCacheKey=3xugv8f6d4mhrva_ff.kpg\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "ali2.a.yximgs.com",
                        "url": "http://ali2.a.yximgs.com/ksc1/GizxdWv3Ick02YFWe-ZD_OB9SRZT7VonfK2PcFrCE8_KlixNaEi4nwEjwB04fnPIRRmbcYY2j7PhKb3O59O33H_ladXKuUH2_84FSYTiz0aPes5DeWgEXRXdVu9JvGJyv8rysV12IkMSN5KnAvsgMROhXgh7kTCzaEr2ED92spLHSgSyZOCzdO8AJFvD31oi.kpg?tag=1-1623987496-h-1-xkxwvtcson-3ee180d7715885cf\u0026type=hot\u0026clientCacheKey=3xugv8f6d4mhrva_ff.kpg\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "following": 0,
                "forward_count": 0,
                "forward_stats_params": {
                    "et": "1_i/2000871708995985745_sl191",
                    "fid": "1704471768"
                },
                "frameStyle": 1,
                "hated": 0,
                "headurls": [
                    {
                        "cdn": "ali-p1.yximgs.com",
                        "url": "http://ali-p1.yximgs.com/uhead/AB/2020/09/06/06/BMjAyMDA5MDYwNjU0MjBfMjA3ODE4NzM1NF8xX2hkMTc2XzIxMA==_s.jpg"
                    },
                    {
                        "cdn": "js2.a.yximgs.com",
                        "url": "http://js2.a.yximgs.com/uhead/AB/2020/09/06/06/BMjAyMDA5MDYwNjU0MjBfMjA3ODE4NzM1NF8xX2hkMTc2XzIxMA==_s.jpg"
                    }
                ],
                "isShareCountExp": false,
                "kwaiId": "bblchuangyi",
                "like_count": 7835,
                "liked": 0,
                "location": {},
                "main_mv_urls": [
                    {
                        "cdn": "v1.kwaicdn.com",
                        "url": "http://v1.kwaicdn.com/ksc1/NlRWfNYqV_FS35y6uUbf-cRpA_BxYFY8TQJ2uhPD2UEJIhUod0rz9l3BcE9Hu2RVcJYYSpKK9tQ_8j6nl8WSsDjZchLrOdwkOiTQpMd7wAInHuaiLs9my-3OMUavRZLoPZqmC5gzf7u9izw9Dbxngd_jY-Vd5pOxUjEhwpdTnm3QiYub8X3MdRcd38gprjDV.mp4?pkey=AAUx5THwBYcJNMM0BAWq4PYs97ROO4D6reHOGzfB-ckG5vHkNJKaOtaUZQvQHbPx6c_72Bao4TkufcKs56YfN7zjqZ_uLdmvXRcw3VTsGtk5k3x26RXecqexJX9hJ8RHzLs\u0026tag=1-1623987496-h-0-dp16shviqo-ef117134a603f5e1\u0026type=hot\u0026clientCacheKey=3xugv8f6d4mhrva_b.mp4\u0026tt=b\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "v2.kwaicdn.com",
                        "url": "http://v2.kwaicdn.com/ksc1/NlRWfNYqV_FS35y6uUbf-cRpA_BxYFY8TQJ2uhPD2UEJIhUod0rz9l3BcE9Hu2RVcJYYSpKK9tQ_8j6nl8WSsDjZchLrOdwkOiTQpMd7wAInHuaiLs9my-3OMUavRZLoPZqmC5gzf7u9izw9Dbxngd_jY-Vd5pOxUjEhwpdTnm3QiYub8X3MdRcd38gprjDV.mp4?pkey=AAU7PsjIVd6pYp_duW3i4U91qn37L076Zh3VexuRo9iy8duYkoRzsNLH2TTKzKkdQaLYF6vRBY_v87olP6x_0Dy3XqebD-0cefIbNvcuS-Q3O2yiFYvHEegAanmfxjFv8V4\u0026tag=1-1623987496-h-1-fxwmuila1c-c1a78b5514ddd55a\u0026type=hot\u0026clientCacheKey=3xugv8f6d4mhrva_b.mp4\u0026tt=b\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "main_mv_urls_h265": [
                    {
                        "cdn": "v1.kwaicdn.com",
                        "url": "http://v1.kwaicdn.com/ksc1/w2mFsm3W_SRjCGCEsOQPciqZB9zgSLqSr7KtWfcX8x-RN6hFzYAxKzxI4GzKOzypLfr__7HYUFnym5G_N8m3YI2bTNjyyhtKX0aYgIxyVAWtQQFgUfZgTUVRm3c2W79p5N-lh4Fijx2hPr0wnwzpA1MqvJP7_ieuTzingdmhmSJhX0c2kGWZEoU_VhbzMe7N.mp4?pkey=AAWCuvsHbipepXbDaYq9BeTFExaAt7GLNQO0hA3rj1K7kawC67ZZZjL1SQnG_MgRd3qDYyHg1isxXahU6-4mn1KDMnrPuiPtdPf41A2Y28KO_ca8bd71Gxz9qDESd7j84eU\u0026tag=1-1623987496-h-0-d48a91qf44-0e28c0383c1826d0\u0026type=hot\u0026clientCacheKey=3xugv8f6d4mhrva_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "v2.kwaicdn.com",
                        "url": "http://v2.kwaicdn.com/ksc1/w2mFsm3W_SRjCGCEsOQPciqZB9zgSLqSr7KtWfcX8x-RN6hFzYAxKzxI4GzKOzypLfr__7HYUFnym5G_N8m3YI2bTNjyyhtKX0aYgIxyVAWtQQFgUfZgTUVRm3c2W79p5N-lh4Fijx2hPr0wnwzpA1MqvJP7_ieuTzingdmhmSJhX0c2kGWZEoU_VhbzMe7N.mp4?pkey=AAXyF1YMGkY53ToiVarjPG55YpHe629qXXZd1IgTvYwsansGbRJsESTpZYlrNyChU7IeHvbbxTogRn9vsjGVIUS5ywHB8zC8WREinNIX-pKK0iYx3i5sFFMTaMbYXmpjovY\u0026tag=1-1623987496-h-1-xxgxlg6yyr-cc0b2ab0c14ecfeb\u0026type=hot\u0026clientCacheKey=3xugv8f6d4mhrva_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "noNeedToRequestPLCApi": true,
                "operationExpTagDisplayInfo": {},
                "photoCommentFriendsVisible": 0,
                "photoDisplayLocationInfo": {
                    "displayHeight": 843,
                    "displayWidth": 1080,
                    "heightRatio": 1,
                    "leftRatio": 0,
                    "photoHeight": 1920,
                    "photoWidth": 1080,
                    "topRatio": 0,
                    "widthRatio": 1
                },
                "photoReward": {
                    "canReward": true,
                    "headButton": true,
                    "headButtonNow": true,
                    "rewardCount": 0
                },
                "photoTextLocationInfo": {
                    "heightRatio": 0.24322917,
                    "leftRatio": 0.05925926,
                    "topRatio": 0.45052084,
                    "widthRatio": 0.7453704
                },
                "photo_id": 5255419340498497000,
                "photo_status": 0,
                "plcFeatureEntryAbFlag": 0,
                "plcHighPriorityThanBottomEntry": false,
                "plcResponseTime": 1623987496589,
                "profilePagePrefetchInfo": {
                    "profilePageType": 2
                },
                "pureTitle": "俄罗斯:飞了,不好了,飞起来了 #俄罗斯 #战斗民族 #搞笑",
                "recoTags": [],
                "reco_reason": "sl191",
                "sameFrame": {
                    "allow": true,
                    "availableDepth": 7
                },
                "savePlayProgressStrategy": 0,
                "serverExpTag": "feed_photo|5255419340498496107|2078187354|1_i/2000871708995985745_sl191",
                "shareGuide": {
                    "guides": {
                        "default": {
                            "iconType": "wechat"
                        }
                    },
                    "minPlayDurationInSeconds": 15,
                    "photoShareGuide": true,
                    "playTimes": 2,
                    "textDisplayDurationInSeconds": 4
                },
                "share_count": 360,
                "share_info": "userId=3xhd5hcvy8ip5yg\u0026photoId=3xugv8f6d4mhrva",
                "similarModules": [
                    {
                        "tagName": "战斗民族",
                        "type": 1
                    }
                ],
                "slideCommentEntryDisabled": false,
                "sortFeatures": [
                    {
                        "name": "0",
                        "value": 0.5030108
                    },
                    {
                        "name": "3",
                        "value": 0.0037195769
                    },
                    {
                        "name": "5",
                        "value": 0.006178614
                    },
                    {
                        "name": "1",
                        "value": 0.008059441
                    },
                    {
                        "name": "2",
                        "value": 0.0010094437
                    },
                    {
                        "name": "6",
                        "value": 0.33054233
                    },
                    {
                        "name": "7",
                        "value": 0.17424239
                    },
                    {
                        "name": "4",
                        "value": 0.011326797
                    },
                    {
                        "name": "8",
                        "value": 0.21497232
                    },
                    {
                        "name": "9",
                        "value": 0
                    },
                    {
                        "name": "10",
                        "value": 432
                    },
                    {
                        "name": "11",
                        "value": 395
                    },
                    {
                        "name": "12",
                        "value": 409
                    },
                    {
                        "name": "13",
                        "value": 0
                    },
                    {
                        "name": "14",
                        "value": 0.93997693
                    },
                    {
                        "name": "15",
                        "value": 0.056478344
                    },
                    {
                        "name": "16",
                        "value": 2078187390
                    },
                    {
                        "name": "17",
                        "value": 0
                    },
                    {
                        "name": "18",
                        "value": 1
                    },
                    {
                        "name": "19",
                        "value": 0
                    },
                    {
                        "name": "20",
                        "value": 0.08131363
                    },
                    {
                        "name": "21",
                        "value": 0.09275765
                    },
                    {
                        "name": "23",
                        "value": -1
                    },
                    {
                        "name": "24",
                        "value": 0.16005139
                    },
                    {
                        "name": "25",
                        "value": 0
                    },
                    {
                        "name": "201",
                        "value": 0.0043229577
                    },
                    {
                        "name": "202",
                        "value": 0
                    }
                ],
                "soundTrack": {
                    "artist": "半边脸创意",
                    "audioType": 1,
                    "audioUrls": [
                        {
                            "cdn": "tx2.a.yximgs.com",
                            "url": "http://tx2.a.yximgs.com/bs2/ost/NTE0NjI4NTYwNjZfMjA3ODE4NzM1NA.m4a"
                        },
                        {
                            "cdn": "ali2.a.yximgs.com",
                            "url": "http://ali2.a.yximgs.com/bs2/ost/NTE0NjI4NTYwNjZfMjA3ODE4NzM1NA.m4a"
                        }
                    ],
                    "avatarUrls": [
                        {
                            "cdn": "js2.a.yximgs.com",
                            "url": "http://js2.a.yximgs.com/bs2/ost/NTE0NjI4NTYwNjZfMjA3ODE4NzM1NA.jpg"
                        },
                        {
                            "cdn": "ali2.a.yximgs.com",
                            "url": "http://ali2.a.yximgs.com/bs2/ost/NTE0NjI4NTYwNjZfMjA3ODE4NzM1NA.jpg"
                        }
                    ],
                    "disableEnhancedEntry": true,
                    "duration": 12,
                    "genreId": 0,
                    "id": "5xc2dj9grtby5sq",
                    "imageUrls": [
                        {
                            "cdn": "js2.a.yximgs.com",
                            "url": "http://js2.a.yximgs.com/bs2/ost/NTE0NjI4NTYwNjZfMjA3ODE4NzM1NA.jpg"
                        },
                        {
                            "cdn": "ali2.a.yximgs.com",
                            "url": "http://ali2.a.yximgs.com/bs2/ost/NTE0NjI4NTYwNjZfMjA3ODE4NzM1NA.jpg"
                        }
                    ],
                    "loudness": -15,
                    "name": "半边脸创意的作品原声",
                    "photoId": 5255419340498497000,
                    "type": 9,
                    "user": {
                        "eid": "3xhd5hcvy8ip5yg",
                        "following": false,
                        "headurl": "http://ali-p1.yximgs.com/uhead/AB/2020/09/06/06/BMjAyMDA5MDYwNjU0MjBfMjA3ODE4NzM1NF8xX2hkMTc2XzIxMA==_s.jpg",
                        "headurls": [
                            {
                                "cdn": "ali-p1.yximgs.com",
                                "url": "http://ali-p1.yximgs.com/uhead/AB/2020/09/06/06/BMjAyMDA5MDYwNjU0MjBfMjA3ODE4NzM1NF8xX2hkMTc2XzIxMA==_s.jpg"
                            },
                            {
                                "cdn": "js2.a.yximgs.com",
                                "url": "http://js2.a.yximgs.com/uhead/AB/2020/09/06/06/BMjAyMDA5MDYwNjU0MjBfMjA3ODE4NzM1NF8xX2hkMTc2XzIxMA==_s.jpg"
                            }
                        ],
                        "kwaiId": "bblchuangyi",
                        "profilePagePrefetchInfo": {
                            "profilePageType": 2
                        },
                        "user_id": 2078187354,
                        "user_name": "半边脸创意",
                        "user_sex": "F",
                        "visitorBeFollowed": false
                    }
                },
                "sourcePhotoPage": "h",
                "streamManifest": {
                    "adaptationSet": [
                        {
                            "duration": 12200,
                            "id": 1,
                            "representation": [
                                {
                                    "avgBitrate": 944,
                                    "backupUrl": [
                                        "http://v2.kwaicdn.com/ksc1/w2mFsm3W_SRjCGCEsOQPciqZB9zgSLqSr7KtWfcX8x-RN6hFzYAxKzxI4GzKOzypLfr__7HYUFnym5G_N8m3YI2bTNjyyhtKX0aYgIxyVAWtQQFgUfZgTUVRm3c2W79p5N-lh4Fijx2hPr0wnwzpA1MqvJP7_ieuTzingdmhmSJhX0c2kGWZEoU_VhbzMe7N.mp4?pkey=AAUJqFcTP0pG0yqCmQo1J9Tt022Gf7EGWTimer9k8WI_fjcCT83T7wWVAuyOatVaV3kkS-7X9J6BwK_R_QwyEjincb5JhxcFT40AJAhgcMhUCWcmmP4xA61-_95pAKbWBMI\u0026tag=1-1623987496-h-1-4krnxrf5j0-f1bcaaf1cb04ddc0\u0026type=hot\u0026clientCacheKey=3xugv8f6d4mhrva_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131"
                                    ],
                                    "bitratePattern": [
                                        204,
                                        143,
                                        265,
                                        143,
                                        50
                                    ],
                                    "defaultSelect": false,
                                    "disableAdaptive": false,
                                    "featureP2sp": false,
                                    "fileSize": 1439717,
                                    "frameRate": 25,
                                    "height": 1280,
                                    "hidden": false,
                                    "id": 1,
                                    "maxBitrate": 2300,
                                    "quality": 1.6,
                                    "qualityLabel": "高清",
                                    "qualityType": "720p",
                                    "url": "http://v1.kwaicdn.com/ksc1/w2mFsm3W_SRjCGCEsOQPciqZB9zgSLqSr7KtWfcX8x-RN6hFzYAxKzxI4GzKOzypLfr__7HYUFnym5G_N8m3YI2bTNjyyhtKX0aYgIxyVAWtQQFgUfZgTUVRm3c2W79p5N-lh4Fijx2hPr0wnwzpA1MqvJP7_ieuTzingdmhmSJhX0c2kGWZEoU_VhbzMe7N.mp4?pkey=AAWiWgw3pl4LB8mMICXsO1ClWzNY8ZZSi6q13glLCx2TM8GUk4as5p4MhpM9ouSwmUOFbwGoOB0Q9d5Ln9UMR1i_pZJ9arxF6JpqYg5cCEYSpYQ42ExamyqobXD_n5SNFd0\u0026tag=1-1623987496-h-0-mggkvkgtf9-cd36bcc39f7d9e32\u0026type=hot\u0026clientCacheKey=3xugv8f6d4mhrva_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131",
                                    "width": 720
                                },
                                {
                                    "avgBitrate": 703,
                                    "backupUrl": [
                                        "http://v2.kwaicdn.com/ksc1/U3MUb3y12Adm-tGLjpfZxV00h4lqfhad1_SZaezM5OHHNTGtAanHMSPocJmmgbKDqPd-2CpUVjNZtjBA0zQV0hslSNom3WceDjbBfG1TYt65J8h935qhrv6IVbN7uHBMJC0mxZWa6oFxk-JC5jYdBtEL251f-q7I8J9YwYYQQqWaS1s12Ujp8d9QbAJte-Aw.mp4?pkey=AAWMWz-t0H0oEZEkNS8qE6pjbpeSO9RmXXSiGRRaHyVH-3H4wwYnCOLqdUh78WoUDV2XCVk7vzx1wvkn1kdfGzkRp9Ua8un4dUG9H4Blte_tQc_R0RQUzWC64Vwp-oZs1sI\u0026tag=1-1623987496-h-1-h0wh5zutdy-590a61d0413f7056\u0026type=hot\u0026clientCacheKey=3xugv8f6d4mhrva_hd18.mp4\u0026tt=hd18\u0026di=74e31056\u0026bp=10131"
                                    ],
                                    "bitratePattern": [
                                        701,
                                        108,
                                        902,
                                        73,
                                        257
                                    ],
                                    "defaultSelect": false,
                                    "disableAdaptive": false,
                                    "featureP2sp": false,
                                    "fileSize": 1072711,
                                    "frameRate": 25,
                                    "height": 1024,
                                    "hidden": false,
                                    "id": 2,
                                    "maxBitrate": 750,
                                    "quality": 1.4,
                                    "qualityLabel": "标清",
                                    "qualityType": "576p",
                                    "url": "http://v1.kwaicdn.com/ksc1/U3MUb3y12Adm-tGLjpfZxV00h4lqfhad1_SZaezM5OHHNTGtAanHMSPocJmmgbKDqPd-2CpUVjNZtjBA0zQV0hslSNom3WceDjbBfG1TYt65J8h935qhrv6IVbN7uHBMJC0mxZWa6oFxk-JC5jYdBtEL251f-q7I8J9YwYYQQqWaS1s12Ujp8d9QbAJte-Aw.mp4?pkey=AAXblRDoqHZ-eFdb-T-rnzgY3lHjzpqjz8EFw0t-cRtfXM51ZuytyUMaWdEiPAZ0lW1flcl6OXq1HFQH-DgRIZM9CrEZysIujcjpDdYVvrVvHb14F26zdsOCubhdRN1HOX8\u0026tag=1-1623987496-h-0-jpyvjhwfte-5556d7f8b9c2f1b0\u0026type=hot\u0026clientCacheKey=3xugv8f6d4mhrva_hd18.mp4\u0026tt=hd18\u0026di=74e31056\u0026bp=10131",
                                    "width": 576
                                },
                                {
                                    "avgBitrate": 412,
                                    "backupUrl": [
                                        "http://v2.kwaicdn.com/ksc1/YN2nNC1XnB8kz07dJOMo79r8MtJLpQVzJ54hFrcu1l4Er6QPxGPVeKAh2JrmN7ko7sFyWiGQgvio98MN21Lto4UIBsLA0OCwVTKeyvrVJ7lvnA1Y3Jzx7eF7FJjBPikKSoTpx52V3S2NOQMkCtQGFABkxxJEC-wpQMAPNN_Bsj9yDVb8M2pZOF-tM1o5saAc.mp4?pkey=AAVfe4exsR7NOI34OiRdbvkcUyED5MswSHupWU9hhO5fVMz3pYW_0hjiLtu1kjrJzDojnJm8XyxZfdyitIAMQNknVgRXC7gTLf9svX8ibANjkVUCdTBKtzRoAuq4BSkAKEw\u0026tag=1-1623987496-h-1-t0g1by771c-c7179c8ce7e586bf\u0026type=hot\u0026clientCacheKey=3xugv8f6d4mhrva_hd19.mp4\u0026tt=hd19\u0026di=74e31056\u0026bp=10131"
                                    ],
                                    "bitratePattern": [
                                        405,
                                        102,
                                        527,
                                        69,
                                        137
                                    ],
                                    "defaultSelect": false,
                                    "disableAdaptive": false,
                                    "featureP2sp": false,
                                    "fileSize": 628443,
                                    "frameRate": 25,
                                    "height": 960,
                                    "hidden": false,
                                    "id": 3,
                                    "maxBitrate": 400,
                                    "quality": 1.2,
                                    "qualityLabel": "流畅",
                                    "qualityType": "480p",
                                    "url": "http://v1.kwaicdn.com/ksc1/YN2nNC1XnB8kz07dJOMo79r8MtJLpQVzJ54hFrcu1l4Er6QPxGPVeKAh2JrmN7ko7sFyWiGQgvio98MN21Lto4UIBsLA0OCwVTKeyvrVJ7lvnA1Y3Jzx7eF7FJjBPikKSoTpx52V3S2NOQMkCtQGFABkxxJEC-wpQMAPNN_Bsj9yDVb8M2pZOF-tM1o5saAc.mp4?pkey=AAXfLiYZ5a1hzJWMMKnaR0WoP4ezYmqVJ-6aMlEWLHVa48cB2KAiPAYOFvIJAlEE2yscaEGxuASsbQckZB1Ra1YWxJjYI9Y0xqYce9UUrKvrI9q8nQUxVXDjdNg_cWJ7cm8\u0026tag=1-1623987496-h-0-hqj7c07el3-8f65b89ddeb108d9\u0026type=hot\u0026clientCacheKey=3xugv8f6d4mhrva_hd19.mp4\u0026tt=hd19\u0026di=74e31056\u0026bp=10131",
                                    "width": 540
                                }
                            ]
                        }
                    ],
                    "businessType": 2,
                    "mediaType": 2,
                    "playInfo": {},
                    "version": "1.0.0"
                },
                "supportType": 0,
                "tag_hash_type": 1,
                "tags": [],
                "time": "2021-06-15 15:26:47",
                "timestamp": 1623742007689,
                "type": 1,
                "unlike_count": 0,
                "us_c": 0,
                "us_d": 0,
                "us_l": true,
                "user_id": 2078187354,
                "user_name": "半边脸创意",
                "user_sex": "F",
                "verified": false,
                "videoColdStartType": 0,
                "view_count": 269298
            },
            {
                "adminTags": [],
                "caption": "危险!潮州两名男子骑车在道路中央,“蛇形走位”一路摇摆",
                "comment_count": 1331,
                "comments": [],
                "coverCommonTags": {
                    "authorHeadMask": {
                        "bgImage": [
                            {
                                "cdn": "static.yximgs.com",
                                "url": "https://static.yximgs.com/udata/pkg/KS-COVERTAG/feed_tag_certification_blue.a843c07b.png"
                            }
                        ],
                        "darkModeStyle": {
                            "bgImage": [
                                {
                                    "cdn": "static.yximgs.com",
                                    "url": "https://static.yximgs.com/udata/pkg/KS-COVERTAG/dark_feed_tag_certification_blue.e8d40789.png"
                                }
                            ]
                        },
                        "tagType": 9,
                        "text": ""
                    },
                    "authorRelationTag": {
                        "bgImage": [
                            {
                                "cdn": "js2.a.yximgs.com",
                                "url": "http://js2.a.yximgs.com/bs2/fes/app_feed_verified_blue_icon.png"
                            }
                        ],
                        "darkModeStyle": {
                            "bgImage": [
                                {
                                    "cdn": "static.yximgs.com",
                                    "url": "https://static.yximgs.com/udata/pkg/KS-COVERTAG/dark_feed_icon_certification_blue.1a9b62b9250007b3.png"
                                }
                            ]
                        },
                        "tagType": 9,
                        "text": ""
                    }
                },
                "cover_thumbnail_urls": [
                    {
                        "cdn": "tx2.a.yximgs.com",
                        "url": "http://tx2.a.yximgs.com/ksc1/zC1iE1GcUSywrLbq4_j5oZAhi7yyESGaJdUSkHyXLU4VUNa2TZRctKYw2J90GI7QY7n8b9burpi5OTipE7U7iN3JpCy-M9Hm4Ww2PeW1yL5MVGC65bnCcWD534iae2VS_BPcOdWrEK0il7nS0k-95AEzp_N_8NE4Z26N_uPQcZr5O9MeO9-47iFsBDGBoc92.kpg?tag=1-1623987496-h-0-i9xu0zblbx-743582839a7f40b9\u0026type=hot\u0026clientCacheKey=3x3tj2s9jykun9m_hd.kpg\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "ali2.a.yximgs.com",
                        "url": "http://ali2.a.yximgs.com/ksc1/zC1iE1GcUSywrLbq4_j5oZAhi7yyESGaJdUSkHyXLU4VUNa2TZRctKYw2J90GI7QY7n8b9burpi5OTipE7U7iN3JpCy-M9Hm4Ww2PeW1yL5MVGC65bnCcWD534iae2VS_BPcOdWrEK0il7nS0k-95AEzp_N_8NE4Z26N_uPQcZr5O9MeO9-47iFsBDGBoc92.kpg?tag=1-1623987496-h-1-mkozr0gmri-dc75fa7a0c36f980\u0026type=hot\u0026clientCacheKey=3x3tj2s9jykun9m_hd.kpg\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "displayTime": null,
                "duration": 7783,
                "editInfo": {},
                "enableFullScreenPlay": false,
                "enableShareToStory": true,
                "exp_tag": "1_v/2000871708995985745_sl191",
                "extEntry": null,
                "ext_params": {
                    "color": "87898A",
                    "h": 1282,
                    "interval": 60,
                    "mtype": 3,
                    "sound": 7780,
                    "video": 7783,
                    "w": 720
                },
                "feedSwitches": {
                    "enableExplicitPhotoDescription": false,
                    "enablePlayerPanel": false
                },
                "ff_cover_thumbnail_urls": [
                    {
                        "cdn": "tx2.a.yximgs.com",
                        "url": "http://tx2.a.yximgs.com/ksc1/7zAAm0wAqnPvwjcNFMBnuWroPKTyb3NK9J_aSg-LvBkQZXOtlcFtbJtXt-DPJv2Hsi-Peq-u58TmgUKhi1Szl1lqbcwzYGFetT3UkA3BPRHXPI9bprUCZuYURBcsmKVt48T2zb6nL38lIo4nrOJUItugDL_XJzvDTEuE6NoUzLGpas-n22uWH_yjvu0Ym6uz.kpg?tag=1-1623987496-h-0-hsbwfawizy-036034aac0f8520c\u0026type=hot\u0026clientCacheKey=3x3tj2s9jykun9m_ff.kpg\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "ali2.a.yximgs.com",
                        "url": "http://ali2.a.yximgs.com/ksc1/7zAAm0wAqnPvwjcNFMBnuWroPKTyb3NK9J_aSg-LvBkQZXOtlcFtbJtXt-DPJv2Hsi-Peq-u58TmgUKhi1Szl1lqbcwzYGFetT3UkA3BPRHXPI9bprUCZuYURBcsmKVt48T2zb6nL38lIo4nrOJUItugDL_XJzvDTEuE6NoUzLGpas-n22uWH_yjvu0Ym6uz.kpg?tag=1-1623987496-h-1-3emymxtmzx-bd18c52e54d61f57\u0026type=hot\u0026clientCacheKey=3x3tj2s9jykun9m_ff.kpg\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "followShoot": {
                    "disableFollowShoot": true
                },
                "following": 0,
                "forward_count": 0,
                "forward_stats_params": {
                    "et": "1_v/2000871708995985745_sl191",
                    "fid": "1704471768"
                },
                "frameStyle": 3,
                "hated": 0,
                "headurls": [
                    {
                        "cdn": "ali-p1.yximgs.com",
                        "url": "http://ali-p1.yximgs.com/uhead/AB/2021/05/24/15/BMjAyMTA1MjQxNTQ5MzRfMTM5ODc3ODAwNl8yX2hkNTkwXzQ4Nw==_s.jpg"
                    },
                    {
                        "cdn": "js2.a.yximgs.com",
                        "url": "http://js2.a.yximgs.com/uhead/AB/2021/05/24/15/BMjAyMTA1MjQxNTQ5MzRfMTM5ODc3ODAwNl8yX2hkNTkwXzQ4Nw==_s.jpg"
                    }
                ],
                "isShareCountExp": false,
                "kwaiId": "hndspdxmt",
                "like_count": 4351,
                "liked": 0,
                "location": {},
                "main_mv_urls": [
                    {
                        "cdn": "v1.kwaicdn.com",
                        "url": "http://v1.kwaicdn.com/ksc1/Cbf4hd5B6yOYq0VIq5IxoiBp9LBgi22kOxvc0Dv3Xhos6l6UBMpYa_9aJp1TPBiH6qfeTjdzHpxrn2bqyiBISk_zFkoyUu0OsQVXvrehHcv5oPycpVlXyuWqxE3sBy6XcpfMmMFMpg-wucCRKCCB1bXgoHJsKMCyYq4FRP5hQSONKMfBcfDeRCSt5l6FpvGw.mp4?pkey=AAWlcq68CUZF92sNXbA6niqW7sR5mVoNdPvsXMabd7PKZnS__CE6l2FtaPTmXYY16duVTL6r1nAyO4tTXELwrPxNr4gGgPoXvKLmZuwzfRL1U8QeaY4o44MJvRocypm5TWE\u0026tag=1-1623987496-h-0-rwzjlj1nzq-fa27698c79ce1b32\u0026type=hot\u0026clientCacheKey=3x3tj2s9jykun9m_b.mp4\u0026tt=b\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "v2.kwaicdn.com",
                        "url": "http://v2.kwaicdn.com/ksc1/Cbf4hd5B6yOYq0VIq5IxoiBp9LBgi22kOxvc0Dv3Xhos6l6UBMpYa_9aJp1TPBiH6qfeTjdzHpxrn2bqyiBISk_zFkoyUu0OsQVXvrehHcv5oPycpVlXyuWqxE3sBy6XcpfMmMFMpg-wucCRKCCB1bXgoHJsKMCyYq4FRP5hQSONKMfBcfDeRCSt5l6FpvGw.mp4?pkey=AAUOM1tw5DIu_pEZsTilcayV11UyuqbmOOeLgMnZ9ctGtlUZR2kgi9Kkrh2p7tBE7L5a-WxGA4UvGxifvuaqk59Eww0CZ1KsYwp52AtKlPtKdrXJn4LZMQ7PHWz1oPAyk9o\u0026tag=1-1623987496-h-1-j9hos4astx-088acf5027bb6266\u0026type=hot\u0026clientCacheKey=3x3tj2s9jykun9m_b.mp4\u0026tt=b\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "main_mv_urls_h265": [
                    {
                        "cdn": "v1.kwaicdn.com",
                        "url": "http://v1.kwaicdn.com/ksc1/7dl0kpCZoXsxTwSPyRSLJcGGHITqfb5ExHDJxvVYveInLtQoRXrQbHv5i4defoGdASSB7y7dx3Ea908w99lUD4XM070iSP6azeK1iawtqdOlE5T0AGbPeob3ByiqXz9bTT6yZ_rqiRd340E5HQuYat9ytmQ7Rkg6Pd05xwk6G0C8NT1Wgs-tYSMa7Xk3NGVD.mp4?pkey=AAVGEOixMFQcwVJpkv--KvB97Grjcps6nWfckBHmWHY20TnjLcFjCveWcWnDiGPZyf7CmAPtLFfpghpXCKAencncZYzPsMJY1v4UQHXtMBIWJRCAXDXAgQYueS16IWqozuw\u0026tag=1-1623987496-h-0-mglhpln3fk-15fa076c95f074e9\u0026type=hot\u0026clientCacheKey=3x3tj2s9jykun9m_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "v2.kwaicdn.com",
                        "url": "http://v2.kwaicdn.com/ksc1/7dl0kpCZoXsxTwSPyRSLJcGGHITqfb5ExHDJxvVYveInLtQoRXrQbHv5i4defoGdASSB7y7dx3Ea908w99lUD4XM070iSP6azeK1iawtqdOlE5T0AGbPeob3ByiqXz9bTT6yZ_rqiRd340E5HQuYat9ytmQ7Rkg6Pd05xwk6G0C8NT1Wgs-tYSMa7Xk3NGVD.mp4?pkey=AAWfxwapgXPXE5L-qkNCZnVBSYms9XHi3vZusFoM6HXzdcpQXLCVT11nFocHlEPKqz_fimL47d7d2kkG_ZJDDMCnBHo2iKmqaPXysGmaKEXx5JqF6sMhrj2dIekxECBHrIg\u0026tag=1-1623987496-h-1-nf8zl1jptj-53bbd052ab0f82b4\u0026type=hot\u0026clientCacheKey=3x3tj2s9jykun9m_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "noNeedToRequestPLCApi": true,
                "operationExpTagDisplayInfo": {},
                "photoCommentFriendsVisible": 0,
                "photoDisplayLocationInfo": {
                    "displayHeight": 1911,
                    "displayWidth": 1080,
                    "heightRatio": 1,
                    "leftRatio": 0,
                    "photoHeight": 1912,
                    "photoWidth": 1080,
                    "topRatio": 0,
                    "widthRatio": 1
                },
                "photoTextLocationInfo": {
                    "heightRatio": 0.8472803,
                    "leftRatio": 0.05648148,
                    "topRatio": 0.02248954,
                    "widthRatio": 0.91481483
                },
                "photo_id": 5243597394163696000,
                "photo_status": 0,
                "plcFeatureEntryAbFlag": 0,
                "plcHighPriorityThanBottomEntry": false,
                "plcResponseTime": 1623987496589,
                "profilePagePrefetchInfo": {
                    "profilePageType": 1
                },
                "pureTitle": "危险!潮州两名男子骑车在道路中央,“蛇形走位”一路摇摆",
                "recoTags": [],
                "reco_reason": "sl191",
                "sameFrame": {
                    "allow": false
                },
                "savePlayProgressStrategy": 0,
                "serverExpTag": "feed_photo|5243597394163695630|1398778006|1_v/2000871708995985745_sl191",
                "shareGuide": {
                    "guides": {
                        "default": {
                            "iconType": "wechat"
                        }
                    },
                    "minPlayDurationInSeconds": 15,
                    "photoShareGuide": true,
                    "playTimes": 2,
                    "textDisplayDurationInSeconds": 4
                },
                "share_count": 393,
                "share_info": "userId=3x3hmaijcf453ig\u0026photoId=3x3tj2s9jykun9m",
                "slideCommentEntryDisabled": false,
                "sortFeatures": [
                    {
                        "name": "0",
                        "value": 0.63828254
                    },
                    {
                        "name": "3",
                        "value": 0.0057060593
                    },
                    {
                        "name": "5",
                        "value": 0.003652714
                    },
                    {
                        "name": "1",
                        "value": 0.008032542
                    },
                    {
                        "name": "2",
                        "value": 0.0005305325
                    },
                    {
                        "name": "6",
                        "value": 0.39393848
                    },
                    {
                        "name": "7",
                        "value": 0.14188968
                    },
                    {
                        "name": "4",
                        "value": 0.006447846
                    },
                    {
                        "name": "8",
                        "value": 0.21254146
                    },
                    {
                        "name": "9",
                        "value": 0
                    },
                    {
                        "name": "10",
                        "value": 25
                    },
                    {
                        "name": "11",
                        "value": 390
                    },
                    {
                        "name": "12",
                        "value": 5202
                    },
                    {
                        "name": "13",
                        "value": 0
                    },
                    {
                        "name": "14",
                        "value": 0.9343431
                    },
                    {
                        "name": "15",
                        "value": 0.033876028
                    },
                    {
                        "name": "16",
                        "value": 1398777980
                    },
                    {
                        "name": "17",
                        "value": 0
                    },
                    {
                        "name": "18",
                        "value": 1
                    },
                    {
                        "name": "19",
                        "value": 0
                    },
                    {
                        "name": "20",
                        "value": 0.066732615
                    },
                    {
                        "name": "21",
                        "value": 0.051260833
                    },
                    {
                        "name": "23",
                        "value": -1
                    },
                    {
                        "name": "24",
                        "value": 0.12013525
                    },
                    {
                        "name": "25",
                        "value": 0
                    },
                    {
                        "name": "201",
                        "value": 0.002101211
                    },
                    {
                        "name": "202",
                        "value": 0
                    }
                ],
                "sourcePhotoPage": "h",
                "streamManifest": {
                    "adaptationSet": [
                        {
                            "duration": 7783,
                            "id": 1,
                            "representation": [
                                {
                                    "avgBitrate": 846,
                                    "backupUrl": [
                                        "http://v2.kwaicdn.com/ksc1/7dl0kpCZoXsxTwSPyRSLJcGGHITqfb5ExHDJxvVYveInLtQoRXrQbHv5i4defoGdASSB7y7dx3Ea908w99lUD4XM070iSP6azeK1iawtqdOlE5T0AGbPeob3ByiqXz9bTT6yZ_rqiRd340E5HQuYat9ytmQ7Rkg6Pd05xwk6G0C8NT1Wgs-tYSMa7Xk3NGVD.mp4?pkey=AAUtNe5Ae2eP_jJabKYoWEZqNKjfiI0pzFBHqGsiE69GKdhR4CfqqDlYnzEBi3KBL1t83LY15xgDB7tRWbPzQl9qK3JWBsGvi_cUkDSnMjltw6_1s3tj_ZhUQkPFw2LLMfo\u0026tag=1-1623987496-h-1-aypknjreqq-149aefeef6076244\u0026type=hot\u0026clientCacheKey=3x3tj2s9jykun9m_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131"
                                    ],
                                    "bitratePattern": [
                                        937,
                                        633,
                                        937,
                                        81,
                                        391
                                    ],
                                    "defaultSelect": false,
                                    "disableAdaptive": false,
                                    "featureP2sp": false,
                                    "fileSize": 828835,
                                    "frameRate": 25,
                                    "height": 1282,
                                    "hidden": false,
                                    "id": 1,
                                    "maxBitrate": 2300,
                                    "quality": 1.6,
                                    "qualityLabel": "高清",
                                    "qualityType": "720p",
                                    "url": "http://v1.kwaicdn.com/ksc1/7dl0kpCZoXsxTwSPyRSLJcGGHITqfb5ExHDJxvVYveInLtQoRXrQbHv5i4defoGdASSB7y7dx3Ea908w99lUD4XM070iSP6azeK1iawtqdOlE5T0AGbPeob3ByiqXz9bTT6yZ_rqiRd340E5HQuYat9ytmQ7Rkg6Pd05xwk6G0C8NT1Wgs-tYSMa7Xk3NGVD.mp4?pkey=AAXyllTCfdkGAxH7w4A7_M48TV4ho6FMFUDm9uUFXFIaiQTVgc-pmFuW0BRbOU1JardmhhZ74W0jvLfO7yhzPcF_XQqcM4k_uyk30e0Aus7neyYa2DcXPknOSXqUwHAsTgA\u0026tag=1-1623987496-h-0-isjadbb5ck-1cc6b11b288a20b7\u0026type=hot\u0026clientCacheKey=3x3tj2s9jykun9m_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131",
                                    "width": 720
                                },
                                {
                                    "avgBitrate": 727,
                                    "backupUrl": [
                                        "http://v2.kwaicdn.com/ksc1/xNMMUdQFp1TKCmzHhMY08E49ljy3FoUIFxGB8qoYzZh88p_b_uYemIZKJvfeItZ4zRL4Wsl3ePL9fmCEHf6oXm42UxrREjLcU_mm7iGOH-HQh59u6CT95OdUk1PK20d3-SglYvnZycsDghVOD5wA98jdtJBNaLPfpGMN5WqokZjqC9Ew_GdHLD0UBmM0B231.mp4?pkey=AAWJQPQeQ2OoOLDb7No6pLK6ySUvMop1DZMtvif3gAOK-RgBiZpE5HRalF09ozdAvsA4izKD7BtT3iAUT4oIVZLuLHFHRibeYuid4uDlzHNmPXQP8tuLKNBiLNc-xWZFRzk\u0026tag=1-1623987496-h-1-zwl0kmuuye-901d5c1f53e5bbb5\u0026type=hot\u0026clientCacheKey=3x3tj2s9jykun9m_hd18.mp4\u0026tt=hd18\u0026di=74e31056\u0026bp=10131"
                                    ],
                                    "bitratePattern": [
                                        728,
                                        702,
                                        764,
                                        659,
                                        29
                                    ],
                                    "defaultSelect": false,
                                    "disableAdaptive": false,
                                    "featureP2sp": false,
                                    "fileSize": 712250,
                                    "frameRate": 25,
                                    "height": 1024,
                                    "hidden": false,
                                    "id": 2,
                                    "maxBitrate": 750,
                                    "quality": 1.4,
                                    "qualityLabel": "标清",
                                    "qualityType": "576p",
                                    "url": "http://v1.kwaicdn.com/ksc1/xNMMUdQFp1TKCmzHhMY08E49ljy3FoUIFxGB8qoYzZh88p_b_uYemIZKJvfeItZ4zRL4Wsl3ePL9fmCEHf6oXm42UxrREjLcU_mm7iGOH-HQh59u6CT95OdUk1PK20d3-SglYvnZycsDghVOD5wA98jdtJBNaLPfpGMN5WqokZjqC9Ew_GdHLD0UBmM0B231.mp4?pkey=AAV2mAmUpIfRdbBb2aa86weJGsG1mr-hlMz9lDdXD2skRzodSdr4BiH5F70wOoypXp5kK3q_VCfKqiyHaBQ34yE7NSJFnOjGs13jvCt3acs5YqHsn9bZy2SXIcCnWJebv9g\u0026tag=1-1623987496-h-0-wnckgo8por-aadf9f1cefcd3c06\u0026type=hot\u0026clientCacheKey=3x3tj2s9jykun9m_hd18.mp4\u0026tt=hd18\u0026di=74e31056\u0026bp=10131",
                                    "width": 576
                                },
                                {
                                    "avgBitrate": 477,
                                    "backupUrl": [
                                        "http://v2.kwaicdn.com/ksc1/o9ECTkiZgNPpYrFghQnBPrZQgnUt0o4HaWA1C7tVDy31Sp63ibCIo3cPfc7BeTtoUmI-8zzUQwOWUOQUC5TDioBq79p1mnev6ba_B1UtTdMEqsBefwIl9YKGEJJ_YhBRPnQ16jFn9f_siQlUz3OdBI58Ynt3pvvhbZIdmymFhCrT8PIaaT5c5NUwHHE26N0a.mp4?pkey=AAV_WqPtOY_byyvXNEgl0OcSLf0DLKEPMgo3vxXbvPJ3A41zJtCe-zYKetBFEMFZQgKTb9UhlWDFZqYguVAUEoKCGoubm5oypXQQUoTHYGfWJOO3O5IK7ZYSGCYjL4IdWrw\u0026tag=1-1623987496-h-1-jwaucuquxc-ae21e18693b0566e\u0026type=hot\u0026clientCacheKey=3x3tj2s9jykun9m_hd19.mp4\u0026tt=hd19\u0026di=74e31056\u0026bp=10131"
                                    ],
                                    "bitratePattern": [
                                        524,
                                        459,
                                        524,
                                        400,
                                        42
                                    ],
                                    "defaultSelect": false,
                                    "disableAdaptive": false,
                                    "featureP2sp": false,
                                    "fileSize": 467178,
                                    "frameRate": 25,
                                    "height": 962,
                                    "hidden": false,
                                    "id": 3,
                                    "maxBitrate": 400,
                                    "quality": 1.2,
                                    "qualityLabel": "流畅",
                                    "qualityType": "480p",
                                    "url": "http://v1.kwaicdn.com/ksc1/o9ECTkiZgNPpYrFghQnBPrZQgnUt0o4HaWA1C7tVDy31Sp63ibCIo3cPfc7BeTtoUmI-8zzUQwOWUOQUC5TDioBq79p1mnev6ba_B1UtTdMEqsBefwIl9YKGEJJ_YhBRPnQ16jFn9f_siQlUz3OdBI58Ynt3pvvhbZIdmymFhCrT8PIaaT5c5NUwHHE26N0a.mp4?pkey=AAVaxnrp3JmbGeuxvadno3xHpOY_vewjC5zeN7YWF_M7hm8s7xxJEysk73AvK2KL58af39glL9M4aRKpB2BFn-o2Dc1Xn1AQfB28jjf8yfLFAQAF-NrZpwVvoILnzIIfhI4\u0026tag=1-1623987496-h-0-7eejmhhjrp-2dc7514cfdf21726\u0026type=hot\u0026clientCacheKey=3x3tj2s9jykun9m_hd19.mp4\u0026tt=hd19\u0026di=74e31056\u0026bp=10131",
                                    "width": 540
                                }
                            ]
                        }
                    ],
                    "businessType": 2,
                    "mediaType": 2,
                    "playInfo": {},
                    "version": "1.0.0"
                },
                "supportType": 0,
                "tag_hash_type": 1,
                "tags": [],
                "time": "2021-06-17 17:06:52",
                "timestamp": 1623920812591,
                "type": 1,
                "unlike_count": 0,
                "us_c": 0,
                "us_d": 1,
                "us_l": true,
                "user_id": 1398778006,
                "user_name": "河南都市频道",
                "user_sex": "F",
                "verified": true,
                "verifiedDetail": {
                    "description": "河南都市频道官方帐号",
                    "iconType": 2,
                    "musicCompany": false,
                    "newVerified": true,
                    "type": 7
                },
                "videoColdStartType": 0,
                "view_count": 613671
            },
            {
                "ad": {
                    "actionBarColor": "",
                    "actionBarLoadTime": 0,
                    "actionBarRatio": 1,
                    "actionBarStyle": 0,
                    "adCover": null,
                    "adData": null,
                    "adDataV2": {
                        "antiVendorVari": 0,
                        "playedReportRate": [
                            0.75
                        ],
                        "playedReportTime": [
                            10000
                        ],
                        "reportAdLogOfDetailStyle": false
                    },
                    "adDescription": null,
                    "adRerankInfo": {
                        "pos": 4,
                        "rankType": 0
                    },
                    "adType": 3,
                    "adTypeForGap": 0,
                    "alertNetMobile": true,
                    "callbackParam": null,
                    "chargeInfo": "iHBj4llQ7SGatYc4+842cYtWtLbGMgdDwtYupdAvSnq47z2/fpqrpczubmkZnks/71+2maQUXjGZmrhHyKqKyoQX433UI8UEzzS2/xEgyks=",
                    "clientStyleInfo": null,
                    "commentOn": null,
                    "conversionType": 0,
                    "coverId": 0,
                    "creativeId": 0,
                    "deviceInfo": null,
                    "disableFansTopDetailIconClick": false,
                    "displayType": 7,
                    "enableRetainTopAd": false,
                    "enableShowFansTopFlame": true,
                    "extData": "{\"rank_score\":\"709.609409\",\"ksOrderId\":\"6zIy06R8Z9c-4SDNmw-64fa\",\"perception_good_photo_id\":\"\",\"live_reserve_photo_id\":\"\",\"reco_mc_wtr\":\"0.000000\",\"host\":\"ad-rs7-bjxy165.idcyz.hb1.kwaidc.com\",\"p_li\":\"10000\",\"change_live_price\":\"0\",\"browse_type\":\"3\",\"fans_flag\":\"0\",\"ctr\":\"0.043875\",\"cpm\":\"640\",\"delivery_pos\":\"4\",\"is_lowest_cost\":\"0\",\"group_name\":\"star_4\",\"view_type\":\"3\",\"auto_bid\":\"0\",\"ecpc_ecpm\":\"640.000000\",\"prerank_e2e_index\":\"71\",\"wtr\":\"0.001093\",\"ecpm\":\"640.000000\",\"ecpc_raise_bid\":\"0\",\"prerank_ctr\":\"0.000000\",\"photo2live_r\":\"0.003036\",\"engine_delivery_type\":\"1\",\"prerank_score\":\"162.636831\",\"prerank_ecpm\":\"0.000000\",\"payerId\":\"571\",\"isFansTopOperation\":\"true\",\"prerank_photo2live_tr\":\"0.000000\",\"retrieval_type\":\"HUNGRY_RETRIEVAL\",\"idc_region\":\"HB1\",\"prerank_wtr\":\"0.000000\",\"bonus_ecpm\":\"0.000000\",\"unitType\":\"2\",\"page_id\":\"10002\",\"ecpc_bid\":\"1000000\",\"gmv\":\"0.000000\",\"shop_cart_r\":\"0.000000\",\"is_inner_delivery\":\"1\",\"deep_conversion_type\":\"0\",\"order_deal_tr\":\"0.000000\",\"unitId\":\"623828024\",\"has_merchant\":\"0\",\"ps_cmd\":\"/ad/fanstop/ctr:fanstop_ctr_author_related_dense,/ad/fanstop/wtr:fanstop_wtr_2h_jjg,/ad/fanstop/ltr:photo_ltr_wsy_0331,/ad/fanstop/pay:fanstop_merchant_pay_v2_klearn,/ad/fanstop/cmtr:photo_cmtr_wsy_0412,/ad/fanstop/photo_live_ratio:photo2live_tr_ys_seq23,/ad/fanstop/photo_live_ratio:photo2cart_linxiao_senet3v,/ad/fanstop/gmv:p2l_with_native_0603,/ad/fanstop/p2l_order_pay:p2l_orderpay_jjg,/ad/fanstop/negative:fanstop_negative_ysw_on,/ad/fanstop/playtime:fanstop_photo_playtime_0316\",\"prerank_ecpm_index\":\"-1\",\"ueq\":\"60.014897\",\"sub_page_id\":\"10002005\",\"htr\":\"0.000000\",\"is_excl_pos\":\"0\",\"plc_tr\":\"0.002892\",\"asso_raise_bid\":\"0\",\"ltr\":\"0.003475\",\"report_ad_log_of_detail_style\":\"0\",\"delivery_rate\":\"0.162637\",\"rs_source\":\"0\",\"pacing_rate\":\"1.000000\",\"is_search_query_user\":\"\\u0000\",\"reco_fr_wtr\":\"0.000000\"}",
                    "fansTopDetailPageFlameDesc": "",
                    "fansTopDetailPageFlameType": 3,
                    "fansTopFeedFlameType": 4,
                    "h5App": false,
                    "hasNewStyle": 0,
                    "itemHideLabel": true,
                    "labelStyle": 0,
                    "landingPageStyle": 0,
                    "merchantEnhanceDisplay": null,
                    "missionId": 0,
                    "newStyle": false,
                    "orderId": 0,
                    "pageId": 10002,
                    "photoPage": "h",
                    "playEndInfo": null,
                    "preloadLandingPage": false,
                    "score": 0,
                    "showEndOption": false,
                    "smallIcon": null,
                    "sourceType": 4,
                    "styles": null,
                    "subPageId": 10002005,
                    "supConversionType": null,
                    "taskId": 0,
                    "templateType": 0,
                    "title": null,
                    "tracks": [],
                    "url": null,
                    "useH5": false,
                    "usePriorityCard": false,
                    "weakStyle": false
                },
                "adminTags": [],
                "caption": "为了给儿子报仇,爷爷把孙子培养成杀手!#快看影视计划       ",
                "comment_count": 584,
                "comments": [],
                "cover_thumbnail_urls": [
                    {
                        "cdn": "tx2.a.yximgs.com",
                        "url": "http://tx2.a.yximgs.com/ksc1/oe14v411IGJhVN_q3zDQGqemQt6sUfTR_yQEkwlOwA4mOqhoH8NVP3pqjkomHtogc0UDfaA6lmlh1zl2mu_A2vVDHTaVsHlYyEV8t1dtDDaS0F3eSlrV44iXwxQpzUYmX2DFxScNkJjkDjnQo1fGUt9z8VcVARKmskJYmFrXk7WEFoDbfwifymUytlEAMelT.kpg?tag=1-1623987496-h-0-wttzhrv1hl-a2b8642cdf918f66\u0026type=hot\u0026clientCacheKey=3xabi69yp4ibbcm_hd.kpg\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "ali2.a.yximgs.com",
                        "url": "http://ali2.a.yximgs.com/ksc1/oe14v411IGJhVN_q3zDQGqemQt6sUfTR_yQEkwlOwA4mOqhoH8NVP3pqjkomHtogc0UDfaA6lmlh1zl2mu_A2vVDHTaVsHlYyEV8t1dtDDaS0F3eSlrV44iXwxQpzUYmX2DFxScNkJjkDjnQo1fGUt9z8VcVARKmskJYmFrXk7WEFoDbfwifymUytlEAMelT.kpg?tag=1-1623987496-h-1-ely8ier7ta-d9c7b87fe2884993\u0026type=hot\u0026clientCacheKey=3xabi69yp4ibbcm_hd.kpg\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "displayTime": "",
                "duration": 157033,
                "editInfo": {},
                "enableFullScreenPlay": false,
                "enableShareToStory": true,
                "exp_tag": "1_u/2000871708995985745_sl50",
                "extEntry": null,
                "ext_params": {
                    "color": "221E1F",
                    "h": 1280,
                    "interval": 29,
                    "mtype": 3,
                    "sound": 157033,
                    "video": 157033,
                    "w": 720
                },
                "fansTop": true,
                "fansTopDisplayStyle": {
                    "extData": {}
                },
                "fashionEntranceShow": {
                    "bizId": "5xvufkkfpc88vn2",
                    "showType": 3
                },
                "feedSwitches": {
                    "enableExplicitPhotoDescription": false,
                    "enablePlayerPanel": false
                },
                "ff_cover_thumbnail_urls": [
                    {
                        "cdn": "tx2.a.yximgs.com",
                        "url": "http://tx2.a.yximgs.com/ksc1/PokHIsNNrqFAouUgrAZh3diHfZXPLPKP0D5UZKpFKn_E7eIEPiR31KszSNGQdgVl1fiG2eyRRgLJ8LXo2DBHWdtSti4wgzgcgFRJ9Rn9KNXQ1mA8jl3ID7faf9_wIlnPwOfiCN0Uxa1Rouwee-bAFQJn_KqXWerph-D50YtOZWWqcZcptgWC_yzxSYlfo8Vt.kpg?tag=1-1623987496-h-0-c8mywdioba-10f2fee053b67fab\u0026type=hot\u0026clientCacheKey=3xabi69yp4ibbcm_ff.kpg\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "ali2.a.yximgs.com",
                        "url": "http://ali2.a.yximgs.com/ksc1/PokHIsNNrqFAouUgrAZh3diHfZXPLPKP0D5UZKpFKn_E7eIEPiR31KszSNGQdgVl1fiG2eyRRgLJ8LXo2DBHWdtSti4wgzgcgFRJ9Rn9KNXQ1mA8jl3ID7faf9_wIlnPwOfiCN0Uxa1Rouwee-bAFQJn_KqXWerph-D50YtOZWWqcZcptgWC_yzxSYlfo8Vt.kpg?tag=1-1623987496-h-1-ixnz7ar8cy-64eed687e05e813b\u0026type=hot\u0026clientCacheKey=3xabi69yp4ibbcm_ff.kpg\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "following": 0,
                "forward_count": 0,
                "forward_stats_params": {
                    "et": "1_u/2000871708995985745_sl50",
                    "fid": "1704471768"
                },
                "frameStyle": 3,
                "hated": 0,
                "headurls": [
                    {
                        "cdn": "ali-p1.yximgs.com",
                        "url": "http://ali-p1.yximgs.com/uhead/AB/2021/05/26/17/BMjAyMTA1MjYxNzExMTJfMTQ0NzI3ODQ1MV8yX2hkMjUwXzQyMg==_s.jpg"
                    },
                    {
                        "cdn": "js2.a.yximgs.com",
                        "url": "http://js2.a.yximgs.com/uhead/AB/2021/05/26/17/BMjAyMTA1MjYxNzExMTJfMTQ0NzI3ODQ1MV8yX2hkMjUwXzQyMg==_s.jpg"
                    }
                ],
                "isShareCountExp": false,
                "ksOrderId": "6zIy06R8Z9c-4SDNmw-64fa",
                "kwaiId": "laodingdy",
                "like_count": 36490,
                "liked": 0,
                "location": {},
                "longVideo": true,
                "main_mv_urls": [
                    {
                        "cdn": "v1.kwaicdn.com",
                        "url": "http://v1.kwaicdn.com/ksc1/TeDRxcG97zJKU6pKUovol4f5xaHbcf7bQSnZXnZI6GHIFBnLCGKg3ncQLUfKNK7PGmuio1u1HA-tPD24YkZ1Tu6Iij3eYpLyn_eEicr7z9SsoEe0Qpo6_pBp-YRQKTr3g9mZ9JDwjFnTh_ax2ocVBAdgjGz2uc4i9HHz2HFVCirvs2m5_J6Rinzt5-L9GV-U.mp4?pkey=AAUqeC4vzGtmlR5L2L4rfW-wFYP0Ny5k0QEeYzMYcnfDFlVS0GoRoqee1LmhqRRYaGi12wmkZFt7G0j7_iUXnU7AZY9qTprQFZqyVnvQLZyj6v4kBWFiTxGjJRRtZkWZGyM\u0026tag=1-1623987496-h-0-mouifmktty-f260683536d0a4ec\u0026type=hot\u0026clientCacheKey=3xabi69yp4ibbcm_b.mp4\u0026tt=b\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "v2.kwaicdn.com",
                        "url": "http://v2.kwaicdn.com/ksc1/TeDRxcG97zJKU6pKUovol4f5xaHbcf7bQSnZXnZI6GHIFBnLCGKg3ncQLUfKNK7PGmuio1u1HA-tPD24YkZ1Tu6Iij3eYpLyn_eEicr7z9SsoEe0Qpo6_pBp-YRQKTr3g9mZ9JDwjFnTh_ax2ocVBAdgjGz2uc4i9HHz2HFVCirvs2m5_J6Rinzt5-L9GV-U.mp4?pkey=AAWntEY2i2t2BkmTGHJgiKwMs0-dpLeQODiHYiO8lb6XRkRDU10hpwBAK0hsPZJTaWZEU_V0z589woCZgpCUUPtLbeCKcJyQBs92nsiJtIPW9fNB6TQK08ROUbUeFi72vr8\u0026tag=1-1623987496-h-1-ixrjngk0ys-2c8d59dc7b4bc437\u0026type=hot\u0026clientCacheKey=3xabi69yp4ibbcm_b.mp4\u0026tt=b\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "main_mv_urls_h265": [
                    {
                        "cdn": "v1.kwaicdn.com",
                        "url": "http://v1.kwaicdn.com/ksc1/PP6eY1inrsFxnbBYmxgRDuSTh--XM0nBtyhmoeCvGHTaOlhCvp-h8O4pDaacQiG_HSsmih4zpFmuhekGG0JFZSjMIaTBA6HuQl82XaNmgdNphYH_ig1D5YB_qdZeHtooB-ISsslHEcC6jI35b9vlbLR9wZEOfB5J04S4UswkomhiR3ulW_rWQOhB7EUAVlb1.mp4?pkey=AAWErI8n-2zA0udxIi5aqCRLaZejOBVEbE7ajNyGHFxZYnCyUZaB5nM8fFnt4sMNnc8sENy5IDCe-7O3wfzsuzfqZEDq9wOZfESQukIF6LKzQFvKnb8xZvgEXwSgEHKgW9I\u0026tag=1-1623987496-h-0-dhdq02v1ca-ed9a408494d481ba\u0026type=hot\u0026clientCacheKey=3xabi69yp4ibbcm_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "v2.kwaicdn.com",
                        "url": "http://v2.kwaicdn.com/ksc1/PP6eY1inrsFxnbBYmxgRDuSTh--XM0nBtyhmoeCvGHTaOlhCvp-h8O4pDaacQiG_HSsmih4zpFmuhekGG0JFZSjMIaTBA6HuQl82XaNmgdNphYH_ig1D5YB_qdZeHtooB-ISsslHEcC6jI35b9vlbLR9wZEOfB5J04S4UswkomhiR3ulW_rWQOhB7EUAVlb1.mp4?pkey=AAVy34s38AlGCNdrMqynkh5IcqpuCoM6mfnYpZb5-jxpPdhCiYEC--Uy89PM0xBtLpxdfbPDoUGiW_I2_tLCyS0MI6jJPii6MZKQIE9Ym9DKif7vJW3Y9QNpfI_rdaAlotE\u0026tag=1-1623987496-h-1-aedncrllsv-f1cbf831a3209d5b\u0026type=hot\u0026clientCacheKey=3xabi69yp4ibbcm_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "noNeedToRequestPLCApi": true,
                "operationExpTagDisplayInfo": {},
                "photoCommentFriendsVisible": 0,
                "photoDisplayLocationInfo": {
                    "displayHeight": 612,
                    "displayWidth": 1080,
                    "heightRatio": 0.31875,
                    "leftRatio": 0,
                    "photoHeight": 1920,
                    "photoWidth": 1080,
                    "topRatio": 0.26666668,
                    "widthRatio": 1
                },
                "photoTextLocationInfo": {
                    "heightRatio": 0.7270833,
                    "leftRatio": 0.014814815,
                    "topRatio": 0.11927083,
                    "widthRatio": 0.8666667
                },
                "photo_id": 5203627943751632000,
                "photo_status": 0,
                "plcFeatureEntryAbFlag": 0,
                "plcHighPriorityThanBottomEntry": false,
                "plcResponseTime": 1623987496589,
                "profilePagePrefetchInfo": {
                    "profilePageType": 1
                },
                "pureTitle": "为了给儿子报仇,爷爷把孙子培养成杀手! #百亿流量补贴计划    ",
                "recoTags": [],
                "reco_reason": "sl50",
                "sameFrame": {
                    "allow": true,
                    "availableDepth": 7
                },
                "savePlayProgressStrategy": 0,
                "serverExpTag": "feed_photo|5203627943751631488|1447278451|1_u/2000871708995985745_sl50",
                "shareGuide": {
                    "guides": {
                        "default": {
                            "iconType": "wechat"
                        }
                    },
                    "minPlayDurationInSeconds": 15,
                    "photoShareGuide": true,
                    "playTimes": 2,
                    "textDisplayDurationInSeconds": 4
                },
                "share_count": 352,
                "share_info": "userId=3xqmiy5xdibks5q\u0026photoId=3xabi69yp4ibbcm",
                "showProgressEnterDetail": true,
                "similarPhotoStyle": 10,
                "slideCommentEntryDisabled": false,
                "soundTrack": {
                    "artist": "老丁说电影",
                    "audioType": 1,
                    "audioUrls": [
                        {
                            "cdn": "ali2.a.yximgs.com",
                            "url": "http://ali2.a.yximgs.com/bs2/ost/NTE0MzQ2Nzc2NjlfMTQ0NzI3ODQ1MQ.m4a"
                        },
                        {
                            "cdn": "tx2.a.yximgs.com",
                            "url": "http://tx2.a.yximgs.com/bs2/ost/NTE0MzQ2Nzc2NjlfMTQ0NzI3ODQ1MQ.m4a"
                        }
                    ],
                    "avatarUrls": [
                        {
                            "cdn": "tx2.a.yximgs.com",
                            "url": "http://tx2.a.yximgs.com/bs2/ost/NTE0MzQ2Nzc2NjlfMTQ0NzI3ODQ1MQ.jpg"
                        },
                        {
                            "cdn": "ali2.a.yximgs.com",
                            "url": "http://ali2.a.yximgs.com/bs2/ost/NTE0MzQ2Nzc2NjlfMTQ0NzI3ODQ1MQ.jpg"
                        }
                    ],
                    "disableEnhancedEntry": true,
                    "duration": 157,
                    "genreId": 0,
                    "id": "5xvufkkfpc88vn2",
                    "imageUrls": [
                        {
                            "cdn": "ali2.a.yximgs.com",
                            "url": "http://ali2.a.yximgs.com/bs2/ost/NTE0MzQ2Nzc2NjlfMTQ0NzI3ODQ1MQ.jpg"
                        },
                        {
                            "cdn": "tx2.a.yximgs.com",
                            "url": "http://tx2.a.yximgs.com/bs2/ost/NTE0MzQ2Nzc2NjlfMTQ0NzI3ODQ1MQ.jpg"
                        }
                    ],
                    "loudness": -15,
                    "name": "老丁说电影的作品原声",
                    "photoId": 5203627943751632000,
                    "type": 9,
                    "user": {
                        "eid": "3xqmiy5xdibks5q",
                        "following": false,
                        "headurl": "http://ali-p1.yximgs.com/uhead/AB/2021/05/26/17/BMjAyMTA1MjYxNzExMTJfMTQ0NzI3ODQ1MV8yX2hkMjUwXzQyMg==_s.jpg",
                        "headurls": [
                            {
                                "cdn": "ali-p1.yximgs.com",
                                "url": "http://ali-p1.yximgs.com/uhead/AB/2021/05/26/17/BMjAyMTA1MjYxNzExMTJfMTQ0NzI3ODQ1MV8yX2hkMjUwXzQyMg==_s.jpg"
                            },
                            {
                                "cdn": "js2.a.yximgs.com",
                                "url": "http://js2.a.yximgs.com/uhead/AB/2021/05/26/17/BMjAyMTA1MjYxNzExMTJfMTQ0NzI3ODQ1MV8yX2hkMjUwXzQyMg==_s.jpg"
                            }
                        ],
                        "kwaiId": "laodingdy",
                        "profilePagePrefetchInfo": {
                            "profilePageType": 1
                        },
                        "user_id": 1447278451,
                        "user_name": "老丁说电影",
                        "user_sex": "M",
                        "visitorBeFollowed": false
                    }
                },
                "sourcePhotoPage": "h",
                "streamManifest": {
                    "adaptationSet": [
                        {
                            "duration": 157033,
                            "id": 1,
                            "representation": [
                                {
                                    "avgBitrate": 501,
                                    "backupUrl": [
                                        "http://v2.kwaicdn.com/ksc1/PP6eY1inrsFxnbBYmxgRDuSTh--XM0nBtyhmoeCvGHTaOlhCvp-h8O4pDaacQiG_HSsmih4zpFmuhekGG0JFZSjMIaTBA6HuQl82XaNmgdNphYH_ig1D5YB_qdZeHtooB-ISsslHEcC6jI35b9vlbLR9wZEOfB5J04S4UswkomhiR3ulW_rWQOhB7EUAVlb1.mp4?pkey=AAX-rMUFkCcOw0FMkF0P8dKqFwM9gujRLW09ujgrKUJFcnphm7TRN6v_Cct_7QS65d4IQelK8J9R18QNxZCGi2gVCI_4K9LTYiAf_9Uyp6X64yltHCrTRX91iVNDaZaaWZU\u0026tag=1-1623987496-h-1-qnic9akp7r-982d0460cd80ba20\u0026type=hot\u0026clientCacheKey=3xabi69yp4ibbcm_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131"
                                    ],
                                    "bitratePattern": [
                                        1246,
                                        610,
                                        1246,
                                        98,
                                        476
                                    ],
                                    "defaultSelect": false,
                                    "disableAdaptive": false,
                                    "featureP2sp": false,
                                    "fileSize": 9853962,
                                    "frameRate": 25,
                                    "height": 1280,
                                    "hidden": false,
                                    "id": 1,
                                    "maxBitrate": 2300,
                                    "quality": 1.6,
                                    "qualityLabel": "高清",
                                    "qualityType": "720p",
                                    "url": "http://v1.kwaicdn.com/ksc1/PP6eY1inrsFxnbBYmxgRDuSTh--XM0nBtyhmoeCvGHTaOlhCvp-h8O4pDaacQiG_HSsmih4zpFmuhekGG0JFZSjMIaTBA6HuQl82XaNmgdNphYH_ig1D5YB_qdZeHtooB-ISsslHEcC6jI35b9vlbLR9wZEOfB5J04S4UswkomhiR3ulW_rWQOhB7EUAVlb1.mp4?pkey=AAUpAa5fjxtfEr_9-iO1ZWGEw9x9QNxWqJDQ0ecelvn2Q9ZWIbS-q3R5SnKksQnwcgz4Iys1rHgI2LrHbFWDiPCmHoN8npRv5jyNGcfy6NADp7CxQXpOziGi56ZhL9CwZcY\u0026tag=1-1623987496-h-0-bnhzlehqwg-01b8707038e895f6\u0026type=hot\u0026clientCacheKey=3xabi69yp4ibbcm_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131",
                                    "width": 720
                                },
                                {
                                    "avgBitrate": 470,
                                    "backupUrl": [
                                        "http://v2.kwaicdn.com/ksc1/eAnduIsGjdOArSmz2WkIQURewC6llqLiOyM5QXYOnLTar21byj5_l-7q5UQqKuuvtvNa2rRjjsmVa6B0ehRMw_HDKDFzNGcKMPom4GPVyAa1H6YdmViEbH1z08x9sn6LKcUJbDWAleJ4J5qOpDRW8-ohEnytvVUOtjoo3XR9z4LkyizpGlaIPzSJdBrIglPS.mp4?pkey=AAVRz-LZxtoSO9qyRcR5ZXnvslZ_hBlt3lESrLVfzI8fauRORL3OWIeyhUYN80O3WWIBzJqqvxnU_iTxmqibXcacoS8TxtMl4dNsQXGcX-JZi2BEa6AEGUIi5fyQtoDO9Yg\u0026tag=1-1623987496-h-1-sgljpcdsrw-f2a06b32d954828c\u0026type=hot\u0026clientCacheKey=3xabi69yp4ibbcm_hd18.mp4\u0026tt=hd18\u0026di=74e31056\u0026bp=10131"
                                    ],
                                    "bitratePattern": [
                                        795,
                                        461,
                                        1087,
                                        0,
                                        238
                                    ],
                                    "defaultSelect": false,
                                    "disableAdaptive": false,
                                    "featureP2sp": false,
                                    "fileSize": 9228736,
                                    "frameRate": 25,
                                    "height": 1024,
                                    "hidden": false,
                                    "id": 2,
                                    "maxBitrate": 750,
                                    "quality": 1.4,
                                    "qualityLabel": "标清",
                                    "qualityType": "576p",
                                    "url": "http://v1.kwaicdn.com/ksc1/eAnduIsGjdOArSmz2WkIQURewC6llqLiOyM5QXYOnLTar21byj5_l-7q5UQqKuuvtvNa2rRjjsmVa6B0ehRMw_HDKDFzNGcKMPom4GPVyAa1H6YdmViEbH1z08x9sn6LKcUJbDWAleJ4J5qOpDRW8-ohEnytvVUOtjoo3XR9z4LkyizpGlaIPzSJdBrIglPS.mp4?pkey=AAXQx-OUEOfB8ukyS7-mpDMVg-MsMq1_mWo0alHhViOtPzbxm44KKSETxo0YE9tdk23dzzUeZhMHdXj_oSg4e0OjjP25M78pn4Ke6m_bka8fvn1y3IbuyNOzaesXkp3Yxoc\u0026tag=1-1623987496-h-0-acupi1gdx0-dd23e4766b571487\u0026type=hot\u0026clientCacheKey=3xabi69yp4ibbcm_hd18.mp4\u0026tt=hd18\u0026di=74e31056\u0026bp=10131",
                                    "width": 576
                                },
                                {
                                    "avgBitrate": 362,
                                    "backupUrl": [
                                        "http://v2.kwaicdn.com/ksc1/F_SJrDjmpYiNgpQKKmd2evs9NOJUp1x2fOjwSbg82Q6IuCmEUWqEu5e_uvCqKHr7LGLiNIg3IUarOzifiGD0pBVYkH0cjffkn2k43599rFt5GMETIGlfzAcYUYqjv7Cg1FeZ9EDvoWlPejbOa_HXBn_zfZ-QJGeE9XRnfj7LCGXSU3msCy20w6R9ogOEbVip.mp4?pkey=AAU_suquDyPqDmKwnJKuiR_uE9s42X-RZ-wmqXrJ86t92T3rLSaYEH71_hFtWVrMFnEo9jXCJpFON-eNX6ntt_CnDTLwADSH1YZ8osdhhUkOWqyw9tQKl14euXgc6aXImJY\u0026tag=1-1623987496-h-1-0f5tqdvam2-6e71e450ef8ec597\u0026type=hot\u0026clientCacheKey=3xabi69yp4ibbcm_hd19.mp4\u0026tt=hd19\u0026di=74e31056\u0026bp=10131"
                                    ],
                                    "bitratePattern": [
                                        519,
                                        354,
                                        643,
                                        1,
                                        136
                                    ],
                                    "defaultSelect": false,
                                    "disableAdaptive": false,
                                    "featureP2sp": false,
                                    "fileSize": 7121331,
                                    "frameRate": 25,
                                    "height": 960,
                                    "hidden": false,
                                    "id": 3,
                                    "maxBitrate": 400,
                                    "quality": 1.2,
                                    "qualityLabel": "流畅",
                                    "qualityType": "480p",
                                    "url": "http://v1.kwaicdn.com/ksc1/F_SJrDjmpYiNgpQKKmd2evs9NOJUp1x2fOjwSbg82Q6IuCmEUWqEu5e_uvCqKHr7LGLiNIg3IUarOzifiGD0pBVYkH0cjffkn2k43599rFt5GMETIGlfzAcYUYqjv7Cg1FeZ9EDvoWlPejbOa_HXBn_zfZ-QJGeE9XRnfj7LCGXSU3msCy20w6R9ogOEbVip.mp4?pkey=AAWEamF3fQT09wvAcwJ7DPmQ6ksmJXLqv8IDbX9tgyEDHB1sQtuMqH6b04dH7Yo9BRqAjEQJnbXQ2GPPBY7-_2oNSz9hq7FplIgLrPTn3RyA0XTJiuzwKlyWLo0B7G_Jguc\u0026tag=1-1623987496-h-0-cz6u1p8zjc-38c78a592c62df20\u0026type=hot\u0026clientCacheKey=3xabi69yp4ibbcm_hd19.mp4\u0026tt=hd19\u0026di=74e31056\u0026bp=10131",
                                    "width": 540
                                }
                            ]
                        }
                    ],
                    "businessType": 2,
                    "mediaType": 2,
                    "playInfo": {},
                    "version": "1.0.0"
                },
                "supportType": 0,
                "tag_hash_type": 1,
                "tags": [
                    {
                        "id": 14780679,
                        "ksOrderId": "HTBDC-Z7QLRR9YGB2L",
                        "name": "快手助我上热门",
                        "rich": true,
                        "tag": "快手助我上热门"
                    }
                ],
                "time": "2021-06-14 22:23:37",
                "timestamp": 1623680617733,
                "type": 1,
                "unlike_count": 0,
                "us_c": 0,
                "us_d": 0,
                "us_l": true,
                "user_id": 1447278451,
                "user_name": "老丁说电影",
                "user_sex": "M",
                "verified": false,
                "videoColdStartType": 0,
                "view_count": 2921475
            },
            {
                "ad": {
                    "actionBarColor": "e52d2d",
                    "actionBarLoadTime": 3000,
                    "actionBarRatio": 1,
                    "actionBarStyle": 1,
                    "adCover": {
                        "coverUrls": [
                            {
                                "url": "http://tx2.a.yximgs.com/udata/pkg/cover_compose_207b4517a75d481dbb258b6869a1847e.kpg"
                            },
                            {
                                "url": "http://ali2.a.yximgs.com/udata/pkg/cover_compose_207b4517a75d481dbb258b6869a1847e.kpg"
                            }
                        ],
                        "height": 640,
                        "width": 360
                    },
                    "adData": {
                        "cover": {
                            "bgUrl": "https://tx2.a.yximgs.com/upic/2021/02/08/11/BMjAyMTAyMDgxMTE4NDJfMTQ0NzUxMTMyOF80Mzc5OTI2NDIwNF8wXzM=_B131ad0b045f53daffda2f37184b1ad40.jpg?tag=1-1619060587-unknown-0-knzljywber-657a4cb6df728804\u0026clientCacheKey=3xxsyqyyh5ef6ae.jpg\u0026di=e993365\u0026bp=10000",
                            "coverSticker": {
                                "stickerLocation": 3,
                                "stickerStyle": 2
                            },
                            "dynamicPackageList": "",
                            "stickerTitle": "登录送神宠+充值自带4折!"
                        },
                        "useTrackType": 0
                    },
                    "adDataV2": {
                        "abTestForAdForms": "{\"enable_appinstall_webcard_info\": false,\"enable_nebula_slide_landingpage\": true}",
                        "actionBarInfo": {
                            "actionBarColor": "e52d2d",
                            "actionBarLoadTime": 5000,
                            "actionBarStyle": 1,
                            "displayInfo": "立即下载",
                            "downloadedActionBarLoadTime": 3000,
                            "realShowDelayTime": 7000,
                            "withoutFloatingToComment": true
                        },
                        "adCoverPageButtonControl": 2,
                        "adPageButtonControl": 2,
                        "antiVendorVari": 0,
                        "apkMd5Info": {
                            "apkMd5s": [
                                "fa0906cb41d1e4f4405b2106b9ffe216"
                            ],
                            "unexpectedMd5Strategy": 0
                        },
                        "captionAdvertisementInfo": {
                            "productIconUrl": "http://static.yximgs.com/udata/pkg/94b10bbb43b8432d88e337d5fcad277c.png",
                            "productName": "小7手游"
                        },
                        "commentActionBarInfo": {
                            "actionBarColor": "e52d2d",
                            "actionBarLocation": 2,
                            "actionBarStyle": 2,
                            "displayInfo": "立即下载"
                        },
                        "convertInfo": {
                            "convertId": 0,
                            "convertType": 0
                        },
                        "coverStickerInfo": {
                            "bgUrl": "https://tx2.a.yximgs.com/upic/2021/02/08/11/BMjAyMTAyMDgxMTE4NDJfMTQ0NzUxMTMyOF80Mzc5OTI2NDIwNF8wXzM=_B131ad0b045f53daffda2f37184b1ad40.jpg?tag=1-1619060587-unknown-0-knzljywber-657a4cb6df728804\u0026clientCacheKey=3xxsyqyyh5ef6ae.jpg\u0026di=e993365\u0026bp=10000",
                            "coverSticker": {
                                "stickerLocation": 3,
                                "stickerStyle": 2
                            },
                            "stickerTitle": "登录送神宠+充值自带4折!"
                        },
                        "enableSka": false,
                        "extraDisplayInfo": {
                            "exposeTagInfoList": [
                                {
                                    "canClick": true,
                                    "text": "爆款游戏",
                                    "url": ""
                                },
                                {
                                    "canClick": true,
                                    "text": "怀旧耐玩",
                                    "url": ""
                                }
                            ],
                            "showStyle": 3
                        },
                        "h5Data": "{\"privacyInfo\":{\"appInfo\":{\"appName\":\"小7手游\",\"appVersion\":\"4.47.0\",\"packageSize\":44032136,\"updateTime\":1621318055407,\"developer\":\"深圳尚米网络技术有限公司\"},\"appPermissions\":[{\"permissionName\":\"android.p_CALENDAR\",\"permissionDetail\":\"允许程序写入日程,但不可读取\"},{\"permissionName\":\"android.permission.WRITE_EXTERNAL_STORAGE\",\"permissionDetail\":\"允许程序写入外部存储,如SD卡上写文件\"},{\"permissionName\":\"android.permission.READ_PHONE_STATE\",\"per,{\"permissionName\":\"android.permission.CAMERA\",\"permissionDetail\":\"允许程序访问摄像头进行拍照\"},{\"permissionName\":\"android.permission.READ_CALENDAR\",\"permissionDetail\":\"允许程序读取用户的日程信息\"},{\"permissionName\":\"android.permission.READ_EsionDetail\":\"允许程序可以读取设备外部存储空间\"}],\"privacyPolicyUrl\":\"https://user.x7sy.com/config/reg_agreement\"}}",
                        "iosAppId": "",
                        "itemClickUrls": {
                            "actionBarClickUrls": {
                                "appLink": "",
                                "url": ""
                            }
                        },
                        "landingPageInfo": {
                            "commentTagVisible": true,
                            "loadUrlInteractionType": 1
                        },
                        "negativeMenuInfo": {
                            "detailNegativeMenu": [
                                {
                                    "menuId": 10,
                                    "subMenuIds": [
                                        2,
                                        3,
                                        4
                                    ]
                                },
                                {
                                    "menuId": 6,
                                    "subMenuIds": [
                                        7,
                                        8
                                    ]
                                },
                                {
                                    "menuId": 9
                                },
                                {
                                    "menuId": 5
                                }
                            ],
                            "feedNegativeMenu": [
                                {
                                    "menuId": 1
                                },
                                {
                                    "menuId": 7
                                },
                                {
                                    "menuId": 8
                                },
                                {
                                    "menuId": 5
                                }
                            ],
                            "negativeMenus": [
                                {
                                    "clickAction": 2,
                                    "icon": "https://static.yximgs.com/udata/pkg/ks-dark/dislike_icon_uninterested_normal.png",
                                    "id": 1,
                                    "name": "不感兴趣",
                                    "url": ""
                                },
                                {
                                    "clickAction": 2,
                                    "icon": "",
                                    "id": 2,
                                    "name": "质量差",
                                    "url": ""
                                },
                                {
                                    "clickAction": 2,
                                    "icon": "",
                                    "id": 3,
                                    "name": "推荐重复",
                                    "url": ""
                                },
                                {
                                    "clickAction": 2,
                                    "icon": "",
                                    "id": 4,
                                    "name": "标题党 骗点击",
                                    "url": ""
                                },
                                {
                                    "clickAction": 1,
                                    "icon": "https://static.yximgs.com/udata/pkg/ks-dark/dislike_icon_adxingqu_normal.png",
                                    "id": 5,
                                    "name": "设置感兴趣的广告",
                                    "url": "https://ad.e.kuaishou.com/pages/negative-feedback"
                                },
                                {
                                    "clickAction": 3,
                                    "icon": "https://static.yximgs.com/udata/pkg/ks-dark/shield_ad_cat_icon.png",
                                    "id": 6,
                                    "name": "屏蔽此类广告",
                                    "url": ""
                                },
                                {
                                    "clickAction": 2,
                                    "icon": "https://static.yximgs.com/udata/pkg/ks-dark/dislike_icon_yiji_normal.png",
                                    "id": 7,
                                    "name": "不喜欢: 小7手游",
                                    "url": ""
                                },
                                {
                                    "clickAction": 2,
                                    "icon": "https://static.yximgs.com/udata/pkg/ks-dark/dislike_icon_similarpost_normal.png",
                                    "id": 8,
                                    "name": "不喜欢: 综合游戏平台广告",
                                    "url": ""
                                },
                                {
                                    "clickAction": 2,
                                    "icon": "https://static.yximgs.com/udata/pkg/ks-dark/report_ad_cat_icon.png",
                                    "id": 9,
                                    "name": "举报此广告",
                                    "url": ""
                                },
                                {
                                    "clickAction": 3,
                                    "icon": "https://static.yximgs.com/udata/pkg/ks-dark/dislike_icon_uninterested_normal.png",
                                    "id": 10,
                                    "name": "不感兴趣",
                                    "url": ""
                                },
                                {
                                    "clickAction": 3,
                                    "icon": "https://static.yximgs.com/udata/pkg/ks-dark/floating_layer_dislike_icon.png",
                                    "id": 11,
                                    "name": "不感兴趣"
                                },
                                {
                                    "clickAction": 3,
                                    "desc": "减少此类内容",
                                    "icon": "https://static.yximgs.com/udata/pkg/ks-dark/menu_layer_dislike_icon.png",
                                    "id": 12,
                                    "name": "不感兴趣"
                                },
                                {
                                    "clickAction": 2,
                                    "id": 13,
                                    "name": "不感兴趣该内容"
                                },
                                {
                                    "clickAction": 1,
                                    "icon": "https://static.yximgs.com/udata/pkg/ks-dark/floating_layer_report_icon.png",
                                    "id": 14,
                                    "name": "举报",
                                    "url": "https://activity.e.kuaishou.com/pages/report?layoutType=4"
                                },
                                {
                                    "clickAction": 1,
                                    "desc": "低俗色情、虚假诈欺等",
                                    "icon": "https://static.yximgs.com/udata/pkg/ks-dark/menu_layer_report_icon.png",
                                    "id": 15,
                                    "name": "举报",
                                    "url": "https://activity.e.kuaishou.com/pages/report?layoutType=4"
                                },
                                {
                                    "clickAction": 2,
                                    "icon": "https://static.yximgs.com/udata/pkg/ks-dark/floating_layer_reason_icon.png",
                                    "id": 16,
                                    "name": "为何看到此广告",
                                    "url": "https://activity.e.kuaishou.com/pages/report/why-show-ad-dialog?layoutType=4"
                                },
                                {
                                    "clickAction": 1,
                                    "icon": "https://static.yximgs.com/udata/pkg/ks-dark/menu_layer_reason_icon.png",
                                    "id": 17,
                                    "name": "为何看到此广告",
                                    "url": "https://activity.e.kuaishou.com/pages/report/why-show-ad-full?layoutType=4"
                                }
                            ],
                            "negativeStyle": 0,
                            "thanosDetailNegativeMenu": [
                                {
                                    "menuId": 1
                                },
                                {
                                    "menuId": 7
                                },
                                {
                                    "menuId": 8
                                },
                                {
                                    "menuId": 5
                                }
                            ]
                        },
                        "originStyleInfo": {
                            "actionBarBgColor": "e52d2d",
                            "actionBarDesc": "来小7手游玩西游女儿国,登录送神宠+充值自带4折!",
                            "actionBarTagColor": "d81a1a",
                            "actionBarText": "立即下载",
                            "appIconUrl": "http://static.yximgs.com/udata/pkg/94b10bbb43b8432d88e337d5fcad277c.png",
                            "appName": "小7手游",
                            "appScore": "0",
                            "consultId": "0",
                            "photoUserInfo": {},
                            "productIconUrl": "http://static.yximgs.com/udata/pkg/94b10bbb43b8432d88e337d5fcad277c.png",
                            "productName": "小7手游",
                            "secondIndustryName": "综合游戏平台",
                            "showPlayEndInfo": true
                        },
                        "playEndInfo": {
                            "actionBarColor": "e52d2d",
                            "playEndStyle": 1,
                            "showEndOption": true,
                            "tagColor": "c61818"
                        },
                        "playedReportRate": [
                            0.75
                        ],
                        "playedReportTime": [
                            10000
                        ],
                        "posId": "26",
                        "privacyOption": {
                            "appDisplayText": "应用名:小7手游;版本号:4.47.0;应用大小:41.0M;开发者:深圳尚米网络技术有限公司",
                            "appInfo": {
                                "appName": "小7手游",
                                "appVersion": "4.47.0",
                                "developer": "深圳尚米网络技术有限公司",
                                "packageSize": 44032136,
                                "updateTime": 1621318055407
                            },
                            "displayPosition": 2,
                            "links": [
                                {
                                    "linkText": "应用权限",
                                    "linkUrl": "https://activity.e.kuaishou.com/privacyProtect-v2/"
                                },
                                {
                                    "linkText": "隐私政策",
                                    "linkUrl": "https://user.x7sy.com/config/reg_agreement"
                                }
                            ],
                            "photoRiskTipUrl": "https://activity.e.kuaishou.com/privacyProtect/",
                            "riskTipText": "您访问的网站由第三方提供",
                            "showH5RiskTip": true,
                            "showPhotoRiskTip": true
                        },
                        "webviewType": 0
                    },
                    "adDescription": null,
                    "adRerankInfo": {
                        "pos": 5,
                        "rankType": 1
                    },
                    "adType": 1,
                    "adTypeForGap": 1,
                    "alertNetMobile": false,
                    "appIconUrl": "http://static.yximgs.com/udata/pkg/94b10bbb43b8432d88e337d5fcad277c.png",
                    "appName": "小7手游.apk",
                    "callbackParam": null,
                    "chargeInfo": "IE+mk4l94c7fS1jfUMnClJyo1VIMUBaE9E06DBtEEJyYUDUpVEQTVLlAHt/uZSIj8m9EWMNRuW5pkUTkhkH4lfPkzKwFjSSBN+pprddGzfbsZDJEkMc+yljj7FIED+Dhsazrw6N7+dfdJd90lk8OtMScdruI6jyYGzurua+yooEL4t3L0pip/YQoTnYZSmj5yrYawKMHS7o6P4MWHJs8ug0kjWL2+adrGPG3V91jWCFW+Z3tqY0AX/XW+7L3vOJWHEAn8t7ZAJBDeAON3XPJsCATfPK01B8SrncQ+TDl6i20RNZFBGL2dGqp/Ohd+RROs8px/cb2i8BM+4fY0FbmOt4YPrZyXaSLW/6/nRLkhdiTakzjiu1OP69M4LvMAkhN7WwbcNuEjK9S62RiyTTnK9G9+riHLMLQpzIG3x8ph5Q6HPxbMpBOIujLnQyRA2NxqB+AQoLDdgxluAaVmG+/Z5BY+nyBj4B9FzsuOd4HccQW0OIzUqt3ctA2+3VCAucaBfmnbmr0fko1b+Js+1qBFpsvO9B//HnvVCbIYE5KbDMFoYGclB4JXTWE2Ja3I1OqxgBhFJXk4NT77KqCR42TV2cmA/kYIrbQpUO27fx8lNiIwTBcOIrGeMhLMZW1EHq/s18N4svHqKNb3HPuaSZHCMFRng5k6tyO0CIfAxzzYcSG2hjTngNzaV1Nje07o8sN8mDev9TfyEXVVf1wlxyatKPJq7ODSls+k/J3c2kGTPA9bBDM9Ufz8YRqhcTXB8V+PQFfM3BYTVtheKXn3eAJQvJSJJTqqkiYtc/Krmj17kl/KRXZn0AO8K7ntn+3QvvMDH8qBpqmXhlM9sv7Lx6rDU//2k9DVXKx/8J+ItgWgHqeGGAXEwuTZq171zydNy7aH1/jqK8EL0lba7qPYFVb7BDenHg0xshYP5VY+19Q8jeyGspOgbOlNA3hHumASxNiwMyX7SybUzAr4L4B0Yd6hszclSb4zdnr6wShIF+XHeW1WiKMP9d8ptFiITAbia4o+Kx6qAx1fYwUcEqRGpfmngqLMkmykYrZS7b1r9AHJxQDaVcklS44glvrlgxI11avGl3LdqED3ajJ4Th6neyERS0lYFln+my0sGEJZzn0/Eg+eSexskh0YuhNQxnAd5yBNKNn2C62XFvmWnbIy4gbuZKVRt+VBJ3KhOn/6vbsPkU15QxftjOvuADnR6HfluDUeNNT4Lcsnh82OA2meWjeLtqTypqwTt9wtJ5P4qcV6fDzism4XXkEzCZlauShqhQ5PuIgV0oJOao1PaWRvrqQ8/dadfkwQHLig+bGWz9tLBY3+61QPQJ81N/3cGisdJ8TnAfiom83h4T5xE0B0oRBiOmJvwUoVHhStleJhvad5IMeDc5s7P7WGdCenwKev9JGnYpfUMhwQUz07rqRhK1DHbBkfZYLaMFXK62ZQ1QZom7kUp0odcmZatOkgUQeyoPn8omf6NkeZyvH5PgkgiKsWSLjjKAP6i4YhmnJ+vI/2VQD/vFVFC1Wt+do/WK5GWlPCUPvOzoG2zaKHXfJkr/4nYAK0io1ST63h45VBdDra1zbZmdzY2dDYoZ9EQ1P8w7fdTZ+KztZGmxYBc85jUgBR+R9qM425J4pClrTQZ29Xjysgo/YYbNd2BJpOZbYcngwOGeqZbsTqfTtT+xIw9dhsRKkcaCJRnUdzPaX+2CunzL/rIeZrcvDKtd02DHyxFosrhXG2djju3LQvE7JamXQy6Pprm9nNvAmMctMjTFE/WQOE9E9XHDBz3p0DcaPDwElF7gPwm2S/wB3BHAJRMMmdOCyEo2pmlBMRCYfmWEX7kozKb2MiDQSD+HHR2yXnJk2mBb86x+krOlm9r6Ms0623ym/g6yBoLMJC2mKuvZB5icTBlreLJel6d24LqDbc2Eea9TlxhZyis4xlGF6N7/z+A4zOr1fvXAwixnHPVQGLHSur+l6P3LHd319LaAUup4GR/q5CixevFTklfpSipKaA2iAfbkscBOzyarDhmfJOCxpT8VoshI7V/O65MwoNOfwP22ajzgCpZofj6mbj5ys3uhiae2MB9sihnMqyC875BjZNOT0+ad+NkQZqrs+fpwp5xFLupzAv4W+C5ZbIx+o2wudRTHe2J3I6NFjLVoGR4X74jLyUQwpy09EwzsqdxZmGTQS/bOuxiuDzVpltFcZ+3Xy7JCRf1XUvsEe7lpqQH1iXHegc5E7CEw0UIcA0V8Il22I/Ewo+iOVZN27iCNHqX09QKE5XrSihw8uGdLDDer5m4tuKlMW/vVg8zrf/XD7cF2B7DfhkYUzCOJK6NKVAvaBUCJzBMl3kdRBWipnFZ8=",
                    "clientStyleInfo": {
                        "adMaterialFeatures": null,
                        "landingPageActionbarInfo": {
                            "actionBarDisplayInfo": "推荐",
                            "actionBarShowTime": 3000,
                            "popLandingPageHeightPct": 30
                        }
                    },
                    "commentOn": true,
                    "conversionType": 1,
                    "coverId": 1390156966,
                    "creativeId": 4378878633,
                    "deviceInfo": null,
                    "disableFansTopDetailIconClick": false,
                    "displayType": 2,
                    "enableRetainTopAd": false,
                    "enableShowFansTopFlame": false,
                    "fansTopDetailPageFlameDesc": "",
                    "fansTopDetailPageFlameType": 3,
                    "fansTopFeedFlameType": 4,
                    "h5App": false,
                    "hasNewStyle": 0,
                    "itemHideLabel": false,
                    "labelStyle": 0,
                    "landingPageStyle": 0,
                    "manuUrls": [],
                    "merchantEnhanceDisplay": null,
                    "missionId": 0,
                    "newStyle": true,
                    "orderId": 0,
                    "packageName": "com.smwl.x7market",
                    "pageId": 10002,
                    "playEndInfo": null,
                    "preloadLandingPage": false,
                    "score": 0,
                    "showEndOption": true,
                    "smallIcon": null,
                    "sourceDescription": "广告",
                    "sourceType": 1,
                    "styles": null,
                    "subPageId": 10002005,
                    "subscriptDescription": "广告",
                    "supConversionType": null,
                    "taskId": 0,
                    "templateType": 1,
                    "title": "立即下载",
                    "tracks": [
                        {
                            "type": 1,
                            "url": "https://api.x7sy.com/api_helper/record_gif_show?AID=232547217\u0026CID=4378878633\u0026DID=55283139\u0026DNAME=19951\u0026imeiMD5=__IMEI2__\u0026idfaMD5=__IDFA2__\u0026ip=116.227.16.86\u0026callback=http%3A%2F%2Fad.partner.gifshow.com%2Ftrack%2Factivate%3Fcallback%3DsEJ_lNEdwz_FUS3dCxm39lJkW5E-mSiP39XyFWC-MrFAqdbJs8O8HnXorpnYegOChkKl-EU8mXk1Gmq70Y9xax685tzJtgy769GBY1KZkGtiKxUZyrmA6Fxq2E11dzVbWseTcFj_Dp5ViIJBGw-vWZJxuepoVYUt74SgABr5AW6CtdRiZAs4mTgBPQ83rdjy\u0026OAID=__OAID__\u0026promuser_id=19951",
                            "urlOperationType": 1
                        }
                    ],
                    "url": "https://dl1.x7sy.com/market/tg/android/41/8022/x7market_19951_re.apk",
                    "useH5": false,
                    "usePriorityCard": false,
                    "weakStyle": false
                },
                "adminTags": [],
                "caption": "来小7手游玩西游女儿国,登录送神宠+充值自带4折!",
                "comment_count": 33,
                "comments": [],
                "cover_thumbnail_urls": [
                    {
                        "url": "http://tx2.a.yximgs.com/udata/pkg/cover_compose_207b4517a75d481dbb258b6869a1847e.kpg"
                    },
                    {
                        "url": "http://ali2.a.yximgs.com/udata/pkg/cover_compose_207b4517a75d481dbb258b6869a1847e.kpg"
                    }
                ],
                "displayTime": "",
                "duration": 20680,
                "editInfo": {},
                "enableFullScreenPlay": false,
                "exp_tag": "1_u/2000871708995985745_sl52",
                "extEntry": null,
                "ext_params": {
                    "color": "080403",
                    "h": 1280,
                    "interval": 25,
                    "mtype": 3,
                    "sound": 20693,
                    "video": 20680,
                    "w": 720
                },
                "feedSwitches": {
                    "enableExplicitPhotoDescription": false,
                    "enablePlayerPanel": false
                },
                "following": 0,
                "forward_count": 0,
                "forward_stats_params": {
                    "et": "1_u/2000871708995985745_sl52",
                    "fid": "1704471768"
                },
                "frameStyle": 3,
                "hated": 0,
                "headurls": [
                    {
                        "cdn": "ali-p1.yximgs.com",
                        "url": "http://ali-p1.yximgs.com/uhead/AB/2019/12/20/16/BMjAxOTEyMjAxNjMzNTNfMTQ0NzUxMTMyOF8yX2hkMTE2Xzc2_s.jpg"
                    },
                    {
                        "cdn": "js2.a.yximgs.com",
                        "url": "http://js2.a.yximgs.com/uhead/AB/2019/12/20/16/BMjAxOTEyMjAxNjMzNTNfMTQ0NzUxMTMyOF8yX2hkMTE2Xzc2_s.jpg"
                    }
                ],
                "isShareCountExp": false,
                "like_count": 461,
                "liked": 0,
                "location": {},
                "main_mv_urls": [
                    {
                        "cdn": "v1.kwaicdn.com",
                        "url": "http://v1.kwaicdn.com/ksc1/Y0X75-DBNtlGOFPnh0B0Sdc427Bp6WVCwDO6RTeoztiikvsFir6WMdIz_2302zCwIg5hlQ8H2kAchqJaolPQA_u3mEIP2e1sEeCmUfuE8F3Zx1NR4fPiOwc2R2cvFU3YS71x1f_aKSsJdKelmj1Jq0jMTBYiUS9Glx-lssu3ptW8NjGSlsI24V6H_Nvixosl.mp4?pkey=AAV0kHYEERCadJAmeUB-yxey8FHVAbfbF936nuR-_oiMD4VIx_QnomEb_akKWwKWzOkSjFsQpw3pKYcXxEJglaJRjpRYFFt3ZNmxZgY5u98Gxq6PZ1QA-fKgaTofIIJIncc\u0026tag=1-1623987496-h-0-urcazze6wp-9dcf9b30782250dc\u0026type=hot\u0026clientCacheKey=3xxab2xw45xqbrs_b.mp4\u0026tt=b\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "v2.kwaicdn.com",
                        "url": "http://v2.kwaicdn.com/ksc1/Y0X75-DBNtlGOFPnh0B0Sdc427Bp6WVCwDO6RTeoztiikvsFir6WMdIz_2302zCwIg5hlQ8H2kAchqJaolPQA_u3mEIP2e1sEeCmUfuE8F3Zx1NR4fPiOwc2R2cvFU3YS71x1f_aKSsJdKelmj1Jq0jMTBYiUS9Glx-lssu3ptW8NjGSlsI24V6H_Nvixosl.mp4?pkey=AAUNLGPZjc5VStEhxyM4CIlByp3ZSBqJv8TAXd_r6upesS1aMKB_WY4DCLl2qlUDNB4pfm6Fkou1z1X8N9BVga5NhAGxAgbTOpzBfmas5JmXm6nIT1p4LYJfYMBUyloP_6k\u0026tag=1-1623987496-h-1-nqxwhu2mkp-3e86f3f408129f75\u0026type=hot\u0026clientCacheKey=3xxab2xw45xqbrs_b.mp4\u0026tt=b\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "noNeedToRequestPLCApi": true,
                "operationExpTagDisplayInfo": {},
                "override_cover_size": {
                    "height": 640,
                    "width": 360
                },
                "override_cover_thumbnail_urls": [
                    {
                        "url": "http://tx2.a.yximgs.com/udata/pkg/cover_compose_207b4517a75d481dbb258b6869a1847e.kpg"
                    },
                    {
                        "url": "http://ali2.a.yximgs.com/udata/pkg/cover_compose_207b4517a75d481dbb258b6869a1847e.kpg"
                    }
                ],
                "photoCommentFriendsVisible": 0,
                "photoTextLocationInfo": {
                    "heightRatio": 0,
                    "leftRatio": 0,
                    "topRatio": 0,
                    "widthRatio": 0
                },
                "photo_id": 5219390543541337000,
                "photo_status": 0,
                "plcFeatureEntryAbFlag": 0,
                "plcHighPriorityThanBottomEntry": false,
                "plcResponseTime": 0,
                "profilePagePrefetchInfo": {
                    "profilePageType": 2
                },
                "recoTags": [],
                "reco_reason": "sl52",
                "savePlayProgressStrategy": 0,
                "serverExpTag": "feed_photo|5219390543541336965|1447511328|1_u/2000871708995985745_sl52",
                "shareGuide": {
                    "guides": {
                        "default": {
                            "iconType": "wechat"
                        }
                    },
                    "minPlayDurationInSeconds": 15,
                    "photoShareGuide": true,
                    "playTimes": 2,
                    "textDisplayDurationInSeconds": 4
                },
                "share_count": 7,
                "share_info": "userId=3xhwpwftn7k54wq\u0026photoId=3xxab2xw45xqbrs",
                "slideCommentEntryDisabled": false,
                "sourcePhotoPage": "h",
                "streamManifest": {
                    "adaptationSet": [
                        {
                            "duration": 20680,
                            "id": 1,
                            "representation": [
                                {
                                    "avgBitrate": 1800,
                                    "backupUrl": [
                                        "http://v2.kwaicdn.com/ksc1/Y0X75-DBNtlGOFPnh0B0Sdc427Bp6WVCwDO6RTeoztiikvsFir6WMdIz_2302zCwIg5hlQ8H2kAchqJaolPQA_u3mEIP2e1sEeCmUfuE8F3Zx1NR4fPiOwc2R2cvFU3YS71x1f_aKSsJdKelmj1Jq0jMTBYiUS9Glx-lssu3ptW8NjGSlsI24V6H_Nvixosl.mp4?pkey=AAWK336gDn_hrsMn5Q9rzWYAmFZ4Lhnhu5Nmo88zqgnH4ku50VhBlQSG8W5Qvemh49P2WMN6yYwdx2rLdHgdZ5-VLdTdCqnFQqGeiPcsyX4ZsIHtKWLpsqa8wZngln8OLEQ\u0026tag=1-1623987496-h-1-lbdguwu4im-9f819e39dbd90c11\u0026type=hot\u0026clientCacheKey=3xxab2xw45xqbrs_b.mp4\u0026tt=b\u0026di=74e31056\u0026bp=10131"
                                    ],
                                    "defaultSelect": false,
                                    "disableAdaptive": false,
                                    "featureP2sp": false,
                                    "frameRate": 25,
                                    "height": 1024,
                                    "hidden": false,
                                    "id": 1,
                                    "maxBitrate": 1800,
                                    "quality": 1,
                                    "qualityLabel": "",
                                    "qualityType": "576p",
                                    "url": "http://v1.kwaicdn.com/ksc1/Y0X75-DBNtlGOFPnh0B0Sdc427Bp6WVCwDO6RTeoztiikvsFir6WMdIz_2302zCwIg5hlQ8H2kAchqJaolPQA_u3mEIP2e1sEeCmUfuE8F3Zx1NR4fPiOwc2R2cvFU3YS71x1f_aKSsJdKelmj1Jq0jMTBYiUS9Glx-lssu3ptW8NjGSlsI24V6H_Nvixosl.mp4?pkey=AAWlDloE8Y3wvU1-j8j2N_glxGDLrr-HCZnaOkGrzZ2kivlHurjXjVEvtm2KJ2N5XVC4AudEUqcvzGtjeBjS_aSAT1NT3AV2gL334Lq1vUt5_RF2a1I8DntVt61oNQc-Q7U\u0026tag=1-1623987496-h-0-2hho79xlju-757487569c45ae80\u0026type=hot\u0026clientCacheKey=3xxab2xw45xqbrs_b.mp4\u0026tt=b\u0026di=74e31056\u0026bp=10131",
                                    "width": 576
                                }
                            ]
                        }
                    ],
                    "businessType": 2,
                    "mediaType": 2,
                    "playInfo": {},
                    "version": "1.0.0"
                },
                "supportType": 0,
                "tag_hash_type": 1,
                "tags": [],
                "time": "2021-05-18 14:49:24",
                "timestamp": 1621320564119,
                "type": 1,
                "unlike_count": 0,
                "us_c": 0,
                "us_d": 0,
                "user_id": 1447511328,
                "user_name": "爱玩游戏的小7菌",
                "user_sex": "F",
                "verified": false,
                "videoColdStartType": 0,
                "view_count": 599729
            },
            {
                "adminTags": [],
                "caption": "你们发现守约了吗? #王者荣耀 #王者荣耀热门",
                "comment_count": 44,
                "comments": [],
                "cover_thumbnail_urls": [
                    {
                        "cdn": "ali2.a.yximgs.com",
                        "url": "http://ali2.a.yximgs.com/ksc1/_ac91KgoFGAYQO3nSCxNeGFVYLK_rxj9sOIvbOgaB5pkkDG3HJ4Q5C2jRczHUG4lyzlZmlvFrbiQ-Og9VpbBU1ksk9r616PHvlG1Tsa4uS2Dgb4ugkBd02uK7Ah5s0C3nZfBC_zgXADE0DGreeN-8xOdIMgY_owIlpkRXpS77m3MTgIqlHymlUkdeSeo_4Is.kpg?tag=1-1623987496-h-0-rcvqcv0gp3-662fae799f4c3612\u0026clientCacheKey=3xj49we6qx5r4vm_hd.kpg\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "tx2.a.yximgs.com",
                        "url": "http://tx2.a.yximgs.com/ksc1/_ac91KgoFGAYQO3nSCxNeGFVYLK_rxj9sOIvbOgaB5pkkDG3HJ4Q5C2jRczHUG4lyzlZmlvFrbiQ-Og9VpbBU1ksk9r616PHvlG1Tsa4uS2Dgb4ugkBd02uK7Ah5s0C3nZfBC_zgXADE0DGreeN-8xOdIMgY_owIlpkRXpS77m3MTgIqlHymlUkdeSeo_4Is.kpg?tag=1-1623987496-h-1-irmaii0he4-67d769922272bba8\u0026clientCacheKey=3xj49we6qx5r4vm_hd.kpg\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "displayTime": null,
                "duration": 16116,
                "editInfo": {},
                "enableFullScreenPlay": false,
                "enableShareToStory": true,
                "exp_tag": "1_a/2000871708995985745_sl191",
                "extEntry": null,
                "ext_params": {
                    "color": "020101",
                    "h": 1280,
                    "interval": 60,
                    "mtype": 3,
                    "sound": 16139,
                    "video": 16116,
                    "w": 719
                },
                "fashionEntranceShow": {
                    "bizId": "5x7pyxsk4ivf99c",
                    "showType": 3
                },
                "feedSwitches": {
                    "enableExplicitPhotoDescription": false,
                    "enablePlayerPanel": false
                },
                "ff_cover_thumbnail_urls": [
                    {
                        "cdn": "ali2.a.yximgs.com",
                        "url": "http://ali2.a.yximgs.com/ksc1/Sl_h4rf1ENoO7VBjagPQt2QpMdRA0vKz6wQFVyzLlR7VYwQml4G9JkuhVk7YT7Kci9cPCra9vpOSZscqSstijIs2kJK5dB9dlATTrzIXJBXqoGyToX-lB_p9V8_AU7unCdyf75IqMzHeLwp6JBuLP2K8e0xFK3LaVCkmDY7sYH-o5BJFGr2D5dEqO5wACuTE.kpg?tag=1-1623987496-h-0-xvmq0yzsfh-f7a9c50bc5033e0b\u0026clientCacheKey=3xj49we6qx5r4vm_ff.kpg\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "tx2.a.yximgs.com",
                        "url": "http://tx2.a.yximgs.com/ksc1/Sl_h4rf1ENoO7VBjagPQt2QpMdRA0vKz6wQFVyzLlR7VYwQml4G9JkuhVk7YT7Kci9cPCra9vpOSZscqSstijIs2kJK5dB9dlATTrzIXJBXqoGyToX-lB_p9V8_AU7unCdyf75IqMzHeLwp6JBuLP2K8e0xFK3LaVCkmDY7sYH-o5BJFGr2D5dEqO5wACuTE.kpg?tag=1-1623987496-h-1-2142wb9lmn-596c592f9fadf191\u0026clientCacheKey=3xj49we6qx5r4vm_ff.kpg\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "following": 0,
                "forward_count": 0,
                "forward_stats_params": {
                    "et": "1_a/2000871708995985745_sl191",
                    "fid": "1704471768"
                },
                "frameStyle": 1,
                "hated": 0,
                "headurls": [
                    {
                        "cdn": "ali-p1.yximgs.com",
                        "url": "http://ali-p1.yximgs.com/uhead/AB/2021/05/14/14/BMjAyMTA1MTQxNDE5MjJfMTAzMzY3MDAwOF8yX2hkNDkwXzExNg==_s.jpg"
                    },
                    {
                        "cdn": "js2.a.yximgs.com",
                        "url": "http://js2.a.yximgs.com/uhead/AB/2021/05/14/14/BMjAyMTA1MTQxNDE5MjJfMTAzMzY3MDAwOF8yX2hkNDkwXzExNg==_s.jpg"
                    }
                ],
                "isShareCountExp": false,
                "kwaiId": "tjylbz1314520",
                "like_count": 396,
                "liked": 0,
                "location": {},
                "main_mv_urls": [
                    {
                        "cdn": "v4.kwaicdn.com",
                        "url": "http://v4.kwaicdn.com/ksc1/UKaHYVUR6vIlUFBWf4Z_d7HmKvtWYTUHWfSjg4zkvB1Z7jUD2ZrA4tD3YFLXLv_siUnB3pq4rlAMj62cFjf5XIstPKC0JG-2DqFrfQWzsURXgDR8OAn-1Nykq85AbcJlZuu-1zpdJdNga0nkztE-9MP7l9QAICYhTDDRGpigft-tkq0B_hdRj7AKRwEDodcc.mp4?pkey=AAVuBmfuQhG7Hi9FFVUtU4387HCD9Us6nWvT0zc2feoKzsYVyH_N8GRlxcae9zty3lrYcQrmEu6sDvO-OiNnPZncEn3M3eHFM-rrWA7mGfcx7TxKpudf7ekrmD2wonu0pys\u0026tag=1-1623987496-h-0-m0ezsuzho9-c157633963e1179f\u0026clientCacheKey=3xj49we6qx5r4vm_b.mp4\u0026tt=b\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "v1.kwaicdn.com",
                        "url": "http://v1.kwaicdn.com/ksc1/UKaHYVUR6vIlUFBWf4Z_d7HmKvtWYTUHWfSjg4zkvB1Z7jUD2ZrA4tD3YFLXLv_siUnB3pq4rlAMj62cFjf5XIstPKC0JG-2DqFrfQWzsURXgDR8OAn-1Nykq85AbcJlZuu-1zpdJdNga0nkztE-9MP7l9QAICYhTDDRGpigft-tkq0B_hdRj7AKRwEDodcc.mp4?pkey=AAUd2FrE5pYVpccMl1YOolrli05Lr6xGa0mPpK2gblMqiTrJnYhfyKYC_m-wkgIc234eN-YHXLVgYa-8mUT0XRQx2Y-SC9snbq7prn79l50nJHCAly7dXoXFRuEaNdDv3aE\u0026tag=1-1623987496-h-1-thi406idsr-7aee0228190d6223\u0026clientCacheKey=3xj49we6qx5r4vm_b.mp4\u0026tt=b\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "main_mv_urls_h265": [
                    {
                        "cdn": "v4.kwaicdn.com",
                        "url": "http://v4.kwaicdn.com/ksc1/3ZB5jfU4yA1l1yOvF6s1UHY-O0hbkwX0kxjlS2bXygSAn6qVPRt3uy9BvJs5ZRjepOXR9yOspJmnomiCgFefMq5_E0U7g9eDta4yNuWuYZeIehZYIBwDzD9LJ0C_S_2V-DYUxCEG_B1E_8JR2bZ5qVqcpgcKJHgMkOTUsQLBa_ax3dAh49g32pbI3Dv6STaK.mp4?pkey=AAW7HYhkLsXcwFJdGA5yvtiG1sJ8XitvDbIvxSYNDUhw3ipGvWY0hLVNjDhMcU6fuYVb4nnVf7NbtaUFwFgBEjHzC1p-TjuXT_or77eV66iw_6KFiimf-OkvevVAuqUeWOs\u0026tag=1-1623987496-h-0-yroq5yzbcc-7e2e76ecc910e2b6\u0026clientCacheKey=3xj49we6qx5r4vm_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "v1.kwaicdn.com",
                        "url": "http://v1.kwaicdn.com/ksc1/3ZB5jfU4yA1l1yOvF6s1UHY-O0hbkwX0kxjlS2bXygSAn6qVPRt3uy9BvJs5ZRjepOXR9yOspJmnomiCgFefMq5_E0U7g9eDta4yNuWuYZeIehZYIBwDzD9LJ0C_S_2V-DYUxCEG_B1E_8JR2bZ5qVqcpgcKJHgMkOTUsQLBa_ax3dAh49g32pbI3Dv6STaK.mp4?pkey=AAVlp7pmN-w3cJuWDddpOjysFYgbbrQ1ZUwDA5ETLHyjawIdj5zEk8jSumukwDxspdX6ex0dE3fTH6h4upc1jk3HfhvT1EYApMEocO45x2HZNpt6QzCTWvNrqxwc7edUBr0\u0026tag=1-1623987496-h-1-9lixgcibcn-76356efcba500731\u0026clientCacheKey=3xj49we6qx5r4vm_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "noNeedToRequestPLCApi": true,
                "operationExpTagDisplayInfo": {},
                "photoCommentFriendsVisible": 0,
                "photoDisplayLocationInfo": {
                    "displayHeight": 975,
                    "displayWidth": 1080,
                    "heightRatio": 1,
                    "leftRatio": 0,
                    "photoHeight": 1896,
                    "photoWidth": 1080,
                    "topRatio": 0,
                    "widthRatio": 1
                },
                "photoTextLocationInfo": {
                    "heightRatio": 0.6107595,
                    "leftRatio": 0.023148147,
                    "topRatio": 0.11867089,
                    "widthRatio": 0.975
                },
                "photo_id": 5212072196017012000,
                "photo_status": 0,
                "plcFeatureEntry": {
                    "bizType": 17,
                    "eventTrackData": {
                        "adEventTrackData": {
                            "adOperationType": 0,
                            "adPhotoId": 0,
                            "adPos": 0,
                            "adTrackInfos": [],
                            "adTracks": [],
                            "adType": 0,
                            "advertiserUserId": 0,
                            "businessCouponId": 0,
                            "captionHints": [],
                            "captionUrlTitle": "",
                            "captionUrls": [],
                            "chargeInfo": "",
                            "clickInfo": "",
                            "coverId": 0,
                            "creativeId": 0,
                            "extData": "",
                            "gridPos": 0,
                            "gridUnitId": "",
                            "itemId": 0,
                            "liveReservationAuthorId": 0,
                            "liveReservationId": "",
                            "liveReservationStatus": 0,
                            "liveStatus": 0,
                            "liveStreamId": "",
                            "llsid": 0,
                            "merchantCaption": "",
                            "merchantDescription": "",
                            "merchantTitle": "",
                            "missionId": 0,
                            "orderId": 0,
                            "orderSource": "",
                            "pageId": 0,
                            "plcExtData": "",
                            "poiId": 0,
                            "reportTrackInfoTime": 0,
                            "sourceType": 0,
                            "subPageId": 0,
                            "taskId": 0,
                            "templateType": 0,
                            "trafficSource": ""
                        },
                        "eventTrackDataMap": {},
                        "ksOrderId": 0,
                        "kuaishouOrderId": "",
                        "photoPage": ""
                    },
                    "forceShowOldStyle": false,
                    "styleInfo": {
                        "appIconUrl": "",
                        "appLink": "",
                        "appName": "",
                        "displayType": 0,
                        "doWeakTransitionMillis": 0,
                        "hidePlcAfterStrongDisappear": false,
                        "marketUri": "",
                        "packageName": "",
                        "showAdLabelInDetail": false,
                        "showAdLabelInFeed": false,
                        "showWeakMillis": 0,
                        "showWeakVideoCountdownMillis": 0,
                        "showWeakVideoMillis": 0,
                        "showWeakVideoPercent": 0,
                        "strongStyle": {
                            "actionInfo": {
                                "actionEndIconUrl": "",
                                "actionIconUrl": "",
                                "actionLabel": "",
                                "actionSubUrl": "",
                                "actionType": 0,
                                "actionUrl": "",
                                "downloadInfos": {}
                            },
                            "enableForceClose": false,
                            "hideAdTag": false,
                            "highlightLabel": "",
                            "highlightLabels": [],
                            "iconUrl": "",
                            "labels": [],
                            "strongStyleSubType": 0,
                            "strongStyleType": 0,
                            "tagPackage": {
                                "identity": "",
                                "name": "",
                                "params": "",
                                "secondaryType": "",
                                "type": 0
                            },
                            "title": ""
                        },
                        "strongToDisappearMillis": 0,
                        "strongToDisappearVideoCountdownMillis": 0,
                        "strongToDisappearVideoMillis": 0,
                        "strongToDisappearVideoPercent": 0,
                        "subscriptDescription": "",
                        "weakStyle": {
                            "actionInfo": {
                                "actionEndIconUrl": "",
                                "actionIconUrl": "",
                                "actionLabel": "",
                                "actionSubUrl": "",
                                "actionType": 4,
                                "actionUrl": "https://h5.kwaiying.com/ksky/ground-page?layoutType=4\u0026pageType=music\u0026uid=1704471768\u0026kytheme=black\u0026type=10\u0026contentId=80005\u0026sessionId=2000871708995985745_51552064378_ANDROID_b7eb20272983de89\u0026photoId=51552064378\u0026appVer=8.1.30.16773",
                                "downloadInfos": {}
                            },
                            "enableForceClose": false,
                            "hideAdTag": false,
                            "iconUrl": "https://static.yximgs.com/udata/pkg/kmovie/new_kuaiying_icon.png",
                            "isRoundCornerIcon": true,
                            "tagPackage": {
                                "identity": "",
                                "name": "",
                                "params": "",
                                "secondaryType": "",
                                "type": 0
                            },
                            "title": "使用同款BGM模板",
                            "weakStyleType": 1
                        },
                        "weakToStrongMillis": 0,
                        "weakToStrongVideoCountdownMillis": 0,
                        "weakToStrongVideoMillis": 0,
                        "weakToStrongVideoPercent": 0
                    }
                },
                "plcFeatureEntryAbFlag": 0,
                "plcHighPriorityThanBottomEntry": false,
                "plcResponseTime": 1623987496589,
                "profilePagePrefetchInfo": {
                    "profilePageType": 2
                },
                "pureTitle": "你们发现守约了吗? #王者荣耀 #王者荣耀热门 ",
                "recoTags": [],
                "reco_reason": "sl191",
                "sameFrame": {
                    "allow": true,
                    "availableDepth": 7
                },
                "savePlayProgressStrategy": 0,
                "serverExpTag": "feed_photo|5212072196017011822|1033670008|1_a/2000871708995985745_sl191",
                "shareGuide": {
                    "guides": {
                        "default": {
                            "iconType": "wechat"
                        }
                    },
                    "minPlayDurationInSeconds": 15,
                    "photoShareGuide": true,
                    "playTimes": 2,
                    "textDisplayDurationInSeconds": 4
                },
                "share_count": 5,
                "share_info": "userId=3xs97q8q5z7jwg2\u0026photoId=3xj49we6qx5r4vm",
                "similarModules": [
                    {
                        "actionUrl": "https://live.kuaishou.com/app/game/tag?gameId=1001\u0026utm_source=video_game_widget\u0026hide_navigation=true\u0026hyId=gameTag\u0026nativeUrl=kwai%3a%2f%2fgamezone%2fgame%2f1001%3futm_source%3dvideo_game_widget",
                        "tagName": "王者荣耀",
                        "type": 1
                    }
                ],
                "slideCommentEntryDisabled": false,
                "sortFeatures": [
                    {
                        "name": "0",
                        "value": 0.44344485
                    },
                    {
                        "name": "3",
                        "value": 0.0077251582
                    },
                    {
                        "name": "5",
                        "value": 0.0051218625
                    },
                    {
                        "name": "1",
                        "value": 0.009104018
                    },
                    {
                        "name": "2",
                        "value": 0.0012763536
                    },
                    {
                        "name": "6",
                        "value": 0.39191258
                    },
                    {
                        "name": "7",
                        "value": 0.25675648
                    },
                    {
                        "name": "4",
                        "value": 0.009032922
                    },
                    {
                        "name": "8",
                        "value": 0.15640879
                    },
                    {
                        "name": "9",
                        "value": 0
                    },
                    {
                        "name": "10",
                        "value": 157
                    },
                    {
                        "name": "11",
                        "value": 67
                    },
                    {
                        "name": "12",
                        "value": 13172
                    },
                    {
                        "name": "13",
                        "value": 0
                    },
                    {
                        "name": "14",
                        "value": 0.9490609
                    },
                    {
                        "name": "15",
                        "value": 0.045023404
                    },
                    {
                        "name": "16",
                        "value": 1033670020
                    },
                    {
                        "name": "17",
                        "value": 0
                    },
                    {
                        "name": "18",
                        "value": 1
                    },
                    {
                        "name": "19",
                        "value": 0
                    },
                    {
                        "name": "20",
                        "value": 0.09204115
                    },
                    {
                        "name": "21",
                        "value": 0.078800105
                    },
                    {
                        "name": "23",
                        "value": -1
                    },
                    {
                        "name": "24",
                        "value": 0.24542707
                    },
                    {
                        "name": "25",
                        "value": 0
                    },
                    {
                        "name": "201",
                        "value": 0.0027669903
                    },
                    {
                        "name": "202",
                        "value": 0
                    }
                ],
                "soundTrack": {
                    "artist": "王者荣耀冷刀     -",
                    "audioType": 1,
                    "audioUrls": [
                        {
                            "cdn": "tx2.a.yximgs.com",
                            "url": "http://tx2.a.yximgs.com/bs2/ost/NTE1NTIwNjQzNzhfMTAzMzY3MDAwOA.m4a"
                        },
                        {
                            "cdn": "ali2.a.yximgs.com",
                            "url": "http://ali2.a.yximgs.com/bs2/ost/NTE1NTIwNjQzNzhfMTAzMzY3MDAwOA.m4a"
                        }
                    ],
                    "avatarUrls": [
                        {
                            "cdn": "js2.a.yximgs.com",
                            "url": "http://js2.a.yximgs.com/bs2/ost/NTE1NTIwNjQzNzhfMTAzMzY3MDAwOA.jpg"
                        },
                        {
                            "cdn": "ali2.a.yximgs.com",
                            "url": "http://ali2.a.yximgs.com/bs2/ost/NTE1NTIwNjQzNzhfMTAzMzY3MDAwOA.jpg"
                        }
                    ],
                    "disableEnhancedEntry": true,
                    "duration": 16,
                    "genreId": 0,
                    "id": "5x7pyxsk4ivf99c",
                    "imageUrls": [
                        {
                            "cdn": "ali2.a.yximgs.com",
                            "url": "http://ali2.a.yximgs.com/bs2/ost/NTE1NTIwNjQzNzhfMTAzMzY3MDAwOA.jpg"
                        },
                        {
                            "cdn": "tx2.a.yximgs.com",
                            "url": "http://tx2.a.yximgs.com/bs2/ost/NTE1NTIwNjQzNzhfMTAzMzY3MDAwOA.jpg"
                        }
                    ],
                    "loudness": -15,
                    "name": "王者荣耀冷刀     -的作品原声",
                    "photoId": 5212072196017012000,
                    "type": 9,
                    "user": {
                        "eid": "3xs97q8q5z7jwg2",
                        "following": false,
                        "headurl": "http://ali-p1.yximgs.com/uhead/AB/2021/05/14/14/BMjAyMTA1MTQxNDE5MjJfMTAzMzY3MDAwOF8yX2hkNDkwXzExNg==_s.jpg",
                        "headurls": [
                            {
                                "cdn": "ali-p1.yximgs.com",
                                "url": "http://ali-p1.yximgs.com/uhead/AB/2021/05/14/14/BMjAyMTA1MTQxNDE5MjJfMTAzMzY3MDAwOF8yX2hkNDkwXzExNg==_s.jpg"
                            },
                            {
                                "cdn": "js2.a.yximgs.com",
                                "url": "http://js2.a.yximgs.com/uhead/AB/2021/05/14/14/BMjAyMTA1MTQxNDE5MjJfMTAzMzY3MDAwOF8yX2hkNDkwXzExNg==_s.jpg"
                            }
                        ],
                        "kwaiId": "tjylbz1314520",
                        "profilePagePrefetchInfo": {
                            "profilePageType": 2
                        },
                        "user_id": 1033670008,
                        "user_name": "王者荣耀冷刀     -",
                        "user_sex": "F",
                        "visitorBeFollowed": false
                    }
                },
                "sourcePhotoPage": "h",
                "streamManifest": {
                    "adaptationSet": [
                        {
                            "duration": 16116,
                            "id": 1,
                            "representation": [
                                {
                                    "avgBitrate": 1048,
                                    "backupUrl": [
                                        "http://v1.kwaicdn.com/ksc1/3ZB5jfU4yA1l1yOvF6s1UHY-O0hbkwX0kxjlS2bXygSAn6qVPRt3uy9BvJs5ZRjepOXR9yOspJmnomiCgFefMq5_E0U7g9eDta4yNuWuYZeIehZYIBwDzD9LJ0C_S_2V-DYUxCEG_B1E_8JR2bZ5qVqcpgcKJHgMkOTUsQLBa_ax3dAh49g32pbI3Dv6STaK.mp4?pkey=AAWtLS8zJUwcC7bRfWmDIGKLguH1rtSus3h9tZy3mcjk2uvJ7GxQc9YopWTA5PLgNbJ88xjPeVJ_u6TWVBL8-2WlPGZKNdHrevBALtpTR4PKgYKysuUKGH0a5wLXg3_9xIQ\u0026tag=1-1623987496-h-1-psljvjssrx-e6f063d81a1aee0f\u0026clientCacheKey=3xj49we6qx5r4vm_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131"
                                    ],
                                    "bitratePattern": [
                                        1886,
                                        1105,
                                        1886,
                                        133,
                                        728
                                    ],
                                    "defaultSelect": false,
                                    "disableAdaptive": false,
                                    "featureP2sp": false,
                                    "fileSize": 2118665,
                                    "frameRate": 25,
                                    "height": 1280,
                                    "hidden": false,
                                    "id": 1,
                                    "maxBitrate": 2300,
                                    "quality": 1.6,
                                    "qualityLabel": "高清",
                                    "qualityType": "720p",
                                    "url": "http://v4.kwaicdn.com/ksc1/3ZB5jfU4yA1l1yOvF6s1UHY-O0hbkwX0kxjlS2bXygSAn6qVPRt3uy9BvJs5ZRjepOXR9yOspJmnomiCgFefMq5_E0U7g9eDta4yNuWuYZeIehZYIBwDzD9LJ0C_S_2V-DYUxCEG_B1E_8JR2bZ5qVqcpgcKJHgMkOTUsQLBa_ax3dAh49g32pbI3Dv6STaK.mp4?pkey=AAULfhqTXrczkVXpqgQnhWl-Vw7poKBqfvKCxExDoO9jQPt91zizD517mmxNKzds1WMqrc9uB11aX-11GSHoj622SG-kTR-uJrGdN8t3Saj7SY3Up7OMX1t82VBrt_0n8Dk\u0026tag=1-1623987496-h-0-pijjardmxh-be257da4d665b52b\u0026clientCacheKey=3xj49we6qx5r4vm_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131",
                                    "width": 720
                                },
                                {
                                    "avgBitrate": 687,
                                    "backupUrl": [
                                        "http://v1.kwaicdn.com/ksc1/GA61jFyreRNpnezPvDlJgbkJTyZXeNFd2IQYVIvl4uO99Ow58UuPMfS0V0njwk13hFK9ZtqcQDK8jIs3spefZhKLKaokQe_7SoAcMQbKw4IC60V-CYg23sGX3YPutpf5ZRe1jf09CBD0meolGI4eP5_VCXC2sH9RHQR1LO85iNF99yqasBrsWdLUrm9rBnhw.mp4?pkey=AAXiJ2j1CwwoUDIaSYxp-ytwRIcXtmE2o0D59rDvgX6w-0i10XZ_2cZpr-fu0gU7-57LLa6BfVFlP8qJ7mJU0G9U3NO5aBPI8qBQ5Jyb9lpqLjSXDtkuNr5-X-iE6YQhIcU\u0026tag=1-1623987496-h-1-zwtd6xk91a-ea4cd8913988b4f4\u0026clientCacheKey=3xj49we6qx5r4vm_hd18.mp4\u0026tt=hd18\u0026di=74e31056\u0026bp=10131"
                                    ],
                                    "bitratePattern": [
                                        950,
                                        647,
                                        950,
                                        6,
                                        258
                                    ],
                                    "defaultSelect": false,
                                    "disableAdaptive": false,
                                    "featureP2sp": false,
                                    "fileSize": 1390266,
                                    "frameRate": 25,
                                    "height": 1024,
                                    "hidden": false,
                                    "id": 2,
                                    "maxBitrate": 750,
                                    "quality": 1.4,
                                    "qualityLabel": "标清",
                                    "qualityType": "576p",
                                    "url": "http://v4.kwaicdn.com/ksc1/GA61jFyreRNpnezPvDlJgbkJTyZXeNFd2IQYVIvl4uO99Ow58UuPMfS0V0njwk13hFK9ZtqcQDK8jIs3spefZhKLKaokQe_7SoAcMQbKw4IC60V-CYg23sGX3YPutpf5ZRe1jf09CBD0meolGI4eP5_VCXC2sH9RHQR1LO85iNF99yqasBrsWdLUrm9rBnhw.mp4?pkey=AAXmvcfNpIcn0rOj3yKrYZbMZqZ3XJRsiMMGJT8WXFCnErmlmkx9Zc7Bc4cQ_GiJgQHg7lGTn4KYif3B8T_VvqBF4KZeqnaYwFwylabjuJmbvIXtAwyyp-1x9KLcwWAunDY\u0026tag=1-1623987496-h-0-qb51zjkiut-3334ad79eafc079c\u0026clientCacheKey=3xj49we6qx5r4vm_hd18.mp4\u0026tt=hd18\u0026di=74e31056\u0026bp=10131",
                                    "width": 576
                                },
                                {
                                    "avgBitrate": 417,
                                    "backupUrl": [
                                        "http://v1.kwaicdn.com/ksc1/x6N0vKsdkubwCNmKwDlPwj-7yzuiBf6OhhGmY9FLacrqgR5rVpjsgTb4q7hRSTZUwTX-s9m80lD6bWxieM6rJPIg7Rm0HN1gIXe0yjJlK4j_1bjCgaW2SjgZ-C8rTT-XMhwbYijHDZZVDHJeSAcUHa8w7Myh3KEmcPRaq6mkX7nP6BYstgpljyV_lMQUKfN3.mp4?pkey=AAVfByhaHqO6q0knNpPJ-zr8B-N_1nVwxdNDeSain9DI_Adh-uBCliRRkH3r_9BSo2Gd-Nz_q9Lh6ipniFIhQMpzgLzntWNwU9aWl5faYsq0Fp1eVo5agDwmhky18zH3y7o\u0026tag=1-1623987496-h-1-xdnk19a4iy-4786bfde59601ca9\u0026clientCacheKey=3xj49we6qx5r4vm_hd19.mp4\u0026tt=hd19\u0026di=74e31056\u0026bp=10131"
                                    ],
                                    "bitratePattern": [
                                        557,
                                        390,
                                        557,
                                        5,
                                        129
                                    ],
                                    "defaultSelect": false,
                                    "disableAdaptive": false,
                                    "featureP2sp": false,
                                    "fileSize": 844234,
                                    "frameRate": 25,
                                    "height": 960,
                                    "hidden": false,
                                    "id": 3,
                                    "maxBitrate": 400,
                                    "quality": 1.2,
                                    "qualityLabel": "流畅",
                                    "qualityType": "480p",
                                    "url": "http://v4.kwaicdn.com/ksc1/x6N0vKsdkubwCNmKwDlPwj-7yzuiBf6OhhGmY9FLacrqgR5rVpjsgTb4q7hRSTZUwTX-s9m80lD6bWxieM6rJPIg7Rm0HN1gIXe0yjJlK4j_1bjCgaW2SjgZ-C8rTT-XMhwbYijHDZZVDHJeSAcUHa8w7Myh3KEmcPRaq6mkX7nP6BYstgpljyV_lMQUKfN3.mp4?pkey=AAW9xVaF8hbwYmWFBD9kG3DExsG5B92FIXHqjbZn4I7dlYSZwNcbL26_iHh-d5sODKNNk6UCfL5sOF0Pyyu6hZlmtdIUOhRi7RQoDfjhY77Fg0MLhRTWGH8GkK2TYcer30g\u0026tag=1-1623987496-h-0-8lotjbeptr-d69f870b561e4888\u0026clientCacheKey=3xj49we6qx5r4vm_hd19.mp4\u0026tt=hd19\u0026di=74e31056\u0026bp=10131",
                                    "width": 540
                                }
                            ]
                        }
                    ],
                    "businessType": 2,
                    "mediaType": 2,
                    "playInfo": {},
                    "version": "1.0.0"
                },
                "supportType": 0,
                "tagLeaderboard": {
                    "textTags": [
                        200041
                    ]
                },
                "tag_hash_type": 1,
                "tags": [
                    {
                        "id": 200041,
                        "ksOrderId": "HTBDC-6Y2ENNBD4VP2",
                        "name": "王者荣耀",
                        "rich": true,
                        "tag": "王者荣耀",
                        "tagActionUrl": "https://live.kuaishou.com/app/game/tag?gameId=1001\u0026utm_source=video_game_widget\u0026hide_navigation=true\u0026hyId=gameTag\u0026nativeUrl=kwai%3A%2F%2Fgamezone%2Fgame%2F1001%3Futm_source%3Dvideo_game_widget\u0026utm_source=video_game_widget"
                    }
                ],
                "time": "2021-06-17 09:31:57",
                "timestamp": 1623893517559,
                "type": 1,
                "unlike_count": 0,
                "us_c": 0,
                "us_d": 0,
                "us_l": true,
                "user_id": 1033670008,
                "user_name": "王者荣耀冷刀     -",
                "user_sex": "F",
                "verified": false,
                "videoColdStartType": 0,
                "view_count": 90762
            },
            {
                "adminTags": [],
                "caption": "让人惊掉下巴的 #詹姆斯 空接暴扣 #发CBA视频分千万红包  #NBA ",
                "comment_count": 22458,
                "comments": [],
                "coverCommonTags": {
                    "authorRightSideTag": {
                        "darkModeStyle": {
                            "leftIcon": [
                                {
                                    "cdn": "static.yximgs.com",
                                    "url": "https://static.yximgs.com/udata/pkg/KS-COVERTAG/feed_icon_collect_orange_m_normal_dark.png"
                                }
                            ],
                            "textColor": "#FF6600"
                        },
                        "leftIcon": [
                            {
                                "cdn": "static.yximgs.com",
                                "url": "https://static.yximgs.com/udata/pkg/KS-COVERTAG/feed_icon_collect_orange_m_normal.png"
                            }
                        ],
                        "tagType": 35,
                        "text": "2万次收藏",
                        "textColor": "#FF6600",
                        "textV2": {
                            "rawText": "2万次收藏"
                        }
                    }
                },
                "cover_thumbnail_urls": [
                    {
                        "cdn": "tx2.a.yximgs.com",
                        "url": "http://tx2.a.yximgs.com/ksc1/Rj29-TGa9UCDQu9HTxU6a9vlrMenLMGnttdyg72ffdIvcB7WQ-NSJVeBsYcy_6s2CSgDz6q1_TGQ-czCCpDUEYgZbcjpvTpZeFsxYiEnx8fAXCvRqgzTLXlNHFcenlh_1V2zC9FMSvUasR9oR2ZfZOMLefN5f11j73miPqpCHMCU56i1VHQQsC0ZYOxm8FC7.kpg?tag=1-1623987496-h-0-upyko0qhcq-e4edebcff8fc3782\u0026type=hot\u0026clientCacheKey=3xayiqzgubazkcm_hd.kpg\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "ali2.a.yximgs.com",
                        "url": "http://ali2.a.yximgs.com/ksc1/Rj29-TGa9UCDQu9HTxU6a9vlrMenLMGnttdyg72ffdIvcB7WQ-NSJVeBsYcy_6s2CSgDz6q1_TGQ-czCCpDUEYgZbcjpvTpZeFsxYiEnx8fAXCvRqgzTLXlNHFcenlh_1V2zC9FMSvUasR9oR2ZfZOMLefN5f11j73miPqpCHMCU56i1VHQQsC0ZYOxm8FC7.kpg?tag=1-1623987496-h-1-zuu5qelefq-59b8497c00d3278c\u0026type=hot\u0026clientCacheKey=3xayiqzgubazkcm_hd.kpg\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "displayTime": "",
                "duration": 15933,
                "editInfo": {},
                "enableFullScreenPlay": false,
                "enableShareToStory": true,
                "exp_tag": "1_u/2000871708995985745_sl1112",
                "extEntry": null,
                "ext_params": {
                    "color": "8A6477",
                    "h": 1280,
                    "interval": 60,
                    "mtype": 3,
                    "sound": 15937,
                    "video": 15933,
                    "w": 720
                },
                "fashionEntranceShow": {
                    "bizId": "5xws2pwszee3cfi",
                    "showType": 3
                },
                "feedSwitches": {
                    "enableExplicitPhotoDescription": false,
                    "enablePlayerPanel": false
                },
                "ff_cover_thumbnail_urls": [
                    {
                        "cdn": "tx2.a.yximgs.com",
                        "url": "http://tx2.a.yximgs.com/ksc1/gCHbtdamZPsHrDyR1KupM-FKy5uakWT_MmQhHrHfWHyJfImz0OlpvTkIU3sXYKjG53ZZttSHdVIxorvnYcgHCSuDn_2c1P5Lky-qbYkuIkiUtllRe7AgbSLiwYdjMHgovmZrstO-ReRH83irxpIMdJSxswHYZ3jFZoAX1hgZUBqJHEAG9lQmtgm4LQ3RNuE9.kpg?tag=1-1623987496-h-0-aj47kwlgga-bd95edb2ca4a9f0e\u0026type=hot\u0026clientCacheKey=3xayiqzgubazkcm_ff.kpg\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "ali2.a.yximgs.com",
                        "url": "http://ali2.a.yximgs.com/ksc1/gCHbtdamZPsHrDyR1KupM-FKy5uakWT_MmQhHrHfWHyJfImz0OlpvTkIU3sXYKjG53ZZttSHdVIxorvnYcgHCSuDn_2c1P5Lky-qbYkuIkiUtllRe7AgbSLiwYdjMHgovmZrstO-ReRH83irxpIMdJSxswHYZ3jFZoAX1hgZUBqJHEAG9lQmtgm4LQ3RNuE9.kpg?tag=1-1623987496-h-1-umywgldzha-0458d22cbeeb4967\u0026type=hot\u0026clientCacheKey=3xayiqzgubazkcm_ff.kpg\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "following": 0,
                "forward_count": 0,
                "forward_stats_params": {
                    "et": "1_u/2000871708995985745_sl1112",
                    "fid": "1704471768"
                },
                "frameStyle": 3,
                "hated": 0,
                "headurls": [
                    {
                        "cdn": "ali2.a.yximgs.com",
                        "url": "http://ali2.a.yximgs.com/uhead/AB/2021/06/10/03/BMjAyMTA2MTAwMzUzMjlfMjIwMTQxNTM5NF8yX2hkNDkzXzc1MA==_s.jpg"
                    },
                    {
                        "cdn": "js2.a.yximgs.com",
                        "url": "http://js2.a.yximgs.com/uhead/AB/2021/06/10/03/BMjAyMTA2MTAwMzUzMjlfMjIwMTQxNTM5NF8yX2hkNDkzXzc1MA==_s.jpg"
                    }
                ],
                "isShareCountExp": false,
                "kwaiId": "Kobe_Bryant23",
                "like_count": 870298,
                "liked": 0,
                "location": {},
                "main_mv_urls": [
                    {
                        "cdn": "v1.kwaicdn.com",
                        "url": "http://v1.kwaicdn.com/ksc1/1tcyzBtnT-yXlpltw_NwCUat14iZrMZFNm7feTUPzUeasDpySwqglD0sSFW5iuh4NjouS5qXyPovo5a75IwN61l-0amPsyrAN_Hx5TCJlhyYsba1VtYHDdRMJFsERpt1vRmfL5cx8Ur90JdMgIF9zFBXgA8NE5abTnZPIH8S11M5MGa36xmbCPoS23r5_YTX.mp4?pkey=AAUgR8kAUHebUhK4XY0Ul2tcO2CQbtLVdHIlQrju7r2khhPDyQrHTZK6Y0T2ipZBodLvTzP2KPIDwRSxEoY4dhC7sSdUzxfQ12jzUGQOzvy-Era_v_GDjOUvXmS5Bl51mOg\u0026tag=1-1623987496-h-0-ggtg9kiybh-c48ac1522b8ea927\u0026type=hot\u0026clientCacheKey=3xayiqzgubazkcm_b.mp4\u0026tt=b\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "v2.kwaicdn.com",
                        "url": "http://v2.kwaicdn.com/ksc1/1tcyzBtnT-yXlpltw_NwCUat14iZrMZFNm7feTUPzUeasDpySwqglD0sSFW5iuh4NjouS5qXyPovo5a75IwN61l-0amPsyrAN_Hx5TCJlhyYsba1VtYHDdRMJFsERpt1vRmfL5cx8Ur90JdMgIF9zFBXgA8NE5abTnZPIH8S11M5MGa36xmbCPoS23r5_YTX.mp4?pkey=AAVH6auv7JaPFpVdNjppNA0un6ShbB22TJnOTzeV4WnEBuu2amiuZP-sgE7pWpGHDBgVpo8E7hPLf1NoLUqAjEJPEh27ZkQgHBXm7hXPubOp3ldNw5hTjtuIzRAHdBbmzT8\u0026tag=1-1623987496-h-1-bhkc9ytxos-fb8ff173f9b34e3c\u0026type=hot\u0026clientCacheKey=3xayiqzgubazkcm_b.mp4\u0026tt=b\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "main_mv_urls_h265": [
                    {
                        "cdn": "v1.kwaicdn.com",
                        "url": "http://v1.kwaicdn.com/ksc1/Dct-8anggjbKWUdzSQIbVpcJlzznySZsDKX21P3wZyGaD3MMUjJEN7wsf658qM0elBpBu3O-tdfl_GKbrCbBrIFIiw4WtF58eJ9fKP1Q23ZOd3ax5WpTxjHntVEyVOXVAQXU7IomxsMuTgN1nVQmFlp54oeRRSbn2NTNkG7u7yy5h0qEYHJ29r-i3lDV2zhT.mp4?pkey=AAXaiQQ4kry1zmye5pHOriYd9CVEp_UGjtDyfYduo6EemXLuhVISh80w1EWuL5D2AFm5fW2zTHiPDVxCoMVvOon5HIQxT2zsu-uPezc1dZlddCEQ9uG-zH3Nher36WBXluA\u0026tag=1-1623987496-h-0-hyklgbwld4-d51b8510b25ea3b9\u0026type=hot\u0026clientCacheKey=3xayiqzgubazkcm_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "v2.kwaicdn.com",
                        "url": "http://v2.kwaicdn.com/ksc1/Dct-8anggjbKWUdzSQIbVpcJlzznySZsDKX21P3wZyGaD3MMUjJEN7wsf658qM0elBpBu3O-tdfl_GKbrCbBrIFIiw4WtF58eJ9fKP1Q23ZOd3ax5WpTxjHntVEyVOXVAQXU7IomxsMuTgN1nVQmFlp54oeRRSbn2NTNkG7u7yy5h0qEYHJ29r-i3lDV2zhT.mp4?pkey=AAWyghvK60PK97AA5xzC4oAfEg69AXCFC0c9_z7BVKXp3KsxXZUPgFM6g8FKddp87gP9TzR_ynidvF1oS_sRDbY-eTQmJsJjgMvIVaSapEJJ0c7oLv_5kuFiSccAOaVvKNw\u0026tag=1-1623987496-h-1-w3jnxwu5ud-b6a2b3b29f6174ce\u0026type=hot\u0026clientCacheKey=3xayiqzgubazkcm_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "main_mv_urls_sd_h265": [
                    {
                        "cdn": "v1.kwaicdn.com",
                        "url": "http://v1.kwaicdn.com/ksc1/jpTNtf7wbrETFh0ggjVCOuYNBmUwvCW1Z79Jj0CgI36bS_F-ts2tfihWYIAFhfffuC59ZAGyaQQAzs_7wfStHMYEJNh4MlFqXksrnh2OIOdV0eyeQ2XmM3xkbTSQgtUKU47K5yO5CkXb6wW6_DiytpfnXXW5FTB7AmIR7wIpXkBDhZ6b6K4Mhpc7BVgS-V4t.mp4?pkey=AAVAzRASnNCbP4uZ358N2-m4kmLlh_1NM1s27PfVt_ZcZBUaZzxYMcokjAHiJ1e0BMiMlnO_RelcHbMrVso55z7Nytp9L6jOZZLpxApGJhD_hS2ZBPCT8Q4SIde0pen98lQ\u0026tag=1-1623987496-h-0-wcdtxqlgjg-6e0e22c280b1738d\u0026type=hot\u0026clientCacheKey=3xayiqzgubazkcm_hd16.mp4\u0026tt=hd16\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "v2.kwaicdn.com",
                        "url": "http://v2.kwaicdn.com/ksc1/jpTNtf7wbrETFh0ggjVCOuYNBmUwvCW1Z79Jj0CgI36bS_F-ts2tfihWYIAFhfffuC59ZAGyaQQAzs_7wfStHMYEJNh4MlFqXksrnh2OIOdV0eyeQ2XmM3xkbTSQgtUKU47K5yO5CkXb6wW6_DiytpfnXXW5FTB7AmIR7wIpXkBDhZ6b6K4Mhpc7BVgS-V4t.mp4?pkey=AAUuAVwY9Q6EHz7p1PgXKuJv4oJx5ftvYC9cfdp-U4SJneXXEGMmbE3jtJ2C2pXOZiavJKFqmGjD0igO1jpb6dW0Zor8dQq-RXQjLHHW1zFtmb9gtZ7qGbob9D3aEdeiwUI\u0026tag=1-1623987496-h-1-0te36ys0gn-456c5a13c7d93193\u0026type=hot\u0026clientCacheKey=3xayiqzgubazkcm_hd16.mp4\u0026tt=hd16\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "noNeedToRequestPLCApi": true,
                "operationExpTagDisplayInfo": {},
                "photoCommentFriendsVisible": 0,
                "photoReward": {
                    "canReward": true,
                    "descNotClickText": "等16位用户赞赏了作品",
                    "headButton": true,
                    "headButtonNow": true,
                    "rewardCount": 16,
                    "rewardUsers": [
                        {
                            "headurl": "http://ali2.a.yximgs.com/uhead/AB/2019/01/16/20/BMjAxOTAxMTYyMDU0MDJfMTIwNzYwMDE4MV8yX2hkOTM2XzQzMA==_s.jpg",
                            "headurls": [
                                {
                                    "cdn": "ali2.a.yximgs.com",
                                    "url": "http://ali2.a.yximgs.com/uhead/AB/2019/01/16/20/BMjAxOTAxMTYyMDU0MDJfMTIwNzYwMDE4MV8yX2hkOTM2XzQzMA==_s.jpg"
                                },
                                {
                                    "cdn": "js2.a.yximgs.com",
                                    "url": "http://js2.a.yximgs.com/uhead/AB/2019/01/16/20/BMjAxOTAxMTYyMDU0MDJfMTIwNzYwMDE4MV8yX2hkOTM2XzQzMA==_s.jpg"
                                }
                            ]
                        },
                        {
                            "headurl": "http://ali-p1.yximgs.com/uhead/AB/2021/03/14/13/BMjAyMTAzMTQxMzQ2MzlfNzkzOTkxMzQ4XzJfaGQ3NDRfNDA=_s.jpg",
                            "headurls": [
                                {
                                    "cdn": "ali-p1.yximgs.com",
                                    "url": "http://ali-p1.yximgs.com/uhead/AB/2021/03/14/13/BMjAyMTAzMTQxMzQ2MzlfNzkzOTkxMzQ4XzJfaGQ3NDRfNDA=_s.jpg"
                                },
                                {
                                    "cdn": "js2.a.yximgs.com",
                                    "url": "http://js2.a.yximgs.com/uhead/AB/2021/03/14/13/BMjAyMTAzMTQxMzQ2MzlfNzkzOTkxMzQ4XzJfaGQ3NDRfNDA=_s.jpg"
                                }
                            ]
                        },
                        {
                            "headurl": "http://ali-p1.yximgs.com/uhead/AB/2020/12/08/09/BMjAyMDEyMDgwOTU4NTdfOTgyMDg3MTY4XzJfaGQ0MjFfNzE1_s.jpg",
                            "headurls": [
                                {
                                    "cdn": "ali-p1.yximgs.com",
                                    "url": "http://ali-p1.yximgs.com/uhead/AB/2020/12/08/09/BMjAyMDEyMDgwOTU4NTdfOTgyMDg3MTY4XzJfaGQ0MjFfNzE1_s.jpg"
                                },
                                {
                                    "cdn": "js2.a.yximgs.com",
                                    "url": "http://js2.a.yximgs.com/uhead/AB/2020/12/08/09/BMjAyMDEyMDgwOTU4NTdfOTgyMDg3MTY4XzJfaGQ0MjFfNzE1_s.jpg"
                                }
                            ]
                        }
                    ]
                },
                "photoTextLocationInfo": {
                    "heightRatio": 0.96953124,
                    "leftRatio": 0,
                    "topRatio": 0.0078125,
                    "widthRatio": 0.99722224
                },
                "photo_id": 5198561393594673000,
                "photo_status": 0,
                "plcFeatureEntryAbFlag": 0,
                "plcHighPriorityThanBottomEntry": false,
                "plcResponseTime": 1623987496590,
                "profilePagePrefetchInfo": {
                    "profilePageType": 1
                },
                "pureTitle": "让人惊掉下巴的 #詹姆斯 空接暴扣 #发CBA视频分千万红包  #NBA ",
                "recoTags": [],
                "reco_reason": "sl1112",
                "sameFrame": {
                    "allow": true,
                    "availableDepth": 7,
                    "showSameFrameCurrentTag": true
                },
                "savePlayProgressStrategy": 0,
                "serverExpTag": "feed_photo|5198561393594673213|2201415394|1_u/2000871708995985745_sl1112",
                "shareGuide": {
                    "guides": {
                        "default": {
                            "iconType": "wechat"
                        }
                    },
                    "minPlayDurationInSeconds": 15,
                    "photoShareGuide": true,
                    "playTimes": 2,
                    "textDisplayDurationInSeconds": 4
                },
                "share_count": 20494,
                "share_info": "userId=3xcx36sw4b835vc\u0026photoId=3xayiqzgubazkcm",
                "similarModules": [
                    {
                        "tagName": "詹姆斯",
                        "type": 1
                    }
                ],
                "slideCommentEntryDisabled": false,
                "sortFeatures": [
                    {
                        "name": "0",
                        "value": 0.3201068
                    },
                    {
                        "name": "3",
                        "value": 0.017863873
                    },
                    {
                        "name": "5",
                        "value": 0.009478082
                    },
                    {
                        "name": "1",
                        "value": 0.015228264
                    },
                    {
                        "name": "2",
                        "value": 0.0007792625
                    },
                    {
                        "name": "6",
                        "value": 0.2947203
                    },
                    {
                        "name": "7",
                        "value": 0.29010472
                    },
                    {
                        "name": "4",
                        "value": 0.0071959025
                    },
                    {
                        "name": "8",
                        "value": 0.15281072
                    },
                    {
                        "name": "9",
                        "value": 0
                    },
                    {
                        "name": "10",
                        "value": 116
                    },
                    {
                        "name": "11",
                        "value": 95
                    },
                    {
                        "name": "12",
                        "value": 12870
                    },
                    {
                        "name": "13",
                        "value": 0
                    },
                    {
                        "name": "14",
                        "value": 0.94348437
                    },
                    {
                        "name": "15",
                        "value": 0.098064184
                    },
                    {
                        "name": "16",
                        "value": 2201415420
                    },
                    {
                        "name": "17",
                        "value": 0
                    },
                    {
                        "name": "18",
                        "value": 1
                    },
                    {
                        "name": "19",
                        "value": 0
                    },
                    {
                        "name": "20",
                        "value": 0.12289396
                    },
                    {
                        "name": "21",
                        "value": 0.2348297
                    },
                    {
                        "name": "23",
                        "value": -1
                    },
                    {
                        "name": "24",
                        "value": 0.19879745
                    },
                    {
                        "name": "25",
                        "value": 0
                    },
                    {
                        "name": "201",
                        "value": 0.0017736153
                    },
                    {
                        "name": "202",
                        "value": 0
                    }
                ],
                "soundTrack": {
                    "artist": "科比高清剪辑师",
                    "audioType": 1,
                    "audioUrls": [
                        {
                            "cdn": "js2.a.yximgs.com",
                            "url": "http://js2.a.yximgs.com/bs2/ost/NTE0MjY0ODUyMTBfMjIwMTQxNTM5NA.m4a"
                        },
                        {
                            "cdn": "ali2.a.yximgs.com",
                            "url": "http://ali2.a.yximgs.com/bs2/ost/NTE0MjY0ODUyMTBfMjIwMTQxNTM5NA.m4a"
                        }
                    ],
                    "avatarUrls": [
                        {
                            "cdn": "ali2.a.yximgs.com",
                            "url": "http://ali2.a.yximgs.com/bs2/ost/NTE0MjY0ODUyMTBfMjIwMTQxNTM5NA.jpg"
                        },
                        {
                            "cdn": "tx2.a.yximgs.com",
                            "url": "http://tx2.a.yximgs.com/bs2/ost/NTE0MjY0ODUyMTBfMjIwMTQxNTM5NA.jpg"
                        }
                    ],
                    "disableEnhancedEntry": true,
                    "duration": 15,
                    "genreId": 0,
                    "id": "5xws2pwszee3cfi",
                    "imageUrls": [
                        {
                            "cdn": "js2.a.yximgs.com",
                            "url": "http://js2.a.yximgs.com/bs2/ost/NTE0MjY0ODUyMTBfMjIwMTQxNTM5NA.jpg"
                        },
                        {
                            "cdn": "ali2.a.yximgs.com",
                            "url": "http://ali2.a.yximgs.com/bs2/ost/NTE0MjY0ODUyMTBfMjIwMTQxNTM5NA.jpg"
                        }
                    ],
                    "loudness": -15,
                    "name": "科比高清剪辑师的作品原声",
                    "photoId": 5198561393594673000,
                    "type": 9,
                    "user": {
                        "eid": "3xcx36sw4b835vc",
                        "following": false,
                        "headurl": "http://ali2.a.yximgs.com/uhead/AB/2021/06/10/03/BMjAyMTA2MTAwMzUzMjlfMjIwMTQxNTM5NF8yX2hkNDkzXzc1MA==_s.jpg",
                        "headurls": [
                            {
                                "cdn": "ali2.a.yximgs.com",
                                "url": "http://ali2.a.yximgs.com/uhead/AB/2021/06/10/03/BMjAyMTA2MTAwMzUzMjlfMjIwMTQxNTM5NF8yX2hkNDkzXzc1MA==_s.jpg"
                            },
                            {
                                "cdn": "js2.a.yximgs.com",
                                "url": "http://js2.a.yximgs.com/uhead/AB/2021/06/10/03/BMjAyMTA2MTAwMzUzMjlfMjIwMTQxNTM5NF8yX2hkNDkzXzc1MA==_s.jpg"
                            }
                        ],
                        "kwaiId": "Kobe_Bryant23",
                        "profilePagePrefetchInfo": {
                            "profilePageType": 1
                        },
                        "user_id": 2201415394,
                        "user_name": "科比高清剪辑师",
                        "user_sex": "F",
                        "visitorBeFollowed": false
                    }
                },
                "sourcePhotoPage": "h",
                "streamManifest": {
                    "adaptationSet": [
                        {
                            "duration": 15933,
                            "id": 1,
                            "representation": [
                                {
                                    "avgBitrate": 1819,
                                    "backupUrl": [
                                        "http://v2.kwaicdn.com/ksc1/Dct-8anggjbKWUdzSQIbVpcJlzznySZsDKX21P3wZyGaD3MMUjJEN7wsf658qM0elBpBu3O-tdfl_GKbrCbBrIFIiw4WtF58eJ9fKP1Q23ZOd3ax5WpTxjHntVEyVOXVAQXU7IomxsMuTgN1nVQmFlp54oeRRSbn2NTNkG7u7yy5h0qEYHJ29r-i3lDV2zhT.mp4?pkey=AAUCxSn7QJZbPKFHY7Ff-cwSiQ8M5NwqOswXjVEwjiOU-M_HQSMY6TleU2QRw7-5VhALiMG_UEhDNCiNCKbb7A0WW6QUazibsUDHtbRsb_VNFJooaGQT-xs62pcgMU-vO04\u0026tag=1-1623987496-h-1-tryassyvac-2f905bdc2e2e2462\u0026type=hot\u0026clientCacheKey=3xayiqzgubazkcm_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131"
                                    ],
                                    "bitratePattern": [
                                        1666,
                                        1045,
                                        1666,
                                        118,
                                        668
                                    ],
                                    "defaultSelect": false,
                                    "disableAdaptive": false,
                                    "featureP2sp": false,
                                    "fileSize": 3638696,
                                    "frameRate": 25,
                                    "height": 1280,
                                    "hidden": false,
                                    "id": 1,
                                    "maxBitrate": 2300,
                                    "quality": 1.6,
                                    "qualityLabel": "高清",
                                    "qualityType": "720p",
                                    "url": "http://v1.kwaicdn.com/ksc1/Dct-8anggjbKWUdzSQIbVpcJlzznySZsDKX21P3wZyGaD3MMUjJEN7wsf658qM0elBpBu3O-tdfl_GKbrCbBrIFIiw4WtF58eJ9fKP1Q23ZOd3ax5WpTxjHntVEyVOXVAQXU7IomxsMuTgN1nVQmFlp54oeRRSbn2NTNkG7u7yy5h0qEYHJ29r-i3lDV2zhT.mp4?pkey=AAWT3jQmxe5hiZPcUedgYCF7n4X5C9RNzCMvdciS9_KQ26HX6q9zgu0__RqNfhgioo3mHLAdmS4VWjM1d13FSZExUrZ35CNZ8cLdaS6ceV4uHfWWFc1TRUkQsyN63bXZCZM\u0026tag=1-1623987496-h-0-eo27epmdki-fa1e1766169f5961\u0026type=hot\u0026clientCacheKey=3xayiqzgubazkcm_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131",
                                    "width": 720
                                },
                                {
                                    "avgBitrate": 760,
                                    "backupUrl": [
                                        "http://v2.kwaicdn.com/ksc1/171bEuKoRmtkbOPsfLBtg6HpAC7OHxjN0Y1J-kHoQ9NEBOdGiI2xTKyHNo_lhfHTOYJEWMxc8UpbsydYNvZHGd350kYM4f7EfRQcW_5Vg-byUiuyctnGhI2-DMQj7hy6cWXJ34h_HjEYB_KfMpoSGcUmX543Sb5fhXMSMjfXMvHUlCErYR0qaomI5hg9KyOt.mp4?pkey=AAXHKHg2XK8FDHxUMtUpGhd_KEldRugpH0oYCzrviGZE4axZ3Y40IaWGAZT6c0msK9QBeVipI5vEh8P00fuCO56RLN6wHSQDlDeCN4OIdlzYen3i2qTuz1zcF3eFJoKOT88\u0026tag=1-1623987496-h-1-ku7o1nfxli-15af6b1af134e421\u0026type=hot\u0026clientCacheKey=3xayiqzgubazkcm_hd18.mp4\u0026tt=hd18\u0026di=74e31056\u0026bp=10131"
                                    ],
                                    "bitratePattern": [
                                        982,
                                        753,
                                        982,
                                        226,
                                        179
                                    ],
                                    "defaultSelect": false,
                                    "disableAdaptive": false,
                                    "featureP2sp": false,
                                    "fileSize": 1520458,
                                    "frameRate": 25,
                                    "height": 1024,
                                    "hidden": false,
                                    "id": 2,
                                    "maxBitrate": 750,
                                    "quality": 1.4,
                                    "qualityLabel": "标清",
                                    "qualityType": "576p",
                                    "url": "http://v1.kwaicdn.com/ksc1/171bEuKoRmtkbOPsfLBtg6HpAC7OHxjN0Y1J-kHoQ9NEBOdGiI2xTKyHNo_lhfHTOYJEWMxc8UpbsydYNvZHGd350kYM4f7EfRQcW_5Vg-byUiuyctnGhI2-DMQj7hy6cWXJ34h_HjEYB_KfMpoSGcUmX543Sb5fhXMSMjfXMvHUlCErYR0qaomI5hg9KyOt.mp4?pkey=AAUbB3-KUaA8-O1NliXMBQwZjySJqd-Y-GUaX12QTnYkJAoXPH4tAKzCtKzRjvfQKUm31COwebJZBMgaOXhe9UhZbrl7H7ddAmYu0uhEVKWnwpeFyZaJrc4doKVX5_xqPU4\u0026tag=1-1623987496-h-0-rdhtjrlqrh-4e74a261ceb3cb9a\u0026type=hot\u0026clientCacheKey=3xayiqzgubazkcm_hd18.mp4\u0026tt=hd18\u0026di=74e31056\u0026bp=10131",
                                    "width": 576
                                },
                                {
                                    "avgBitrate": 446,
                                    "backupUrl": [
                                        "http://v2.kwaicdn.com/ksc1/CEY-H_cqlQU_gXCsn63EvpQCGQ_jZoqWoFJd4Zhynn3Uv3e5Gn2b2dT7PciHa9kZYXJ_w0Q1DqUG37susW4ytUWc2-K9Eo2k1izrl8uhSFELmqPlO5UWgBlsqBzM5ZBJBUuaS6Se7_Kqt_Zcd2KYXvIU6xADcP2hcoB3keGCNElcrKWaFTxzxWA-olxW2L0x.mp4?pkey=AAXf-gwNotAeZvgwkry41mcS7iiKB74fAcwEWtv0nLYCoV6IyhI-ghsEhHVBKvXYRVaqikLi3zPMSAXaWAN8QyDoZlYEX3X8WeszpjomSI1AOMmN5pb5IvngfUcCXEGGpHw\u0026tag=1-1623987496-h-1-83lwrz6n63-c9ddfd3fb025f3cb\u0026type=hot\u0026clientCacheKey=3xayiqzgubazkcm_hd19.mp4\u0026tt=hd19\u0026di=74e31056\u0026bp=10131"
                                    ],
                                    "bitratePattern": [
                                        578,
                                        438,
                                        578,
                                        193,
                                        80
                                    ],
                                    "defaultSelect": false,
                                    "disableAdaptive": false,
                                    "featureP2sp": false,
                                    "fileSize": 892202,
                                    "frameRate": 25,
                                    "height": 960,
                                    "hidden": false,
                                    "id": 3,
                                    "maxBitrate": 400,
                                    "quality": 1.2,
                                    "qualityLabel": "流畅",
                                    "qualityType": "480p",
                                    "url": "http://v1.kwaicdn.com/ksc1/CEY-H_cqlQU_gXCsn63EvpQCGQ_jZoqWoFJd4Zhynn3Uv3e5Gn2b2dT7PciHa9kZYXJ_w0Q1DqUG37susW4ytUWc2-K9Eo2k1izrl8uhSFELmqPlO5UWgBlsqBzM5ZBJBUuaS6Se7_Kqt_Zcd2KYXvIU6xADcP2hcoB3keGCNElcrKWaFTxzxWA-olxW2L0x.mp4?pkey=AAV53pwh0YAWkRNX7yWOR29BHXGpAgZttxFX_Ut-rft-dDzVDaxgujcI-WCs3S0jWneZv44b_s1376Tw5mVr0ybP0n4ew8MIun6GaFqmI5rSRA5Ahot1qSIkXmeyxHUYHDU\u0026tag=1-1623987496-h-0-0lxzwbt6pr-39a95af0abf74423\u0026type=hot\u0026clientCacheKey=3xayiqzgubazkcm_hd19.mp4\u0026tt=hd19\u0026di=74e31056\u0026bp=10131",
                                    "width": 540
                                }
                            ]
                        }
                    ],
                    "businessType": 2,
                    "mediaType": 2,
                    "playInfo": {},
                    "version": "1.0.0"
                },
                "supportType": 0,
                "tag_hash_type": 1,
                "tags": [
                    {
                        "id": 23333,
                        "name": "詹姆斯",
                        "rich": true,
                        "tag": "詹姆斯"
                    },
                    {
                        "id": 2948,
                        "ksOrderId": "HTBDC-NAMLP4195NW2",
                        "name": "NBA",
                        "rich": true,
                        "tag": "NBA"
                    }
                ],
                "time": "2021-06-14 20:27:23",
                "timestamp": 1623673643914,
                "type": 1,
                "unlike_count": 0,
                "us_c": 0,
                "us_d": 0,
                "us_l": true,
                "user_id": 2201415394,
                "user_name": "科比高清剪辑师",
                "user_sex": "F",
                "verified": false,
                "videoColdStartType": 0,
                "view_count": 23034126
            },
            {
                "adminTags": [],
                "caption": "【都市丛林】转动你的手机,带你做一回蜘蛛侠!此时的你,就悬停在都市丛林之间,日落时分的整个纽约曼哈顿尽收眼底。著名的帝国大厦,世贸大厦,克莱斯勒大厦都在你的前方哦。喜欢刺激的一定要往下看!转动手机没反应的老铁点击全景观看拖动屏幕试试~使用,
                "comment_count": 53427,
                "comments": [],
                "coverCommonTags": {
                    "authorRightSideTag": {
                        "darkModeStyle": {
                            "leftIcon": [
                                {
                                    "cdn": "static.yximgs.com",
                                    "url": "https://static.yximgs.com/udata/pkg/KS-COVERTAG/feed_icon_collect_orange_m_normal_dark.png"
                                }
                            ],
                            "textColor": "#FF6600"
                        },
                        "leftIcon": [
                            {
                                "cdn": "static.yximgs.com",
                                "url": "https://static.yximgs.com/udata/pkg/KS-COVERTAG/feed_icon_collect_orange_m_normal.png"
                            }
                        ],
                        "tagType": 35,
                        "text": "5.1万次收藏",
                        "textColor": "#FF6600",
                        "textV2": {
                            "rawText": "5.1万次收藏"
                        }
                    },
                    "rightTopTag": {
                        "bgImage": [
                            {
                                "cdn": "static.yximgs.com",
                                "url": "https://static.yximgs.com/udata/pkg/KS-SIDEBAR/feed_tag_360.bad37c250879120f.png"
                            }
                        ],
                        "tagType": 8,
                        "textColor": "#FFFFFF"
                    }
                },
                "cover_thumbnail_urls": [
                    {
                        "cdn": "tx2.a.yximgs.com",
                        "url": "http://tx2.a.yximgs.com/ksc1/Dp4spMy3xNdddM9jgNmBRBkIuY-_L8-mwQc-1stGdYGg0G2hlc5bbgOjSREOJWpwbCI4NWB4KZgU7Uah1fGemTgSBHxh1G0RlCw1e2WyCgLJRb3XDI5bpi8oZnzRzY7Re7c4n7spvbWhWZvs8M4gG3oJmQ7XYHwhD86yea_oRCl_R6HHpx24OBYkKKwseFsk.kpg?tag=1-1623987496-h-0-whonlnh8tn-8b06e25385031ec6\u0026type=hot\u0026clientCacheKey=3xn5eq89dsn2x59_ccc.kpg\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "ali2.a.yximgs.com",
                        "url": "http://ali2.a.yximgs.com/ksc1/Dp4spMy3xNdddM9jgNmBRBkIuY-_L8-mwQc-1stGdYGg0G2hlc5bbgOjSREOJWpwbCI4NWB4KZgU7Uah1fGemTgSBHxh1G0RlCw1e2WyCgLJRb3XDI5bpi8oZnzRzY7Re7c4n7spvbWhWZvs8M4gG3oJmQ7XYHwhD86yea_oRCl_R6HHpx24OBYkKKwseFsk.kpg?tag=1-1623987496-h-1-txsq3vcf2p-badb06e0ba25ce59\u0026type=hot\u0026clientCacheKey=3xn5eq89dsn2x59_ccc.kpg\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "displayTime": "",
                "duration": 12433,
                "editInfo": {
                    "editTime": 1621863500602,
                    "editVersion": 3
                },
                "enableFullScreenPlay": false,
                "enableShareToStory": true,
                "exp_tag": "1_u/2000871708995985745_sl88",
                "extEntry": null,
                "ext_params": {
                    "color": "313544",
                    "h": 1080,
                    "interval": 30,
                    "mtype": 3,
                    "sound": 12438,
                    "video": 12433,
                    "w": 2160
                },
                "fashionEntranceShow": {
                    "bizId": "5x86ihxmvzswhxk",
                    "showType": 3
                },
                "feedSwitches": {
                    "enableExplicitPhotoDescription": false,
                    "enablePlayerPanel": false
                },
                "following": 0,
                "forward_count": 0,
                "forward_stats_params": {
                    "et": "1_u/2000871708995985745_sl88",
                    "fid": "1704471768"
                },
                "frameStyle": 3,
                "hated": 0,
                "headurls": [
                    {
                        "cdn": "ali-p1.yximgs.com",
                        "url": "http://ali-p1.yximgs.com/uhead/AB/2021/05/04/20/BMjAyMTA1MDQyMDQ4MjJfMjE0MjkyMzIxNF8xX2hkODk3XzY4Nw==_s.jpg"
                    },
                    {
                        "cdn": "js2.a.yximgs.com",
                        "url": "http://js2.a.yximgs.com/uhead/AB/2021/05/04/20/BMjAyMTA1MDQyMDQ4MjJfMjE0MjkyMzIxNF8xX2hkODk3XzY4Nw==_s.jpg"
                    }
                ],
                "isShareCountExp": false,
                "kwaiId": "silverqsy",
                "like_count": 1025577,
                "liked": 0,
                "location": {},
                "main_mv_urls": [
                    {
                        "cdn": "v1.kwaicdn.com",
                        "url": "http://v1.kwaicdn.com/ksc1/HySVBsUqHUkANb3KxF3AIqng1VQTwTuwZsNzTY-APkRdMKy_mw0603HY2Xj2aeioRFyrDiw2ypikOiEjp4kgCC8z4aeX_pY5RkFJ9onZboMZylEeusoxkALUBVz1g-t9c-3iDNKRNks0hwtjbCir-T_NvWeVReVDOkRTg3rG4hx-ZNbAk5wLL6bPmuUiT-Z6.mp4?pkey=AAXpfgZYninu3DzPCPY2ZCvFI6wEDFAKDaWIJePueF41Gjk_WQ52qAOONQ3ko0xqaobRTSD3-UMBdXeejPh1xKfDsYe7_KfZlYzAmEFUCWvHUAZp2S4dBtdU6mQNEmJEjPg\u0026tag=1-1623987496-h-0-8gj6zogouj-ccd7d505718878b6\u0026type=hot\u0026clientCacheKey=3xn5eq89dsn2x59_b.mp4\u0026tt=b\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "v2.kwaicdn.com",
                        "url": "http://v2.kwaicdn.com/ksc1/HySVBsUqHUkANb3KxF3AIqng1VQTwTuwZsNzTY-APkRdMKy_mw0603HY2Xj2aeioRFyrDiw2ypikOiEjp4kgCC8z4aeX_pY5RkFJ9onZboMZylEeusoxkALUBVz1g-t9c-3iDNKRNks0hwtjbCir-T_NvWeVReVDOkRTg3rG4hx-ZNbAk5wLL6bPmuUiT-Z6.mp4?pkey=AAXBApnj4nm6V06zKtgA08FlhMf_1MkXFaIsUsn9oKPOlTzMvb_IRir_HEJXSMeu5gZThuaDGPGzZ2E3JU9lOaDKNR2S6CgqMwjCrS_HyMWeqdGBcMPgjzWx5yUq1CRHgso\u0026tag=1-1623987496-h-1-rdvmaxareg-dded44c281dd631b\u0026type=hot\u0026clientCacheKey=3xn5eq89dsn2x59_b.mp4\u0026tt=b\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "main_mv_urls_h265": [
                    {
                        "cdn": "v1.kwaicdn.com",
                        "url": "http://v1.kwaicdn.com/ksc1/7r2SEF2upHZOuX0wohBzHMTfOSZwB3pev3fpph5bo51BFUpoS6C6XjWg5VgngFTIGcFQr8flDSKh23YXxq_W9KBxnMyXXXhtKnFyPVNjzqfbPeoiBQ3xPxqlbcviloEulofWkdt1ICeIl_AtYGJrRgveitD5JO8fhs1Ql5Q2gk0h6ksHw7qwwxMV2Sf2YBVT.mp4?pkey=AAVCubZ6irvqUUxPo59z3UYZtNmEMv6luOwB2ll3IKBZyb-JDYgpSQlR7tKN1_glBcy0sa-hHf8vb1ktumgENNJl5NTS6XkYBHCR3Kb-q2WVC8hHuNI8u_zOIZW9yRzdi9Y\u0026tag=1-1623987496-h-0-hx54ldv8sy-80cd21e3d49009d8\u0026type=hot\u0026clientCacheKey=3xn5eq89dsn2x59_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "v2.kwaicdn.com",
                        "url": "http://v2.kwaicdn.com/ksc1/7r2SEF2upHZOuX0wohBzHMTfOSZwB3pev3fpph5bo51BFUpoS6C6XjWg5VgngFTIGcFQr8flDSKh23YXxq_W9KBxnMyXXXhtKnFyPVNjzqfbPeoiBQ3xPxqlbcviloEulofWkdt1ICeIl_AtYGJrRgveitD5JO8fhs1Ql5Q2gk0h6ksHw7qwwxMV2Sf2YBVT.mp4?pkey=AAXKKS7xeYrscYp4LojyQmhl3CTqzCjzJdDObbYA-ACH-3YcQzhjz4nPGWIhMTmacsop4ByinZBamaDm9zLZgc_VRMIrXEw2XyJsiaHCVOg0reg1nyDy4OF2VlLDOY7gXgs\u0026tag=1-1623987496-h-1-0kwpu5esi9-3e9fc690a4dbc04c\u0026type=hot\u0026clientCacheKey=3xn5eq89dsn2x59_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "noNeedToRequestPLCApi": true,
                "operationExpTagDisplayInfo": {},
                "override_cover_size": {
                    "height": 4000,
                    "width": 2250
                },
                "override_cover_thumbnail_urls": [
                    {
                        "cdn": "tx2.a.yximgs.com",
                        "url": "http://tx2.a.yximgs.com/ksc1/Dp4spMy3xNdddM9jgNmBRBkIuY-_L8-mwQc-1stGdYGg0G2hlc5bbgOjSREOJWpwbCI4NWB4KZgU7Uah1fGemTgSBHxh1G0RlCw1e2WyCgLJRb3XDI5bpi8oZnzRzY7Re7c4n7spvbWhWZvs8M4gG3oJmQ7XYHwhD86yea_oRCl_R6HHpx24OBYkKKwseFsk.kpg?tag=1-1623987496-h-0-76susnp59z-331de1e4102f0986\u0026type=hot\u0026clientCacheKey=3xn5eq89dsn2x59_ccc.kpg\u0026di=74e31056\u0026bp=10131"
                    },
                    {
                        "cdn": "ali2.a.yximgs.com",
                        "url": "http://ali2.a.yximgs.com/ksc1/Dp4spMy3xNdddM9jgNmBRBkIuY-_L8-mwQc-1stGdYGg0G2hlc5bbgOjSREOJWpwbCI4NWB4KZgU7Uah1fGemTgSBHxh1G0RlCw1e2WyCgLJRb3XDI5bpi8oZnzRzY7Re7c4n7spvbWhWZvs8M4gG3oJmQ7XYHwhD86yea_oRCl_R6HHpx24OBYkKKwseFsk.kpg?tag=1-1623987496-h-1-dgebigutpj-3af307ca257201d3\u0026type=hot\u0026clientCacheKey=3xn5eq89dsn2x59_ccc.kpg\u0026di=74e31056\u0026bp=10131"
                    }
                ],
                "photoCommentFriendsVisible": 0,
                "photoTextLocationInfo": {
                    "heightRatio": 0,
                    "leftRatio": 0.5,
                    "topRatio": 0.5,
                    "widthRatio": 0
                },
                "photo_id": 5188991243604965000,
                "photo_status": 0,
                "plcFeatureEntryAbFlag": 0,
                "plcHighPriorityThanBottomEntry": false,
                "plcResponseTime": 1623987496590,
                "poi": {
                    "address": "New York",
                    "category": 0,
                    "id": 21263984,
                    "latitude": 40.712775,
                    "longitude": -74.005973,
                    "title": "New York"
                },
                "profilePagePrefetchInfo": {
                    "profilePageType": 2
                },
                "pureTitle": "【都市丛林】转动你的手机,带你做一回蜘蛛侠!此时的你,就悬停在都市丛林之间,日落时分的整个纽约曼哈顿尽收眼底。著名的帝国大厦,世贸大厦,克莱斯勒大厦都在你的前方哦。喜欢刺激的一定要往下看!转动手机没反应的老铁点击全景观看拖动屏幕试试~使,
                "recoTags": [],
                "reco_reason": "sl88",
                "sameFrame": {
                    "allow": true,
                    "availableDepth": 7,
                    "showSameFrameCurrentTag": true
                },
                "savePlayProgressStrategy": 0,
                "serverExpTag": "feed_photo|5188991243604965491|2142923214|1_u/2000871708995985745_sl88",
                "shareGuide": {
                    "guides": {
                        "default": {
                            "iconType": "wechat"
                        }
                    },
                    "minPlayDurationInSeconds": 15,
                    "photoShareGuide": true,
                    "playTimes": 2,
                    "textDisplayDurationInSeconds": 4
                },
                "share_count": 44489,
                "share_info": "userId=3xwpkbskk79v2h6\u0026photoId=3xn5eq89dsn2x59",
                "similarModules": [
                    {
                        "tagName": "城市",
                        "type": 1
                    }
                ],
                "slideCommentEntryDisabled": false,
                "sortFeatures": [
                    {
                        "name": "0",
                        "value": 0.24308966
                    },
                    {
                        "name": "3",
                        "value": 0.012722828
                    },
                    {
                        "name": "5",
                        "value": 0.010915308
                    },
                    {
                        "name": "1",
                        "value": 0.026437372
                    },
                    {
                        "name": "2",
                        "value": 0.001078507
                    },
                    {
                        "name": "6",
                        "value": 0.21328011
                    },
                    {
                        "name": "7",
                        "value": 0.4431261
                    },
                    {
                        "name": "4",
                        "value": 0.023196492
                    },
                    {
                        "name": "8",
                        "value": 0.1602398
                    },
                    {
                        "name": "9",
                        "value": 865
                    },
                    {
                        "name": "10",
                        "value": -1
                    },
                    {
                        "name": "11",
                        "value": 344
                    },
                    {
                        "name": "12",
                        "value": 10028
                    },
                    {
                        "name": "13",
                        "value": 0
                    },
                    {
                        "name": "14",
                        "value": 0.91927564
                    },
                    {
                        "name": "15",
                        "value": 0.025406208
                    },
                    {
                        "name": "16",
                        "value": 2142923260
                    },
                    {
                        "name": "17",
                        "value": 0
                    },
                    {
                        "name": "18",
                        "value": 1
                    },
                    {
                        "name": "19",
                        "value": 0
                    },
                    {
                        "name": "20",
                        "value": 0.03282236
                    },
                    {
                        "name": "21",
                        "value": 0.22463445
                    },
                    {
                        "name": "23",
                        "value": -1
                    },
                    {
                        "name": "24",
                        "value": 0.131658
                    },
                    {
                        "name": "25",
                        "value": 0
                    },
                    {
                        "name": "201",
                        "value": 0.0039286986
                    },
                    {
                        "name": "202",
                        "value": 0
                    }
                ],
                "soundTrack": {
                    "artist": "Silver祁思阳",
                    "audioType": 1,
                    "audioUrls": [
                        {
                            "cdn": "ali2.a.yximgs.com",
                            "url": "http://ali2.a.yximgs.com/bs2/ost/NDk1NTgxMDc1MDdfMjE0MjkyMzIxNA.m4a"
                        },
                        {
                            "cdn": "tx2.a.yximgs.com",
                            "url": "http://tx2.a.yximgs.com/bs2/ost/NDk1NTgxMDc1MDdfMjE0MjkyMzIxNA.m4a"
                        }
                    ],
                    "avatarUrls": [
                        {
                            "cdn": "ali2.a.yximgs.com",
                            "url": "http://ali2.a.yximgs.com/bs2/ost/NDk1NTgxMDc1MDdfMjE0MjkyMzIxNA.jpg"
                        },
                        {
                            "cdn": "tx2.a.yximgs.com",
                            "url": "http://tx2.a.yximgs.com/bs2/ost/NDk1NTgxMDc1MDdfMjE0MjkyMzIxNA.jpg"
                        }
                    ],
                    "disableEnhancedEntry": true,
                    "duration": 12,
                    "genreId": 0,
                    "id": "5x86ihxmvzswhxk",
                    "imageUrls": [
                        {
                            "cdn": "tx2.a.yximgs.com",
                            "url": "http://tx2.a.yximgs.com/bs2/ost/NDk1NTgxMDc1MDdfMjE0MjkyMzIxNA.jpg"
                        },
                        {
                            "cdn": "ali2.a.yximgs.com",
                            "url": "http://ali2.a.yximgs.com/bs2/ost/NDk1NTgxMDc1MDdfMjE0MjkyMzIxNA.jpg"
                        }
                    ],
                    "loudness": -15,
                    "name": "Silver祁思阳的作品原声",
                    "photoId": 5188991243604965000,
                    "type": 9,
                    "user": {
                        "eid": "3xwpkbskk79v2h6",
                        "following": false,
                        "headurl": "http://ali-p1.yximgs.com/uhead/AB/2021/05/04/20/BMjAyMTA1MDQyMDQ4MjJfMjE0MjkyMzIxNF8xX2hkODk3XzY4Nw==_s.jpg",
                        "headurls": [
                            {
                                "cdn": "ali-p1.yximgs.com",
                                "url": "http://ali-p1.yximgs.com/uhead/AB/2021/05/04/20/BMjAyMTA1MDQyMDQ4MjJfMjE0MjkyMzIxNF8xX2hkODk3XzY4Nw==_s.jpg"
                            },
                            {
                                "cdn": "js2.a.yximgs.com",
                                "url": "http://js2.a.yximgs.com/uhead/AB/2021/05/04/20/BMjAyMTA1MDQyMDQ4MjJfMjE0MjkyMzIxNF8xX2hkODk3XzY4Nw==_s.jpg"
                            }
                        ],
                        "kwaiId": "silverqsy",
                        "profilePagePrefetchInfo": {
                            "profilePageType": 2
                        },
                        "user_id": 2142923214,
                        "user_name": "Silver祁思阳",
                        "user_sex": "M",
                        "visitorBeFollowed": false
                    }
                },
                "sourcePhotoPage": "h",
                "streamManifest": {
                    "adaptationSet": [
                        {
                            "duration": 12433,
                            "id": 1,
                            "representation": [
                                {
                                    "avgBitrate": 269,
                                    "backupUrl": [
                                        "http://v2.kwaicdn.com/ksc1/7r2SEF2upHZOuX0wohBzHMTfOSZwB3pev3fpph5bo51BFUpoS6C6XjWg5VgngFTIGcFQr8flDSKh23YXxq_W9KBxnMyXXXhtKnFyPVNjzqfbPeoiBQ3xPxqlbcviloEulofWkdt1ICeIl_AtYGJrRgveitD5JO8fhs1Ql5Q2gk0h6ksHw7qwwxMV2Sf2YBVT.mp4?pkey=AAViz0WaHtQ1XBtK4cZPN17japp6Qb8Ae5fWJZiUCj3MEKTETXPjdt4_X81ow7rIVtCXWzsFz8G4gvd9PTtrWGASIDg3KIxUEM_-c4kxw1uvnu4j4JLPN3MuQQFD0eyHl-c\u0026tag=1-1623987496-h-1-7g4legfuap-548c79aa0f000ecb\u0026type=hot\u0026clientCacheKey=3xn5eq89dsn2x59_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131"
                                    ],
                                    "defaultSelect": false,
                                    "disableAdaptive": false,
                                    "featureP2sp": false,
                                    "fileSize": 418126,
                                    "frameRate": 25,
                                    "height": 720,
                                    "hidden": false,
                                    "id": 1,
                                    "maxBitrate": 2300,
                                    "quality": 1.6,
                                    "qualityLabel": "高清",
                                    "qualityType": "720p",
                                    "url": "http://v1.kwaicdn.com/ksc1/7r2SEF2upHZOuX0wohBzHMTfOSZwB3pev3fpph5bo51BFUpoS6C6XjWg5VgngFTIGcFQr8flDSKh23YXxq_W9KBxnMyXXXhtKnFyPVNjzqfbPeoiBQ3xPxqlbcviloEulofWkdt1ICeIl_AtYGJrRgveitD5JO8fhs1Ql5Q2gk0h6ksHw7qwwxMV2Sf2YBVT.mp4?pkey=AAX1PKaCxYoJDLCUyZo2bNJ64aCX5TJJkMjeVoElKJj6upDMD_vvg30N8hXTBzuqLHALkKh5nHUaIgNUllIWN_hE4C3uXFhk661Bi-sobCCMFoOYpwHQAK8DhfCAPEaplag\u0026tag=1-1623987496-h-0-lviby0i6zz-b9f8b4d782790b68\u0026type=hot\u0026clientCacheKey=3xn5eq89dsn2x59_swft.mp4\u0026tt=swft\u0026di=74e31056\u0026bp=10131",
                                    "width": 1440
                                }
                            ]
                        }
                    ],
                    "businessType": 2,
                    "mediaType": 2,
                    "playInfo": {},
                    "stereoType": 1,
                    "version": "1.0.0"
                },
                "supportLandscapePlay": true,
                "supportType": 0,
                "tag_hash_type": 1,
                "tags": [],
                "time": "2021-05-14 11:48:06",
                "timestamp": 1620964086177,
                "type": 1,
                "unlike_count": 0,
                "us_c": 0,
                "us_d": 0,
                "us_l": true,
                "user_id": 2142923214,
                "user_name": "Silver祁思阳",
                "user_sex": "M",
                "verified": false,
                "videoColdStartType": 0,
                "view_count": 38667995
            }
        ],
        "host-name": "webservice-m5-rs518.idcyz.hb1.kwaidc.com",
        "llsid": "2000871708995985745",
        "new_notify": 0,
        "pcursor": "1",
        "rerankShowPageSize": 8,
        "result": 1,
        "writeRealShowSucc": true
    }
    
    
  • response的拦截器

    response的拦截器

    我刚开始用gout。不知道是不是我用法不对。没找到类似java拦截器的东西。我尝试在callback中的修改response的body。然后发现用了callabck后,bingJson()就失效了。 能不能添加一个针对response的处理中间件,可以在修改response的值,和方便做统一的效验。然后bindJson()也不会失效。他的执行顺序应该在callabck和bindJson之前。

  • 如何支持 data-raw

    如何支持 data-raw

    curl 'https://google.com' \
    -H 'content-type: application/x-www-form-urlencoded; charset=UTF-8' \
    --data-raw 'elapsed_time=0&user_choice_index=-1&ts=1608191572029' \
    --compressed%
    

    这样的请求怎么用 Gout 实现呢

  • 发生302跳转的时候,没有带上cookie

    发生302跳转的时候,没有带上cookie

    使用gout模拟登录: url := url.URL{Scheme: SCHEME, Host: HOST, Path: LOGIN_PATH} var res []byte code := 0 g := gout.New(nil) err := g.POST(url.String()). SetWWWForm(core.H{ "username": username, "password": password}). SetProxy("http://127.0.0.1:7001"). Debug(true). BindBody(&res). Code(&code). Do()

    if err != nil || code != 200 {
    	fmt.Printf("%s:code = %d\n", err, code)
    	return g, err
    }
    

    主要代码如上,不知哪里有误

  • 为什么SetJSON会把入参里的&替换成\u0026 ?

    为什么SetJSON会把入参里的&替换成\u0026 ?

    在SetJSON前检查还是https://uat.xxx.com?a=1&b=1 打断点看传给SetJSON也是&,可是gout实际发出去的却是\u0026 ?

    2022-04-20 09:51:01.018 INFO    log/writer.go:21        > POST /cgi-bin/menu/create?access_token=56_zk9P0-rpBoNUhlneUAVJfABALGU HTTP/1.1
    2022-04-20 09:51:01.018 INFO    log/writer.go:21        > Content-Type: application/json
    2022-04-20 09:51:01.018 INFO    log/writer.go:21        >
    2022-04-20 09:51:01.018 INFO    log/writer.go:21        
    2022-04-20 09:51:01.018 INFO    log/writer.go:21        {"button":[{"type":"view","name":"今日歌曲","url":"https://uat.xxx.com?a=1\u0026b=1"}]}
    2022-04-20 09:51:01.018 INFO    log/writer.go:21        
    2022-04-20 09:51:01.018 INFO    log/writer.go:21        < HTTP/1.1 200 OK
    2022-04-20 09:51:01.018 INFO    log/writer.go:21        < Connection: keep-alive
    2022-04-20 09:51:01.018 INFO    log/writer.go:21        < Content-Type: application/json; encoding=utf-8
    2022-04-20 09:51:01.018 INFO    log/writer.go:21        < Date: Wed, 20 Apr 2022 01:51:01 GMT
    2022-04-20 09:51:01.018 INFO    log/writer.go:21        < Content-Length: 141
    2022-04-20 09:51:01.018 INFO    log/writer.go:21        
    2022-04-20 09:51:01.018 INFO    log/writer.go:21        
    2022-04-20 09:51:01.018 INFO    log/writer.go:21        {"errcode":40033,"errmsg":"invalid charset. please check your request, if include \\uxxxx will create fail! rid: 625f6705-437db838-0f7f9178"}
    
  • gout 是如何做multipart上传的?

    gout 是如何做multipart上传的?

    目前网上的做法是

    	var buff bytes.Buffer
    	writer := multipart.NewWriter(&buff)
    	// 添加form表单参数, 可以添加多个
    	writer.WriteField("route_str", "xiaofei/1d7608ac3d4bdaa28c0bdc1805f03fc2.jpg")
    	w, _ := writer.CreateFormFile("file_stream", "ywdhzxf.jpg")
    	fd1, _ := os.Open("/Users/xiaofei/Downloads/ywdhzxf.jpg")
    	defer fd1.Close()
    	// 把文件流写入到缓冲区里去
    	_, _ = io.Copy(w, fd1)
    	writer.Close()
    	//w.Write([]byte("this is a byte"))  如果有字节流直接写入就可以
    	var client http.Client
    	// 发送请求
    	resp, err := client.Post("http://127.0.0.1/pic/upload", writer.FormDataContentType(), &buff)
    

    我的疑惑在于

    w, _ := writer.CreateFormFile("file_stream", "ywdhzxf.jpg")
    

    createFormFile的第二个参数似乎是冗余的,不太清楚这个field的作用,后续的文件字节流也是直接写入到w,和ywdhzxf.jpg无关

    而python的接口,也没有用到filename这个field:

    resp = requests.post(url='http://127.0.0.1/pic/upload', files={'file_stream': res},
                         data={'route_str': 'xiaofei/1d7608ac3d4bdaa28c0bdc1805f03fc2.jpg'},
                         headers={'enctype': 'mutlipart/form-data'})
    

    我观察到gout的对外接口,也没有filename这个field,请问是如何实现的呢?以及这个field的作用? 我简单阅读了下代码,似乎是让filename和field的key一样?

    感谢!

  • 获取response对象

    获取response对象

    看了下文档,并不支持获取响应或者bind response,导致对于响应的处理很不灵活,目前有个需求,拿到response的所有header,但是类似于BindHeader这种,必须要预定义一个struct,由于不确定response会有哪些header,所以很难实现。如果支持Bind response可以直接获取,或者希望加一个BindHeader(string)这样的直接把整段header返回的函数

  • ../../guonaihong/gout/decode/yaml.go:23:12: undefined: yaml.NewDecoder

    ../../guonaihong/gout/decode/yaml.go:23:12: undefined: yaml.NewDecoder

    go version go1.14.1 darwin/amd64

    go get 出现

    # github.com/guonaihong/gout/decode
    ../../guonaihong/gout/decode/yaml.go:23:12: undefined: yaml.NewDecoder
    ../../guonaihong/gout/decode/yaml.go:29:12: undefined: yaml.NewDecoder
    # github.com/guonaihong/gout/encode
    ../../guonaihong/gout/encode/yaml.go:35:12: undefined: yaml.NewEncoder
    

    go mod graph 结果

    github.com/guonaihong/gout github.com/gin-gonic/[email protected]
    github.com/guonaihong/gout github.com/google/[email protected]
    github.com/guonaihong/gout github.com/mattn/[email protected]
    github.com/guonaihong/gout github.com/stretchr/[email protected]
    github.com/guonaihong/gout golang.org/x/[email protected]
    github.com/guonaihong/gout gopkg.in/[email protected]
    golang.org/x/[email protected] golang.org/x/[email protected]
    golang.org/x/[email protected] golang.org/x/[email protected]
    golang.org/x/[email protected] golang.org/x/[email protected]
    github.com/mattn/[email protected] golang.org/x/[email protected]
    github.com/stretchr/[email protected] github.com/davecgh/[email protected]
    github.com/stretchr/[email protected] github.com/pmezard/[email protected]
    github.com/stretchr/[email protected] github.com/stretchr/[email protected]
    github.com/stretchr/[email protected] gopkg.in/[email protected]
    github.com/gin-gonic/[email protected] github.com/gin-contrib/[email protected]
    github.com/gin-gonic/[email protected] github.com/go-playground/[email protected]
    github.com/gin-gonic/[email protected] github.com/go-playground/[email protected]
    github.com/gin-gonic/[email protected] github.com/golang/[email protected]
    github.com/gin-gonic/[email protected] github.com/json-iterator/[email protected]
    github.com/gin-gonic/[email protected] github.com/leodido/[email protected]
    github.com/gin-gonic/[email protected] github.com/mattn/[email protected]
    github.com/gin-gonic/[email protected] github.com/stretchr/[email protected]
    github.com/gin-gonic/[email protected] github.com/ugorji/go/[email protected]
    github.com/gin-gonic/[email protected] gopkg.in/go-playground/[email protected]
    github.com/gin-gonic/[email protected] gopkg.in/go-playground/[email protected]
    github.com/gin-gonic/[email protected] gopkg.in/[email protected]
    github.com/json-iterator/[email protected] github.com/davecgh/[email protected]
    github.com/json-iterator/[email protected] github.com/google/[email protected]
    github.com/json-iterator/[email protected] github.com/modern-go/[email protected]
    github.com/json-iterator/[email protected] github.com/modern-go/[email protected]
    github.com/json-iterator/[email protected] github.com/stretchr/[email protected]
    golang.org/x/[email protected] golang.org/x/[email protected]
    gopkg.in/[email protected] gopkg.in/[email protected]
    github.com/gin-contrib/[email protected] github.com/stretchr/[email protected]
    github.com/stretchr/[email protected] github.com/davecgh/[email protected]
    github.com/stretchr/[email protected] github.com/pmezard/[email protected]
    github.com/stretchr/[email protected] github.com/stretchr/[email protected]
    github.com/ugorji/go/[email protected] github.com/ugorji/[email protected]
    github.com/ugorji/[email protected] github.com/ugorji/go/[email protected]
    
  • 有并发问题, 一次bind 会消耗掉多个decoder

    有并发问题, 一次bind 会消耗掉多个decoder

    func TestXX(t *testing.T) {
    	wg := sync.WaitGroup{}
    	for i := 1; i < 3; i++ {
    		wg.Add(1)
    		go func() {
    			defer wg.Done()
    			result := make(map[string][]Version, 0)
    			err := Client.
    				GET("http://chartmuseum/api/charts").
    				SetHeader(gout.H{"Content-Type": "application/json"}).
    				BindJSON(&result).Do()
    			if err != nil {
    				t.Fatal(err)
    			}
    			t.Log(result["consul"])
    
    		}()
    	}
    	wg.Wait()
    }
    

    有并发问题, 一次bind 会消耗掉多个decoder 目标: 应该一次bind,消耗一个decoder

  • 在bind 前,缺少对http status 的判断 比如404

    在bind 前,缺少对http status 的判断 比如404

    Feature Request

    Is your feature request related to a problem? Please describe:

    Describe the feature you'd like:

    Describe alternatives you've considered:

    Teachability, Documentation, Adoption, Migration Strategy:

  • 指定网卡请求功能

    指定网卡请求功能

    curl可以使用interface参数指定网卡请求,当遇到多张网卡的时候想要指定一张网卡进行请求就需要用到了 golang我测试了一下也可以实现 希望作者能集成到库中 实现源码 https://github.com/hardPass/code_go_network/blob/master/Golang%20%E7%94%A8%E6%8C%87%E5%AE%9A%E7%BD%91%E5%8D%A1%E7%9A%84IP%E5%8F%91%E9%80%81HTTP%E8%AF%B7%E6%B1%82.go

fhttp is a fork of net/http that provides an array of features pertaining to the fingerprint of the golang http client.

fhttp The f stands for flex. fhttp is a fork of net/http that provides an array of features pertaining to the fingerprint of the golang http client. T

Jan 1, 2023
Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http
Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http

fasthttp Fast HTTP implementation for Go. Currently fasthttp is successfully used by VertaMedia in a production serving up to 200K rps from more than

Jan 2, 2023
Speak HTTP like a local. (the simple, intuitive HTTP console, golang version)

http-gonsole This is the Go port of the http-console. Speak HTTP like a local Talking to an HTTP server with curl can be fun, but most of the time it'

Jul 14, 2021
NATS HTTP Round Tripper - This is a Golang http.RoundTripper that uses NATS as a transport.

This is a Golang http.RoundTripper that uses NATS as a transport. Included is a http.RoundTripper for clients, a server that uses normal HTTP Handlers and any existing http handler mux and a Caddy Server transport.

Dec 6, 2022
Simple HTTP package that wraps net/http

Simple HTTP package that wraps net/http

Jan 17, 2022
Http-conection - A simple example of how to establish a HTTP connection using Golang

A simple example of how to establish a HTTP connection using Golang

Feb 1, 2022
Full-featured, plugin-driven, extensible HTTP client toolkit for Go

gentleman Full-featured, plugin-driven, middleware-oriented toolkit to easily create rich, versatile and composable HTTP clients in Go. gentleman embr

Dec 23, 2022
An enhanced http client for Golang
An enhanced http client for Golang

go-http-client An enhanced http client for Golang Documentation on go.dev ?? This package provides you a http client package for your http requests. Y

Dec 23, 2022
An enhanced HTTP client for Go
An enhanced HTTP client for Go

Heimdall Description Installation Usage Making a simple GET request Creating a hystrix-like circuit breaker Creating a hystrix-like circuit breaker wi

Jan 9, 2023
Enriches the standard go http client with retry functionality.

httpRetry Enriches the standard go http client with retry functionality using a wrapper around the Roundtripper interface. The advantage of this libra

Dec 10, 2022
http client for golang
http client for golang

Request HTTP client for golang, Inspired by Javascript-axios Python-request. If you have experience about axios or requests, you will love it. No 3rd

Dec 18, 2022
Simple HTTP and REST client library for Go

Resty Simple HTTP and REST client library for Go (inspired by Ruby rest-client) Features section describes in detail about Resty capabilities Resty Co

Jan 1, 2023
A nicer interface for golang stdlib HTTP client

rq A nicer interface for golang stdlib HTTP client Documents rq: here client: here jar: here Why? Because golang HTTP client is a pain in the a... Fea

Dec 12, 2022
A Go HTTP client library for creating and sending API requests
A Go HTTP client library for creating and sending API requests

Sling Sling is a Go HTTP client library for creating and sending API requests. Slings store HTTP Request properties to simplify sending requests and d

Jan 7, 2023
a Go HTTP client with timeouts

go-httpclient requires Go 1.1+ as of v0.4.0 the API has been completely re-written for Go 1.1 (for a Go 1.0.x compatible release see 1adef50) Provides

Nov 10, 2022
GoRequest -- Simplified HTTP client ( inspired by nodejs SuperAgent )
GoRequest -- Simplified HTTP client ( inspired by nodejs SuperAgent )

GoRequest GoRequest -- Simplified HTTP client ( inspired by famous SuperAgent lib in Node.js ) "Shooting Requests like a Machine Gun" - Gopher Sending

Jan 1, 2023
Retry, Race, All, Some, etc strategies for http.Client calls

reqstrategy Package reqstrategy provides functions for coordinating http.Client calls. It wraps typical call strategies like making simultaneous reque

Apr 30, 2021
An enhanced HTTP client for Go
An enhanced HTTP client for Go

Heimdall Description Installation Usage Making a simple GET request Creating a hystrix-like circuit breaker Creating a hystrix-like circuit breaker wi

Jan 2, 2023
Go Supertest is minimalize HTTP Client Testing only for Gin Framework

Go Supertest is minimalize HTTP Client Testing only for Gin Framework, inspired by Supertest package library HTTP Client Testing for Express.js Framework.

May 22, 2022