今日头条发布涉及的参数一共是a_bogus、_signature、x-csrf-token、Signature
视频发布:
请求https://mp.toutiao.com/mp/agw/creator_center/user_info接口,获取用户的基本信息,后面需要用到
请求https://mp.toutiao.com/xigua/api/upload/getAuthKey接口,获取后在authorization加密用的参数,这个接口没有加密,带cookie和data直接请求就行
请求https://vod.bytedanceapi.com/?Action=ApplyUploadInner接口,携带authorization和x-amz-security-token去请求,x-amz-security-token是getAuthKey返回的;authorization中的Signature是加密值,是个标准的sha256和Hmacsha256,往上跟栈就能找到,没经过bdms,authorization这个参数生成的值写在本地最好封装一下,很绕,后面还会用到
请求https://tos-lf-x.snssdk.com/upload接口,这个接口是视频分片接口,每片按5mb分,需要携带的参数都是常量,然后authorization参数是上一个接口请求返回的,续上就可以了;这里的分片就按照总大小(字节)去除以每片大小看需要切几片,几片就循环几次接口

请求https://tos-lf-x.snssdk.com/upload/v1,这个接口跟上面的一样,是合并校验视频接口,url后缀不一样而已他的Payload是以键值对转换成字符串的形式传过去的, 这里需要去拼合一下,很简单,不过我代码写的很丑,你们就当看乐子就行了哈,返回的就是一些hash key值,我也不知道有啥用,但是根据我做发布的经验,这种分片后的最后一个接口一般都要请求,大概率就是合并的接口。

请求https://vod.bytedanceapi.com/?Action=CommitUploadInner接口,这个接口是获取视频信息的,authorization也是标准是加密,但是他是拿ApplyUploadInner接口的返回值去加密的,所以上面说的要封装就是这个原因(其实你不请求也行,用fs库照样能拿到视频信息😂)
接着就是请求封面图的接口了
请求https://mp.toutiao.com/xigua/api/upload/getAuthKey接口,获取封面图需要的值,带cookie正常请求就可以了
请求https://vas-lf-x.ixigua.com/video/openapi/v1/?action=GetImageUploadParams接口,它的authorization是上一个接口返回的,然后他的载荷需要传一个s、file_size;s你开源随机生成,file_size就是文件字节大小了,返回的值就拼合了下一个请求接口的url

请求https://tos-d-ct-hl.snssdk.com/tos-cn-i-0004/接口,这个是上传图片的,载荷要携带图片的二进制数据,然后还要crc32,crc32用库把图片文件传进去生成值就行了,Authorization依旧是上个接口返回的;
请求https://vas-lf-x.ixigua.com/video/openapi/v1/?action=GetImageUploadInfos接口,这个接口就是图片上传成功后返回的标识吧,后面发布要用
请求https://mp.toutiao.com/xigua/api/upload/GetImgUrl接口,url后缀就是GetImageUploadInfos接口的返回值,然后他返回的是线上图片的地址
最后就是发布了,请求https://mp.toutiao.com/xigua/api/upload/PublishVideo接口,把前面数据拼在一起发布就行了,x-csrf-token在cookie里面就能拿到了

文章发布其实就跟封面图差不多,你们看完视频就会文章的,我就不讲了,然后a_bogus和_signature网上都有。
结果展示:
视频发布:


文章发布:


图文发布:











