Evil0ctal / Douyin_TikTok_Download_API

🚀「Douyin_TikTok_Download_API」是一个开箱即用的高性能异步抖音、快手、TikTok、Bilibili数据爬取工具,支持API调用,在线批量解析及下载。
https://douyin.wtf
Apache License 2.0
8.65k stars 1.35k forks source link

关于如何解决 抖音接口无法使用的临时方案 #308

Closed javaswing closed 7 months ago

javaswing commented 10 months ago

原因

经过自动的排查,发现代码本身没有什么问题。还是老问题cookies失效了。

如何获取有效的cookies

  1. 打开PC抖音官网,手动扫码登录

  2. 打开chrom调试工具,并执行以下代码

document.cookie.split(";").filter(e => [
    "s_v_web_id",
    "ttwid",
    "passport_csrf_token",
    "passport_csrf_token_default",
    "__ac_nonce",
    "__ac_signature",
    "douyin.com",
    "device_web_cpu_core",
    "device_web_memory_size",
    "architecture",
    "webcast_local_quality",
    "IsDouyinActive",
    "home_can_add_dy_2_desktop",
    "strategyABtestKey",
    "stream_recommend_feed_params",
    "VIDEO_FILTER_MEMO_SELECT",
    "volume_info",
    "FORCE_LOGIN",
    "csrf_session_id",
    "bd_ticket_guard_client_data",
    "msToken",
    "msToken",
    "tt_scid"
].includes(e.split("=")[0].trim())).join(";")

其输出如下:

'__ac_signature=xxxxxxxxx; webcast_local_quality=null; stream_recommend_feed_params=%22%7B%5C%22cookie_enabled%5C%22%3Atrue%2C%5C%22screen_width%5C%22%3A1920%2C%5C%22screen_height%5C%22%3A1080%2C%5C%22browser_online%5C%22%3Atrue%2C%5C%22cpu_core_num%5C%22%3A12%2C%5C%22device_memory%5C%22%3A8%2C%5C%22downlink%5C%22%3A10%2C%5C%22effective_type%5C%22%3A%5C%224g%5C%22%2C%5C%22round_trip_time%5C%22%3A100%7D%22; passport_csrf_token=1eb85f423b143d00188f1809bd043015; passport_csrf_token_default=1eb85f423b143d00188f1809bd043015; s_v_web_id=verify_lo73dq14_mzz8hbXI_dpiQ_42YL_Ag5H_kHBHpUjc4Peg; douyin.com; device_web_cpu_core=12; device_web_memory_size=8; FORCE_LOGIN=%7B%22videoConsumedRemainSeconds%22%3A180%2C%22isForcePopClose%22%3A1%7D; volume_info=%7B%22isUserMute%22%3Afalse%2C%22isMute%22%3Afalse%2C%22volume%22%3A0.5%7D; csrf_session_id=2ba101be9d71fdac73ce7c0a20e97ff3; __ac_nonce=0653b2046002b88ceba2c; IsDouyinActive=true; VIDEO_FILTER_MEMO_SELECT=%7B%22expireTime%22%3A1698978779536%2C%22type%22%3A1%7D; bd_ticket_guard_client_data=eyJiZC10aWNrZXQtZ3VhcmQtdmVyc2lvbiI6MiwiYmQtdGlja2V0LWd1YXJkLWl0ZXJhdGlvbi12ZXJzaW9uIjoxLCJiZC10aWNrZXQtZ3VhcmQtcmVlLXB1YmxpYy1rZXkiOiJCRkxDOUdEa2RNeGtISUZUS0JGTzVURU5WNWczN05OV3VQQWM0TVpZbzZLaG9ReVVKSkZ6Rm1DMlR6SGlycEh2V2pXbjJBWmFMVW8yZm92VW5GQmw1TEE9IiwiYmQtdGlja2V0LWd1YXJkLXdlYi12ZXJzaW9uIjoxfQ%3D%3D; strategyABtestKey=%221698373980.611%22; home_can_add_dy_2_desktop=%221%22; msToken=txxxxxxxx; tt_scid=kUkr4UAhr0CNjr1tjvYq2nItF-toAFMjwYTImL-GGFh3dCgCdSCxc0Lj8ILUyW1.9e93; msToken=xxxxxxxxx''

输出的cookies还缺少两个字段 : ttwidarchitecture

最终cookies,类似如下

'ttwid=xxxxxxxxxxxxx;architecture=amd64;__ac_signature=xxxxxxxxx; webcast_local_quality=null; stream_recommend_feed_params=xxxxx; passport_csrf_token=1eb85f423b143d00188f1809bd043015; passport_csrf_token_default=1eb85f423b143d00188f1809bd043015; s_v_web_id=verify_lo73dq14_mzz8hbXI_dpiQ_42YL_Ag5H_kHBHpUjc4Peg; douyin.com; device_web_cpu_core=12; device_web_memory_size=8; FORCE_LOGIN=%7B%22videoConsumedRemainSeconds%22%3A180%2C%22isForcePopClose%22%3A1%7D; volume_info=%7B%22isUserMute%22%3Afalse%2C%22isMute%22%3Afalse%2C%22volume%22%3A0.5%7D; csrf_session_id=2ba101be9d71fdac73ce7c0a20e97ff3; __ac_nonce=0653b2046002b88ceba2c; IsDouyinActive=true; VIDEO_FILTER_MEMO_SELECT=%7B%22expireTime%22%3A1698978779536%2C%22type%22%3A1%7D; bd_ticket_guard_client_data=eyJiZC10aWNrZXQtZ3VhcmQtdmVyc2lvbiI6MiwiYmQtdGlja2V0LWd1YXJkLWl0ZXJhdGlvbi12ZXJzaW9uIjoxLCJiZC10aWNrZXQtZ3VhcmQtcmVlLXB1YmxpYy1rZXkiOiJCRkxDOUdEa2RNeGtISUZUS0JGTzVURU5WNWczN05OV3VQQWM0TVpZbzZLaG9ReVVKSkZ6Rm1DMlR6SGlycEh2V2pXbjJBWmFMVW8yZm92VW5GQmw1TEE9IiwiYmQtdGlja2V0LWd1YXJkLXdlYi12ZXJzaW9uIjoxfQ%3D%3D; strategyABtestKey=%221698373980.611%22; home_can_add_dy_2_desktop=%221%22; msToken=xxxxxxxxxx; tt_scid=kUkr4UAhr0CNjr1tjvYq2nItF-toAFMjwYTImL-GGFh3dCgCdSCxc0Lj8ILUyW1.9e93; msToken=xxxxxx'

合计23个字段

替换原有项目的cookies

image

然后重新启动就能正常返回json了,希望能对使用者有帮助 !!!!

pubg-Eddie commented 10 months ago

strategyABtestKey、VIDEO_FILTER_MEMO_SELECT、volume_info和csrf_session_id这四个没有找到

javaswing commented 10 months ago

strategyABtestKey、VIDEO_FILTER_MEMO_SELECT、volume_info和csrf_session_id这四个没有找到

登录之后,执行js脚本还没有?你看我发的图,上面是有的。你可以安装这个chrome插件看下所有cookies image

pubg-Eddie commented 10 months ago

image

javaswing commented 10 months ago

strategyABtestKey

image

pubg-Eddie commented 10 months ago

VIDEO_FILTER_MEMO_SELECT这个参数你这边查得到吗

javaswing commented 10 months ago

VIDEO_FILTER_MEMO_SELECT这个参数你这边查得到吗

都有的,看我步骤2贴出的值,就是我执行的结果。只把value部分换成了xxxx

moo611 commented 10 months ago

扫码登录后的cookie取你说的那23个字段貌似也不行了。不过我在网页接口里复制整个的cookie是可以的。

howellhux commented 10 months ago

之前通过从浏览器copy ttwid替换是可以的,从前天开始这种方法也不行了。 各位大佬还有其他的方案吗?

nszy007 commented 10 months ago

昨天试了,不行。。

javaswing commented 10 months ago

更新下最新的cookies要求

odin_tt=xxx;sessionid_ss=xxx;ttwid=xxx;passport_csrf_token=xxx;msToken=xxx;

nszy007 commented 10 months ago

更新下最新的cookies要求

odin_tt=xxx;sessionid_ss=xxx;ttwid=xxx;passport_csrf_token=xxx;msToken=xxx;

可以,已成功

javaswing commented 10 months ago

更新下最新的cookies要求

odin_tt=xxx;sessionid_ss=xxx;ttwid=xxx;passport_csrf_token=xxx;msToken=xxx;

后面提个PR在confing.ini中加一个配置项

nszy007 commented 10 months ago

请问是如何排查问题出在cookie上,又如何调试到底哪些cookie字段是生效的?

javaswing @.***> 于2023年11月6日周一 10:26写道:

更新下最新的cookies要求

odin_tt=xxx;sessionid_ss=xxx;ttwid=xxx;passport_csrf_token=xxx;msToken=xxx;

后面提个PR在confing.ini中加一个配置项

— Reply to this email directly, view it on GitHub https://github.com/Evil0ctal/Douyin_TikTok_Download_API/issues/308#issuecomment-1793982982, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJLTGZZLOU7XVYO7EHEEDITYDBDGJAVCNFSM6AAAAAA6SF4D5CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOJTHE4DEOJYGI . You are receiving this because you commented.Message ID: @.***>

javaswing commented 10 months ago

请问是如何排查问题出在cookie上,又如何调试到底哪些cookie字段是生效的? javaswing @.> 于2023年11月6日周一 10:26写道: 更新下最新的cookies要求 odin_tt=xxx;sessionid_ss=xxx;ttwid=xxx;passport_csrf_token=xxx;msToken=xxx; 后面提个PR在confing.ini中加一个配置项 — Reply to this email directly, view it on GitHub <#308 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJLTGZZLOU7XVYO7EHEEDITYDBDGJAVCNFSM6AAAAAA6SF4D5CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOJTHE4DEOJYGI . You are receiving this because you commented.Message ID: @.>

参考别的开源项目,哈哈

flashclub commented 10 months ago

请问是如何排查问题出在cookie上,又如何调试到底哪些cookie字段是生效的? javaswing @._> 于2023年11月6日周一 10:26写道: 更新下最新的cookies要求 odin_tt=xxx;sessionid_ss=xxx;ttwid=xxx;passport_csrf_token=xxx;msToken=xxx; 后面提个PR在confing.ini中加一个配置项 — Reply to this email directly, view it on GitHub <#308 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJLTGZZLOU7XVYO7EHEEDITYDBDGJAVCNFSM6AAAAAA6SF4D5CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOJTHE4DEOJYGI . You are receiving this because you commented.Message ID: _@_._>

参考别的开源项目,哈哈

大佬 请问下最终是25个字段吗,我全填进去了提示参数不合法

javaswing commented 10 months ago

odin_tt=xxx;sessionid_ss=xxx;ttwid=xxx;passport_csrf_token=xxx;msToken=xxx;

请问是如何排查问题出在cookie上,又如何调试到底哪些cookie字段是生效的? javaswing @._> 于2023年11月6日周一 10:26写道: 更新下最新的cookies要求 odin_tt=xxx;sessionid_ss=xxx;ttwid=xxx;passport_csrf_token=xxx;msToken=xxx; 后面提个PR在confing.ini中加一个配置项 — Reply to this email directly, view it on GitHub <#308 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJLTGZZLOU7XVYO7EHEEDITYDBDGJAVCNFSM6AAAAAA6SF4D5CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOJTHE4DEOJYGI . You are receiving this because you commented.Message ID: _@_._>

参考别的开源项目,哈哈

大佬 请问下最终是25个字段吗,我全填进去了提示参数不合法

现在只需要这几个字段:odin_tt=xxx;sessionid_ss=xxx;ttwid=xxx;passport_csrf_token=xxx;msToken=xxx;

flashclub commented 10 months ago

odin_tt=xxx;sessionid_ss=xxx;ttwid=xxx;passport_csrf_token=xxx;msToken=xxx;

请问是如何排查问题出在cookie上,又如何调试到底哪些cookie字段是生效的? javaswing @._> 于2023年11月6日周一 10:26写道: 更新下最新的cookies要求 odin_tt=xxx;sessionid_ss=xxx;ttwid=xxx;passport_csrf_token=xxx;msToken=xxx; 后面提个PR在confing.ini中加一个配置项 — Reply to this email directly, view it on GitHub <#308 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJLTGZZLOU7XVYO7EHEEDITYDBDGJAVCNFSM6AAAAAA6SF4D5CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOJTHE4DEOJYGI . You are receiving this because you commented.Message ID: _@_._>

参考别的开源项目,哈哈

大佬 请问下最终是25个字段吗,我全填进去了提示参数不合法

现在只需要这几个字段:odin_tt=xxx;sessionid_ss=xxx;ttwid=xxx;passport_csrf_token=xxx;msToken=xxx;

好的感谢,已经获取到视频了,留个微信进一步交流?

javaswing commented 10 months ago

odin_tt=xxx;sessionid_ss=xxx;ttwid=xxx;passport_csrf_token=xxx;msToken=xxx;

请问是如何排查问题出在cookie上,又如何调试到底哪些cookie字段是生效的? javaswing @._> 于2023年11月6日周一 10:26写道: 更新下最新的cookies要求 odin_tt=xxx;sessionid_ss=xxx;ttwid=xxx;passport_csrf_token=xxx;msToken=xxx; 后面提个PR在confing.ini中加一个配置项 — Reply to this email directly, view it on GitHub <#308 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJLTGZZLOU7XVYO7EHEEDITYDBDGJAVCNFSM6AAAAAA6SF4D5CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOJTHE4DEOJYGI . You are receiving this because you commented.Message ID: _@_._>

参考别的开源项目,哈哈

大佬 请问下最终是25个字段吗,我全填进去了提示参数不合法

现在只需要这几个字段:odin_tt=xxx;sessionid_ss=xxx;ttwid=xxx;passport_csrf_token=xxx;msToken=xxx;

好的感谢,已经获取到视频了,留个微信进一步交流? 可以通过邮箱联系:zxdlovejava@gmail.com

fanlushuai commented 9 months ago

@javaswing 你好,只是带这几个cookie就ok了吗?

现在只需要这几个字段:odin_tt=xxx;sessionid_ss=xxx;ttwid=xxx;passport_csrf_token=xxx;msToken=xxx;

尝试了几次,没有一次成功。依然提示参数不合法。

fanlushuai commented 9 months ago

更新下最新的cookies要求 odin_tt=xxx;sessionid_ss=xxx;ttwid=xxx;passport_csrf_token=xxx;msToken=xxx;

可以,已成功

老哥,现在还行吗?

javaswing commented 9 months ago

@javaswing 你好,只是带这几个cookie就ok了吗?

现在只需要这几个字段:odin_tt=xxx;sessionid_ss=xxx;ttwid=xxx;passport_csrf_token=xxx;msToken=xxx;

尝试了几次,没有一次成功。依然提示参数不合法。

我这边尝试的是 ok 的

fanlushuai commented 9 months ago

@javaswing 你好,只是带这几个cookie就ok了吗?

现在只需要这几个字段:odin_tt=xxx;sessionid_ss=xxx;ttwid=xxx;passport_csrf_token=xxx;msToken=xxx;

尝试了几次,没有一次成功。依然提示参数不合法。

我这边尝试的是 ok 的

我又试了一下,请求ok了。就是不返回数据?

fanlushuai commented 9 months ago

https://www.douyin.com/aweme/v1/web/aweme/post/ 这个接口

androidformax commented 9 months ago

I am add coockies in format odin_tt=39d3fb9b36...eac8ce3ff8067c8a1;sessionid_ss=1a268f0...d98b;ttwid=1%7...e03b09;passport_csrftoken=1c...884264;msToken=5X...z=; (naturally without the triplets) to DouYinCookies =

add 'cookie': ' to 47 string of scrapper

restart docker... Do not work for me :(

nicknamexiaozui commented 8 months ago

@javaswing 你好,只是带这几个cookie就ok了吗?

现在只需要这几个字段:odin_tt=xxx;sessionid_ss=xxx;ttwid=xxx;passport_csrf_token=xxx;msToken=xxx;

尝试了几次,没有一次成功。依然提示参数不合法。

我这边尝试的是 ok 的

按照描述,设置了cookie,获取到的json。怎么aweme_detail的值是None啊。这样就无法下载视频了吧 image

javaswing commented 8 months ago

@javaswing 你好,只是带这几个cookie就ok了吗?

现在只需要这几个字段:odin_tt=xxx;sessionid_ss=xxx;ttwid=xxx;passport_csrf_token=xxx;msToken=xxx;

尝试了几次,没有一次成功。依然提示参数不合法。

我这边尝试的是 ok 的

按照描述,设置了cookie,获取到的json。怎么aweme_detail的值是None啊。这样就无法下载视频了吧 image

我这PC版本登录后,填入cookies是可以正常获取的。

image

响应

image
Evil0ctal commented 7 months ago

无需使用cookie,使用动态代理即可解决问题。