Giter VIP home page Giter VIP logo

f2's Introduction

Blog •  GitHub •  Gitee •  访客统计

👨‍💻 I Want To Say 🙋‍♂️

✍️  热爱计算机科学和IT互联网事业!

  Strive to improve my coding level on the way of learning in the future.

  在未来学习路上努力提升自己编码水平。

💪 正在学习:

   C Python Java HTML5 TypeScript

🧠 计划学习:

   PHP Flutter Nodejs Qt jQuery Docker Shell Script

🧰 常用的工具:

   Windows Linux Ios Android Google Chrome Edge Visual Studio Code Git GitHub

ios VSCode python javascript vue github node

🚀 Actions 🚀




🎯 𝙼𝚎𝚝𝚛𝚒𝚌𝚜 💯

base metrics

f2's People

Contributors

johnserf-seed avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

f2's Issues

[QUESTION] 如何更改文件命名规则的默认分离符号?

问题描述
如题

其他细节
因为我不想下载重复的内容,所以把f2的下载文件夹合并到TikTokDownloadTools里面了。
虽然'{create}'在两个程序内的参数是一样的,但是我不知道如何更改默认分离符号。

请看下方文件命名(截图/代码示例);
f2的后半部分的日期是由 "."分离的。
而TikTokDownloadTools是由 ”-“分离的。

导致当使用同一个参数 '{create}' 时,依然会出现相同的文件内容重复下载。

截图/代码示例
f2:
2021-08-30 14.01.12_video.mp4

TikTokDownloadTools:
2021-08-30 14-01-12_video.mp4

期望的支持
如何更改文件命名规则的默认分离符号 (特别是后半部分)

[BUG]设置interval之后有的时候找不到对应的作品

设置interval之后有的时候找不到对应的作品
例如设置 interval为 2022-01-01|2023-01-01
在这个url运行就找不到作品
https://www.douyin.com/user/MS4wLjABAAAA6Y_2dEfQL7RUr6515qVJXINmruMWlL99pxhdMVjJfqs
设置 interval为 "all"就能找到。
log:
INFO 筛选日期区间:2022-01-01 00:00:00 至 2023-01-01 23:59:59
WARNING 作品发布时间不在指定区间内:2024-03-01 10-44-38
....
WARNING 没有找到符合条件的作品

[BUG] tuple index out of range

详细描述错误
之前遇到的问题:

单击展开 在使用函数 `f2 dy -c app.yaml --auto-cookie chrome` 的时候, 控制台提示 `tuple index out of range`。

我重装了 f2 这个项目在本地。
第一次时,使用函数 f2 dy -c app.yaml --auto-cookie chrome 函数很顺利。
可以在 app.yaml 文件中写入 cookie值。
当尝试运行程序时,例如:
$ f2 dy -c f2/conf/app.yaml

会提示 tuple index out of range
程序无法实现下载功能。

在卸载所有依赖及 f2 后,重新使用 pip install f2 重新下载所有依赖及 f2
程序执行成功。
函数 f2 dy --init-config dy.yaml 运行成功.。
使用函数 f2 dy -c app.yaml --auto-cookie chrome 更新cookie,
发生错误:

请前往QA文档 https://johnserf-seed.github.io/f2/question-answer/qa.html 查看相关帮助
ERROR    自动获取Cookie失败: tuple index out of range
自动获取Cookie失败: tuple index out of range
Aborted!

目前遇到的问题:
配置文件路径不存在

在使用f2 -d DEBUG dy -c app.yaml -u https://xxx后,提示错误:
FileNotFound
详细traceback请看

系统平台

单击展开 Q:你在哪个平台(Win/Linux/Mac)上运行?你使用的是什么浏览器?你使用的是什么终端软件?你使用的F2是什么版本?

A:

  • 操作系统: [Windows 10 x64 22H2 19045.4046]
  • 浏览器 [Chrome 120.0.6099.110 (Official Build) (64-bit) (cohort: Stable Installs & Version Pins)]
  • 终端 [Windows Terminal 1.19.10573.0 + Git Bash 2.42.0.windows.2]
  • F2版本 [0.0.1.4]

错误重现
之前遇到的问题:

单击展开 Q: 请你复制并粘贴出错时运行的命令和配置文件内容,以及重现该行为的步骤。如果你一次性就提供完整信息,就会节省很多解决问题的时间。

A:

  1. 使用命令 f2 dy -c app.yaml --auto-cookie chrome 后报错
  2. 报错:
    INFO App: douyin
    请前往QA文档 https://johnserf-seed.github.io/f2/question-answer/qa.html 查看相关帮助
    ERROR 自动获取Cookie失败: tuple index out of range
    自动获取Cookie失败: tuple index out of range
    Aborted
  3. 无更多信息

Q: 请添加调试命令f2 -d DEBUG重新运行出错的命令并提供日志目录下的日志文件。

A: 2024-03-03-19-06-19.log

目前遇到的问题:

单击展开 Q: 请你复制并粘贴出错时运行的命令和配置文件内容,以及重现该行为的步骤。如果你一次性就提供完整信息,就会节省很多解决问题的时间。

A:

  1. 使用命令 f2 -d DEBUG -c app.yaml -u https://xxx 后报错

image

app - Copy.txt

Q: 请添加调试命令f2 -d DEBUG重新运行出错的命令并提供日志目录下的日志文件。

A:
2024-03-31-00-50-22.log
其实这个log啥也没有。。但是在输出终端里有对应部分程序的报错。如上图

预期行为
之前的问题:

单击展开 程序自主在 `app.yaml` 中添加用户 cookie 及其他操作, 例如: `f2 dy -c f2/conf/app.yaml`

现在的问题:
不应该出现错误啊?配置文件搁f2\conf里躺的好好的呢,不会找不到的啊?

屏幕截图
之前的问题:

单击展开 Windows Terminal: ![image](https://github.com/Johnserf-Seed/f2/assets/81968849/b7eaf712-81d6-41fb-b6db-d03aa7c150be) ![image](https://github.com/Johnserf-Seed/f2/assets/81968849/e41c4203-7f2f-4f30-865d-6d5345a4195c)

Git Bash:
image

现在的问题:
image
image
image
image
image

其他
之前的问题:

单击展开 在第一次安装后执行其他命令时也会报错。 但是程序提供了对应了log文件。 可惜重装之后并未解决,所以之前的log文件都被删除了。

[BUG]翻译代码逻辑错误

测试代码执行位置:f2/i18n/translator.py,将语言设置为en_US

    ...
    def gettext(self, message):
        _ = self.load_translations("en_US")
        if _:
            return _(message)
        return message


_ = TranslationManager.get_instance().gettext

print(_(
    "未在响应的地址中找到sec_user_id, 检查链接是否为用户主页类名: {0}".format(
        "cls.__name__"
    )
))

在调用gettext函数之前对占位符进行格式化,会导致字符串找不到翻译而输出原文,输出结果:

未在响应的地址中找到sec_user_id, 检查链接是否为用户主页类名: cls.__name__

应该修改为下方代码,在调用gettext函数获取翻译后,再对占位符进行格式化。

    ...
    def gettext(self, message):
        _ = self.load_translations("en_US")
        if _:
            return _(message)
        return message


_ = TranslationManager.get_instance().gettext

print(_(
    "未在响应的地址中找到sec_user_id, 检查链接是否为用户主页类名: {0}").format("cls.__name__"
                                                                               ))

输入结果:

Not found sec_user_id in the response, check if the link is to the user's homepage class name: cls.__name__

TK 报代理错误

  • 我查看了 文档 以及 已关闭的问题 以寻找可能的解决方案。

  • 我在 常见的问题与解决办法 中找不到我的问题。

  • 你的问题是公开的,请注意删除个人敏感内容再上传

  • 不按照模板填写的问题将不会得到优先的处理。

  • 如果错误问题是可视化的,请在屏幕截图贴截图。如果你是开发者请在错误重现提供一个最小的代码示例来演示该问题。

  • 相同的问题将会被标记重复(duplicate),如果你的问题被标记为已确认(confirmed)则会在后续的推送中修复,请时刻留意。

  • 退订邮件提醒请点击邮件的底部unsubscribe

详细描述错误
#41 一样的问题,postman post没问题
查看了文档,更换过cookie,更换过账号,一个老号三个新号,换过代理,
app,conf两个文件都配置了代理
proxies: http: http:127.0.0.1:7890 https: http:127.0.0.1:7890

系统平台

单击展开 Q:你在哪个平台(Win/Linux/Mac)上运行?你使用的是什么浏览器?你使用的是什么终端软件?你使用的F2是什么版本?

A:

  • 操作系统: Win10 x64 22H2 19045.4170
  • 浏览器 Edge 122.0.2365.80
  • 终端 WT 1.19.10573.0
  • F2版本 0.0.1.4

错误重现

单击展开 Q: 请你复制并粘贴出错时运行的命令和配置文件内容,以及重现该行为的步骤。如果你一次性就提供完整信息,就会节省很多解决问题的时间。

A: f2 tk -u https://www.tiktok.com/@i_am_young22 -p D:\TKDL\

Q: 请添加调试命令f2 -d DEBUG重新运行出错的命令并提供日志目录下的日志文件。

A:

DEBUG 主配置参数:{'cookie': 'tt_csrf_token=39COEPWt-onK_pR474A8NLwU4ZAxFlQzNG-Q;
ak_bmsc=2FC6152435EA4CF02CFC567518E8C719000000000000000000000000000000YAAQVfrOF2sZtT+OAQAA5pGyQRcGZYebc5Gi3yv
Ph8ECeaj2tDsFCUlYUfdWydd75auBWIWNzEJRYNaMx9UiesjzQ442euVmljZQUXYaFOdC2DzpVH18fipppOWOwixJdiFM0LcZ+l4VnZwlR28Lh3
/S560OmpHbb8J+C7OTHVq2sDKkqVAx2OumDUwgjh81ibPUc2U3g8lDGSUYCLoF15367V9g61pdvah8xrGKb1Gu+CShDiaCnbaZGTPhDl5nQJORc
X5CAWjQCLHlTkYncDG9crkjlH3MDbkEBt1P2CZnIfMLCxytpmN3zGNqQ1a5KltsoPzZE9p3ikeMZqhgS7AX24XJBnr/pVhK+npuMNLS51tNVJc5
pJGOIcz0l8BbjElTT5jdiH7i; tt_chain_token=E6g2XDIGiGIPbx3J+F6Myw==; tiktok_webapp_theme=light;
odin_tt=4d1d245964f190da892332152aea32cf8d923bda18d5cb8770fa2b0d77c9a5b3a78ae7147d8054a28101f1b4f0493c60ff90abb
f374b18619b54298c7f78a1b836c03bc9e6ea1b18d4dd24e59f22cca7;
passport_csrf_token=2cf8cd16a31d90600bd6848861556528;
passport_csrf_token_default=2cf8cd16a31d90600bd6848861556528;
perf_feed_cache={%22expireTimestamp%22:1710669600000%2C%22itemIds%22:[%227322872697187290401%22%2C%227342139813
170007314%22%2C%227337841795700739360%22]}; s_v_web_id=verify_ltsj2jib_rXxraYyI_Kmn6_40XV_8IV5_Wxh3UskvrpWK;
multi_sids=6898153841922393093%3Ac74e00b7d30145b18dc15ea298590a73;
cmpl_token=AgQQAPOuF-RO0o-FxPiB9R08_5W8QaOT_4MhYNCYVA;
uid_tt=c588c030521147f6212b6f368f657fa67779a18aad2e46fe30895f0e53a24ba7;
uid_tt_ss=c588c030521147f6212b6f368f657fa67779a18aad2e46fe30895f0e53a24ba7;
sid_tt=c74e00b7d30145b18dc15ea298590a73; sessionid=c74e00b7d30145b18dc15ea298590a73;
sessionid_ss=c74e00b7d30145b18dc15ea298590a73; store-idc=useast5; store-country-code=us;
store-country-code-src=uid; tt-target-idc=useast8;
tt-target-idc-sign=XWbhqpmkjG0LeQ63okMfoozjbi0_0BniHv8oOH9XgvgNAXO7KJhFQ6WkJ3M_Hsqtcw93n7sZ-PrrhBfnAkc3MPWGnqZk
GxFk5Hc_7UG0yJ5dKZcDNaPnU-Iy9oP32fttztPzz-R3zCnvRdhj3r9Ok0zNbscJdFyrsi6j_VyaU0hynYyxxoDJiUdVRqrkVd4pOdULlJOVtFd
-6Con1K_QwFkEcr-ARf_xdV6Rwwj3wNvSIHY7FIslVSHODXWGBNNS6gtfcU8qChEL-T1L0nb6T9Y9qYam682egmgF8v7rQ1xB0GE3j-fe_SzKWB
LR_jOv_vZ8oYlCfkbFWxpfy0pvbATZRmcTOhZHjdpd4z6znaLligb0XwOEZ2WWUpSkfGlIfjZaG_CJIaIRB-F-3eDGeKUReNT5zTXXzmteFUwhx
JlZSq6rmwh0zdwWGV2SDX1nQgG6PSn9c78PRPssgBGOebR12SlBiwF69AT6Y7itVxBE4PNAgR3KoEk0G4c7b-F0;
last_login_method=handle; passport_fe_beating_status=true;
sid_guard=c74e00b7d30145b18dc15ea298590a73%7C1710499225%7C15551993%7CWed%2C+11-Sep-2024+10%3A40%3A18+GMT;
sid_ucp_v1=1.0.0-KDFjZjcxYjQyMjBiYmQxMjA0ZTExYTRmMGFhYzM0NzEwOTA2YTM2MzkKGAiFiJ_O8MvK3V8QmcvQrwYYsws4BEDqBxAEGg
d1c2Vhc3Q4IiBjNzRlMDBiN2QzMDE0NWIxOGRjMTVlYTI5ODU5MGE3Mw;
ssid_ucp_v1=1.0.0-KDFjZjcxYjQyMjBiYmQxMjA0ZTExYTRmMGFhYzM0NzEwOTA2YTM2MzkKGAiFiJ_O8MvK3V8QmcvQrwYYsws4BEDqBxAEG
gd1c2Vhc3Q4IiBjNzRlMDBiN2QzMDE0NWIxOGRjMTVlYTI5ODU5MGE3Mw;
ttwid=1%7CsoAyXFVQvGh8-gKdOfWXNlIz4wvNbDDe0G808ci-GkM%7C1710499225%7C7ba57974e6b4e8259520fb3cd0994188650543938a
abcd7119dda36cb3646ad4;
bm_sv=213CAEEBD1F9AC7442F23AD66067900AYAAQVfrOFz4atT+OAQAAvOeyQRcSZu2+LHMWmpKZtrpwXr7uwOJ24jnadhceN7fpdtdqm3aZ
voPf0UqiXclGIDgDXm7NYljbsQzX/i0u6GNspO2BFXl5XUqxGMzz9qWf7T3Ji47I6A3510meYQfoFwYPKV12PCKkWUPVOldXl3pXQBMZylFrM0O
meBCDRRlO3fORoy/LDHU7wd3cJME0TGTCX5+5vcL1XacJdv0bFp/z/gYk4la07ruZrKLKfqGW
1;
msToken=ewGH7q9FoakLYaZfcHvrcTRusZuL-EnPyoWsnbpoZ6dAgMU8BUP7HchdMVtzxeZmQrKuCSMlxslo9InJTgZY6FaNFzY1qhgdTNXbnv2
s7y5MidTUgzCIh5BUHx2It2oK_IEXdunpIh5Lpc4R2Q==;
msToken=8_YzLMQ1rEOGn-6_tYDqKMcG8e7F4ORosZxo_fiydYOUrHW0I7BlsKVT2c3rpuhLYVd5zwkciMmX4M3KsXc4oZIiuUtbldKYJrPr1lU
xRk3-u_W0OAUGw7Yjcj6LCO1S40OaQjJMOlVK6rmFtVk=', 'cover': True, 'desc': True, 'folderize': True, 'music': True,
'naming': '{create}{desc}', 'path': 'Download', 'mode': 'post', 'url': '', 'interval': 'all', 'timeout': 10,
'max_retries': 5, 'max_connections': 5, 'max_tasks': 5, 'page_counts': 5, 'max_counts': 0, 'proxies': {'http':
'http:127.0.0.1:7890', 'https': 'http:127.0.0.1:7890'}, 'headers': {'User-Agent': 'Mozilla/5.0 (Windows NT
10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36', 'Referer':
'https://www.tiktok.com/'}, 'msToken': {'url':
'https://mssdk-sg.tiktok.com/web/common?msToken=1Ab-7YxR9lUHSem0PraI_XzdKmpHb6j50L8AaXLAd2aWTdoJCYLfX_67rVQFE4U
wwHVHmyG_NfIipqrlLT3kCXps-5PYlNAqtdwEg7TrDyTAfCKyBrOLmhMUjB55oW8SPZ4_EkNxNFUdV7MquA==', 'magic': 538969122,
'version': 1, 'dataType': 8, 'strData':
'3BvqYbNXLLOcZehvxZVbjpAu7vq82RoWmFSJHLFwzDwJIZevE0AeilQfP55LridxmdGGjknoksqIsLqlMHMif0IFK/Br7JWqxOHnYuMwVCnttF
c0Y4MFvdVWM5FECiEulJC0Dc+eeVsNSrFnAc9K7fazqdglyJgGLSfXIJmgyCvvQ4pg0u5HBVVugLSWs242X42fjoWymaUCLZJQo6vi6WLyuV7l5
IC3Mg+lelr5xBQD6Q7hBIFEw8zzxJ1n2DyA4xLbOHTQdKvEtsK7XzyWwjpRnojPTbBl69Zosnuru+lOBIl+tFu/+hCQ1m0jYZwTP4rVE75L3Du6
+KZ5v/9TyFYjq7y3y9bGLP4d7yQueJbF90G1yrZ6htElrZ2vqZKDrIqBVbmOZr/nph12k2JKrITtN0R/pMsp0sJ4gesQnXxcD/pLOFAINHk7umg
be6LzJ7+TLUdGuO4M7xiEg/jCqhjgJX1izZ4NPoBDp35zRxj6Y6OrcstlTN/cv5sz663+Nco/mEwhGq2VwrL4gAIAPycndIsb48dPdtngmLqNDN
N0ZyVRjgqVIDXXrxigXCkR9CH89Dlrrb7QQqWVgRXz9/k5ihEM43BR3sd3mMU/XgFLN1Aoxf6GzzdxP2QPBI75/ZoHoAmu54v8gTmA3ntCGlEF0
zgaFGTdpkGdb+oZgyQM4pw1aAyxmFINXkpD3IKKoGev9kD9gTFnhiQMGCMemhZS7ZYdbuGu0Cb+lQKaL/QTt80FMyGmW8kzVy9xW/ja9BcdEJYR
oaufuFRkBFG5ay8x4WHLR6hEapXqQial/cREbLL4sQytpjtmnndFqvT7xN5DhgsLY2Z7451MJhD6NJXKNrMafGZSbItzQWY=',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/119.0.0.0 Safari/537.36'}, 'ttwid': {'url': 'https://www.tiktok.com/ttwid/check/', 'data':
'{"aid":1988,"service":"www.tiktok.com","union":false,"unionHost":"","needFid":false,"fid":"","migrate_priority
":0}', 'cookie':
'ttwid=1%7CovVQu2St-HXSHAdEfZ7tljPe151SZ88AbrlTirlaC6w%7C1701072604%7C49b17849da69bafc3638e794f3f26b30fe9677c52
53e65a2a5f615489846ce02'}, 'odin_tt': {'url':
'https://www.tiktok.com/passport/web/account/info/?aid=1459&app_language=zh-Hans&app_name=tiktok_web&browser_la
nguage=zh-CN&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%2
0NT%2010.0%3B%20Win64%3B%20x64%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F119.0.0.0%2
0Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&device_id=7306060721837852167&root_referer=https%3A%2F%
2Fwww.tiktok.com%2Flogin%2F'}}
DEBUG 自定义配置参数:{'cookie': 'tt_csrf_token=39COEPWt-onK_pR474A8NLwU4ZAxFlQzNG-Q;
ak_bmsc=2FC6152435EA4CF02CFC567518E8C719000000000000000000000000000000YAAQVfrOF2sZtT+OAQAA5pGyQRcGZYebc5Gi3yv
Ph8ECeaj2tDsFCUlYUfdWydd75auBWIWNzEJRYNaMx9UiesjzQ442euVmljZQUXYaFOdC2DzpVH18fipppOWOwixJdiFM0LcZ+l4VnZwlR28Lh3
/S560OmpHbb8J+C7OTHVq2sDKkqVAx2OumDUwgjh81ibPUc2U3g8lDGSUYCLoF15367V9g61pdvah8xrGKb1Gu+CShDiaCnbaZGTPhDl5nQJORc
X5CAWjQCLHlTkYncDG9crkjlH3MDbkEBt1P2CZnIfMLCxytpmN3zGNqQ1a5KltsoPzZE9p3ikeMZqhgS7AX24XJBnr/pVhK+npuMNLS51tNVJc5
pJGOIcz0l8BbjElTT5jdiH7i; tt_chain_token=E6g2XDIGiGIPbx3J+F6Myw==; tiktok_webapp_theme=light;
odin_tt=4d1d245964f190da892332152aea32cf8d923bda18d5cb8770fa2b0d77c9a5b3a78ae7147d8054a28101f1b4f0493c60ff90abb
f374b18619b54298c7f78a1b836c03bc9e6ea1b18d4dd24e59f22cca7;
passport_csrf_token=2cf8cd16a31d90600bd6848861556528;
passport_csrf_token_default=2cf8cd16a31d90600bd6848861556528;
perf_feed_cache={%22expireTimestamp%22:1710669600000%2C%22itemIds%22:[%227322872697187290401%22%2C%227342139813
170007314%22%2C%227337841795700739360%22]}; s_v_web_id=verify_ltsj2jib_rXxraYyI_Kmn6_40XV_8IV5_Wxh3UskvrpWK;
multi_sids=6898153841922393093%3Ac74e00b7d30145b18dc15ea298590a73;
cmpl_token=AgQQAPOuF-RO0o-FxPiB9R08_5W8QaOT_4MhYNCYVA;
uid_tt=c588c030521147f6212b6f368f657fa67779a18aad2e46fe30895f0e53a24ba7;
uid_tt_ss=c588c030521147f6212b6f368f657fa67779a18aad2e46fe30895f0e53a24ba7;
sid_tt=c74e00b7d30145b18dc15ea298590a73; sessionid=c74e00b7d30145b18dc15ea298590a73;
sessionid_ss=c74e00b7d30145b18dc15ea298590a73; store-idc=useast5; store-country-code=us;
store-country-code-src=uid; tt-target-idc=useast8;
tt-target-idc-sign=XWbhqpmkjG0LeQ63okMfoozjbi0_0BniHv8oOH9XgvgNAXO7KJhFQ6WkJ3M_Hsqtcw93n7sZ-PrrhBfnAkc3MPWGnqZk
GxFk5Hc_7UG0yJ5dKZcDNaPnU-Iy9oP32fttztPzz-R3zCnvRdhj3r9Ok0zNbscJdFyrsi6j_VyaU0hynYyxxoDJiUdVRqrkVd4pOdULlJOVtFd
-6Con1K_QwFkEcr-ARf_xdV6Rwwj3wNvSIHY7FIslVSHODXWGBNNS6gtfcU8qChEL-T1L0nb6T9Y9qYam682egmgF8v7rQ1xB0GE3j-fe_SzKWB
LR_jOv_vZ8oYlCfkbFWxpfy0pvbATZRmcTOhZHjdpd4z6znaLligb0XwOEZ2WWUpSkfGlIfjZaG_CJIaIRB-F-3eDGeKUReNT5zTXXzmteFUwhx
JlZSq6rmwh0zdwWGV2SDX1nQgG6PSn9c78PRPssgBGOebR12SlBiwF69AT6Y7itVxBE4PNAgR3KoEk0G4c7b-F0;
last_login_method=handle; passport_fe_beating_status=true;
sid_guard=c74e00b7d30145b18dc15ea298590a73%7C1710499225%7C15551993%7CWed%2C+11-Sep-2024+10%3A40%3A18+GMT;
sid_ucp_v1=1.0.0-KDFjZjcxYjQyMjBiYmQxMjA0ZTExYTRmMGFhYzM0NzEwOTA2YTM2MzkKGAiFiJ_O8MvK3V8QmcvQrwYYsws4BEDqBxAEGg
d1c2Vhc3Q4IiBjNzRlMDBiN2QzMDE0NWIxOGRjMTVlYTI5ODU5MGE3Mw;
ssid_ucp_v1=1.0.0-KDFjZjcxYjQyMjBiYmQxMjA0ZTExYTRmMGFhYzM0NzEwOTA2YTM2MzkKGAiFiJ_O8MvK3V8QmcvQrwYYsws4BEDqBxAEG
gd1c2Vhc3Q4IiBjNzRlMDBiN2QzMDE0NWIxOGRjMTVlYTI5ODU5MGE3Mw;
ttwid=1%7CsoAyXFVQvGh8-gKdOfWXNlIz4wvNbDDe0G808ci-GkM%7C1710499225%7C7ba57974e6b4e8259520fb3cd0994188650543938a
abcd7119dda36cb3646ad4;
bm_sv=213CAEEBD1F9AC7442F23AD66067900AYAAQVfrOFz4atT+OAQAAvOeyQRcSZu2+LHMWmpKZtrpwXr7uwOJ24jnadhceN7fpdtdqm3aZ
voPf0UqiXclGIDgDXm7NYljbsQzX/i0u6GNspO2BFXl5XUqxGMzz9qWf7T3Ji47I6A3510meYQfoFwYPKV12PCKkWUPVOldXl3pXQBMZylFrM0O
meBCDRRlO3fORoy/LDHU7wd3cJME0TGTCX5+5vcL1XacJdv0bFp/z/gYk4la07ruZrKLKfqGW
1;
msToken=ewGH7q9FoakLYaZfcHvrcTRusZuL-EnPyoWsnbpoZ6dAgMU8BUP7HchdMVtzxeZmQrKuCSMlxslo9InJTgZY6FaNFzY1qhgdTNXbnv2
s7y5MidTUgzCIh5BUHx2It2oK_IEXdunpIh5Lpc4R2Q==;
msToken=8_YzLMQ1rEOGn-6_tYDqKMcG8e7F4ORosZxo_fiydYOUrHW0I7BlsKVT2c3rpuhLYVd5zwkciMmX4M3KsXc4oZIiuUtbldKYJrPr1lU
xRk3-u_W0OAUGw7Yjcj6LCO1S40OaQjJMOlVK6rmFtVk=', 'cover': True, 'desc': True, 'folderize': True, 'music': True,
'naming': '{create}
{desc}', 'path': 'Download', 'mode': 'post', 'url': '', 'interval': 'all', 'timeout': 10,
'max_retries': 5, 'max_connections': 5, 'max_tasks': 5, 'page_counts': 5, 'max_counts': 0, 'proxies': {'http':
'http:127.0.0.1:7890', 'https': 'http:127.0.0.1:7890'}, 'headers': {'User-Agent': 'Mozilla/5.0 (Windows NT
10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36', 'Referer':
'https://www.tiktok.com/'}, 'msToken': {'url':
'https://mssdk-sg.tiktok.com/web/common?msToken=1Ab-7YxR9lUHSem0PraI_XzdKmpHb6j50L8AaXLAd2aWTdoJCYLfX_67rVQFE4U
wwHVHmyG_NfIipqrlLT3kCXps-5PYlNAqtdwEg7TrDyTAfCKyBrOLmhMUjB55oW8SPZ4_EkNxNFUdV7MquA==', 'magic': 538969122,
'version': 1, 'dataType': 8, 'strData':
'3BvqYbNXLLOcZehvxZVbjpAu7vq82RoWmFSJHLFwzDwJIZevE0AeilQfP55LridxmdGGjknoksqIsLqlMHMif0IFK/Br7JWqxOHnYuMwVCnttF
c0Y4MFvdVWM5FECiEulJC0Dc+eeVsNSrFnAc9K7fazqdglyJgGLSfXIJmgyCvvQ4pg0u5HBVVugLSWs242X42fjoWymaUCLZJQo6vi6WLyuV7l5
IC3Mg+lelr5xBQD6Q7hBIFEw8zzxJ1n2DyA4xLbOHTQdKvEtsK7XzyWwjpRnojPTbBl69Zosnuru+lOBIl+tFu/+hCQ1m0jYZwTP4rVE75L3Du6
+KZ5v/9TyFYjq7y3y9bGLP4d7yQueJbF90G1yrZ6htElrZ2vqZKDrIqBVbmOZr/nph12k2JKrITtN0R/pMsp0sJ4gesQnXxcD/pLOFAINHk7umg
be6LzJ7+TLUdGuO4M7xiEg/jCqhjgJX1izZ4NPoBDp35zRxj6Y6OrcstlTN/cv5sz663+Nco/mEwhGq2VwrL4gAIAPycndIsb48dPdtngmLqNDN
N0ZyVRjgqVIDXXrxigXCkR9CH89Dlrrb7QQqWVgRXz9/k5ihEM43BR3sd3mMU/XgFLN1Aoxf6GzzdxP2QPBI75/ZoHoAmu54v8gTmA3ntCGlEF0
zgaFGTdpkGdb+oZgyQM4pw1aAyxmFINXkpD3IKKoGev9kD9gTFnhiQMGCMemhZS7ZYdbuGu0Cb+lQKaL/QTt80FMyGmW8kzVy9xW/ja9BcdEJYR
oaufuFRkBFG5ay8x4WHLR6hEapXqQial/cREbLL4sQytpjtmnndFqvT7xN5DhgsLY2Z7451MJhD6NJXKNrMafGZSbItzQWY=',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/119.0.0.0 Safari/537.36'}, 'ttwid': {'url': 'https://www.tiktok.com/ttwid/check/', 'data':
'{"aid":1988,"service":"www.tiktok.com","union":false,"unionHost":"","needFid":false,"fid":"","migrate_priority
":0}', 'cookie':
'ttwid=1%7CovVQu2St-HXSHAdEfZ7tljPe151SZ88AbrlTirlaC6w%7C1701072604%7C49b17849da69bafc3638e794f3f26b30fe9677c52
53e65a2a5f615489846ce02'}, 'odin_tt': {'url':
'https://www.tiktok.com/passport/web/account/info/?aid=1459&app_language=zh-Hans&app_name=tiktok_web&browser_la
nguage=zh-CN&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%2
0NT%2010.0%3B%20Win64%3B%20x64%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F119.0.0.0%2
0Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&device_id=7306060721837852167&root_referer=https%3A%2F%
2Fwww.tiktok.com%2Flogin%2F'}}
DEBUG CLI参数:{'cookie': 'tt_csrf_token=39COEPWt-onK_pR474A8NLwU4ZAxFlQzNG-Q;
ak_bmsc=2FC6152435EA4CF02CFC567518E8C719000000000000000000000000000000YAAQVfrOF2sZtT+OAQAA5pGyQRcGZYebc5Gi3yv
Ph8ECeaj2tDsFCUlYUfdWydd75auBWIWNzEJRYNaMx9UiesjzQ442euVmljZQUXYaFOdC2DzpVH18fipppOWOwixJdiFM0LcZ+l4VnZwlR28Lh3
/S560OmpHbb8J+C7OTHVq2sDKkqVAx2OumDUwgjh81ibPUc2U3g8lDGSUYCLoF15367V9g61pdvah8xrGKb1Gu+CShDiaCnbaZGTPhDl5nQJORc
X5CAWjQCLHlTkYncDG9crkjlH3MDbkEBt1P2CZnIfMLCxytpmN3zGNqQ1a5KltsoPzZE9p3ikeMZqhgS7AX24XJBnr/pVhK+npuMNLS51tNVJc5
pJGOIcz0l8BbjElTT5jdiH7i; tt_chain_token=E6g2XDIGiGIPbx3J+F6Myw==; tiktok_webapp_theme=light;
odin_tt=4d1d245964f190da892332152aea32cf8d923bda18d5cb8770fa2b0d77c9a5b3a78ae7147d8054a28101f1b4f0493c60ff90abb
f374b18619b54298c7f78a1b836c03bc9e6ea1b18d4dd24e59f22cca7;
passport_csrf_token=2cf8cd16a31d90600bd6848861556528;
passport_csrf_token_default=2cf8cd16a31d90600bd6848861556528;
perf_feed_cache={%22expireTimestamp%22:1710669600000%2C%22itemIds%22:[%227322872697187290401%22%2C%227342139813
170007314%22%2C%227337841795700739360%22]}; s_v_web_id=verify_ltsj2jib_rXxraYyI_Kmn6_40XV_8IV5_Wxh3UskvrpWK;
multi_sids=6898153841922393093%3Ac74e00b7d30145b18dc15ea298590a73;
cmpl_token=AgQQAPOuF-RO0o-FxPiB9R08_5W8QaOT_4MhYNCYVA;
uid_tt=c588c030521147f6212b6f368f657fa67779a18aad2e46fe30895f0e53a24ba7;
uid_tt_ss=c588c030521147f6212b6f368f657fa67779a18aad2e46fe30895f0e53a24ba7;
sid_tt=c74e00b7d30145b18dc15ea298590a73; sessionid=c74e00b7d30145b18dc15ea298590a73;
sessionid_ss=c74e00b7d30145b18dc15ea298590a73; store-idc=useast5; store-country-code=us;
store-country-code-src=uid; tt-target-idc=useast8;
tt-target-idc-sign=XWbhqpmkjG0LeQ63okMfoozjbi0_0BniHv8oOH9XgvgNAXO7KJhFQ6WkJ3M_Hsqtcw93n7sZ-PrrhBfnAkc3MPWGnqZk
GxFk5Hc_7UG0yJ5dKZcDNaPnU-Iy9oP32fttztPzz-R3zCnvRdhj3r9Ok0zNbscJdFyrsi6j_VyaU0hynYyxxoDJiUdVRqrkVd4pOdULlJOVtFd
-6Con1K_QwFkEcr-ARf_xdV6Rwwj3wNvSIHY7FIslVSHODXWGBNNS6gtfcU8qChEL-T1L0nb6T9Y9qYam682egmgF8v7rQ1xB0GE3j-fe_SzKWB
LR_jOv_vZ8oYlCfkbFWxpfy0pvbATZRmcTOhZHjdpd4z6znaLligb0XwOEZ2WWUpSkfGlIfjZaG_CJIaIRB-F-3eDGeKUReNT5zTXXzmteFUwhx
JlZSq6rmwh0zdwWGV2SDX1nQgG6PSn9c78PRPssgBGOebR12SlBiwF69AT6Y7itVxBE4PNAgR3KoEk0G4c7b-F0;
last_login_method=handle; passport_fe_beating_status=true;
sid_guard=c74e00b7d30145b18dc15ea298590a73%7C1710499225%7C15551993%7CWed%2C+11-Sep-2024+10%3A40%3A18+GMT;
sid_ucp_v1=1.0.0-KDFjZjcxYjQyMjBiYmQxMjA0ZTExYTRmMGFhYzM0NzEwOTA2YTM2MzkKGAiFiJ_O8MvK3V8QmcvQrwYYsws4BEDqBxAEGg
d1c2Vhc3Q4IiBjNzRlMDBiN2QzMDE0NWIxOGRjMTVlYTI5ODU5MGE3Mw;
ssid_ucp_v1=1.0.0-KDFjZjcxYjQyMjBiYmQxMjA0ZTExYTRmMGFhYzM0NzEwOTA2YTM2MzkKGAiFiJ_O8MvK3V8QmcvQrwYYsws4BEDqBxAEG
gd1c2Vhc3Q4IiBjNzRlMDBiN2QzMDE0NWIxOGRjMTVlYTI5ODU5MGE3Mw;
ttwid=1%7CsoAyXFVQvGh8-gKdOfWXNlIz4wvNbDDe0G808ci-GkM%7C1710499225%7C7ba57974e6b4e8259520fb3cd0994188650543938a
abcd7119dda36cb3646ad4;
bm_sv=213CAEEBD1F9AC7442F23AD66067900AYAAQVfrOFz4atT+OAQAAvOeyQRcSZu2+LHMWmpKZtrpwXr7uwOJ24jnadhceN7fpdtdqm3aZ
voPf0UqiXclGIDgDXm7NYljbsQzX/i0u6GNspO2BFXl5XUqxGMzz9qWf7T3Ji47I6A3510meYQfoFwYPKV12PCKkWUPVOldXl3pXQBMZylFrM0O
meBCDRRlO3fORoy/LDHU7wd3cJME0TGTCX5+5vcL1XacJdv0bFp/z/gYk4la07ruZrKLKfqGW
1;
msToken=ewGH7q9FoakLYaZfcHvrcTRusZuL-EnPyoWsnbpoZ6dAgMU8BUP7HchdMVtzxeZmQrKuCSMlxslo9InJTgZY6FaNFzY1qhgdTNXbnv2
s7y5MidTUgzCIh5BUHx2It2oK_IEXdunpIh5Lpc4R2Q==;
msToken=8_YzLMQ1rEOGn-6_tYDqKMcG8e7F4ORosZxo_fiydYOUrHW0I7BlsKVT2c3rpuhLYVd5zwkciMmX4M3KsXc4oZIiuUtbldKYJrPr1lU
xRk3-u_W0OAUGw7Yjcj6LCO1S40OaQjJMOlVK6rmFtVk=', 'cover': True, 'desc': True, 'folderize': True, 'music': True,
'naming': '{create}_{desc}', 'path': 'D:\TKDL\', 'mode': 'post', 'url':
'https://www.tiktok.com/@i_am_young22', 'interval': 'all', 'timeout': 10, 'max_retries': 5, 'max_connections':
5, 'max_tasks': 5, 'page_counts': 5, 'max_counts': 0, 'proxies': {'http': 'http:127.0.0.1:7890', 'https':
'http:127.0.0.1:7890'}, 'headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36', 'Referer': 'https://www.tiktok.com/'}, 'msToken': {'url':
'https://mssdk-sg.tiktok.com/web/common?msToken=1Ab-7YxR9lUHSem0PraI_XzdKmpHb6j50L8AaXLAd2aWTdoJCYLfX_67rVQFE4U
wwHVHmyG_NfIipqrlLT3kCXps-5PYlNAqtdwEg7TrDyTAfCKyBrOLmhMUjB55oW8SPZ4_EkNxNFUdV7MquA==', 'magic': 538969122,
'version': 1, 'dataType': 8, 'strData':
'3BvqYbNXLLOcZehvxZVbjpAu7vq82RoWmFSJHLFwzDwJIZevE0AeilQfP55LridxmdGGjknoksqIsLqlMHMif0IFK/Br7JWqxOHnYuMwVCnttF
c0Y4MFvdVWM5FECiEulJC0Dc+eeVsNSrFnAc9K7fazqdglyJgGLSfXIJmgyCvvQ4pg0u5HBVVugLSWs242X42fjoWymaUCLZJQo6vi6WLyuV7l5
IC3Mg+lelr5xBQD6Q7hBIFEw8zzxJ1n2DyA4xLbOHTQdKvEtsK7XzyWwjpRnojPTbBl69Zosnuru+lOBIl+tFu/+hCQ1m0jYZwTP4rVE75L3Du6
+KZ5v/9TyFYjq7y3y9bGLP4d7yQueJbF90G1yrZ6htElrZ2vqZKDrIqBVbmOZr/nph12k2JKrITtN0R/pMsp0sJ4gesQnXxcD/pLOFAINHk7umg
be6LzJ7+TLUdGuO4M7xiEg/jCqhjgJX1izZ4NPoBDp35zRxj6Y6OrcstlTN/cv5sz663+Nco/mEwhGq2VwrL4gAIAPycndIsb48dPdtngmLqNDN
N0ZyVRjgqVIDXXrxigXCkR9CH89Dlrrb7QQqWVgRXz9/k5ihEM43BR3sd3mMU/XgFLN1Aoxf6GzzdxP2QPBI75/ZoHoAmu54v8gTmA3ntCGlEF0
zgaFGTdpkGdb+oZgyQM4pw1aAyxmFINXkpD3IKKoGev9kD9gTFnhiQMGCMemhZS7ZYdbuGu0Cb+lQKaL/QTt80FMyGmW8kzVy9xW/ja9BcdEJYR
oaufuFRkBFG5ay8x4WHLR6hEapXqQial/cREbLL4sQytpjtmnndFqvT7xN5DhgsLY2Z7451MJhD6NJXKNrMafGZSbItzQWY=',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/119.0.0.0 Safari/537.36'}, 'ttwid': {'url': 'https://www.tiktok.com/ttwid/check/', 'data':
'{"aid":1988,"service":"www.tiktok.com","union":false,"unionHost":"","needFid":false,"fid":"","migrate_priority
":0}', 'cookie':
'ttwid=1%7CovVQu2St-HXSHAdEfZ7tljPe151SZ88AbrlTirlaC6w%7C1701072604%7C49b17849da69bafc3638e794f3f26b30fe9677c52
53e65a2a5f615489846ce02'}, 'odin_tt': {'url':
'https://www.tiktok.com/passport/web/account/info/?aid=1459&app_language=zh-Hans&app_name=tiktok_web&browser_la
nguage=zh-CN&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%2
0NT%2010.0%3B%20Win64%3B%20x64%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F119.0.0.0%2
0Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&device_id=7306060721837852167&root_referer=https%3A%2F%
2Fwww.tiktok.com%2Flogin%2F'}, 'languages': 'zh_CN', 'auto_cookie': None}
请前往QA文档 https://johnserf-seed.github.io/f2/question-answer/qa.html 查看相关帮助
ERROR API Connection Error:
连接端点失败,检查网络环境或代理:https://mssdk-sg.tiktok.com/web/common?msToken=1Ab-7YxR9lUHSem0PraI_XzdKmpHb6
JCYLfX_67rVQFE4UwwHVHmyG_NfIipqrlLT3kCXps-5PYlNAqtdwEg7TrDyTAfCKyBrOLmhMUjB55oW8SPZ4_EkNxNFUdV7Mqu
A== 代理:{'http://': 'http:127.0.0.1:7890', 'https://': 'http:127.0.0.1:7890'} 类名:TokenManager.

Q: 如果是开发者请提供最小的代码示例

A:

预期行为
希望帮忙排除下问题

屏幕截图
请添加截图以帮助解释你的问题。

日志文件
请添加调试日志文件以帮助解释你的问题。

其他
如有,可以添加有关问题的其他信息。

请问作者大佬,使用该代理可以访问tiktok,但是下载却报错是什么原因呢

PS F:\Tiktok Downloads> f2 tk -c tk.yaml
INFO App: tiktok
INFO 主配置: conf/app.yaml
INFO 自定义配置: tk.yaml
请前往QA文档 https://johnserf-seed.github.io/f2/question-answer/qa.html 查看相关帮助
Error: 连接端点失败,检查网络环境或代理:
https://mssdk-sg.tiktok.com/web/common?msToken=1Ab-7YxR9lUHSem0PraI_XzdKmpHb6j50L8AaXLAd2aWTdoJCYLfX_67rVQFE4UwwHVHmyG_N
fIipqrlLT3kCXps-5PYlNAqtdwEg7TrDyTAfCKyBrOLmhMUjB55oW8SPZ4_EkNxNFUdV7MquA== 代理:{'http://': 'http://127.0.0.1:10809',
'https://': 'http://127.0.0.1:10809'}.
ERROR Error: 连接端点失败,检查网络环境或代理:
https://mssdk-sg.tiktok.com/web/common?msToken=1Ab-7YxR9lUHSem0PraI_XzdKmpHb6j50L8AaXLAd2aWTdoJCYLfX_67rVQFE4Uw
wHVHmyG_NfIipqrlLT3kCXps-5PYlNAqtdwEg7TrDyTAfCKyBrOLmhMUjB55oW8SPZ4_EkNxNFUdV7MquA== 代理:{'http://':
'http://127.0.0.1:10809', 'https://': 'http://127.0.0.1:10809'}.

[BUG]在一台电脑上请求上万次用户信息之后,更新最新的Cookie还是报错第n次响应为空

代码就是文档上获取用户信息的官方示例:

import asyncio
from f2.apps.douyin.handler import DouyinHandler

kwargs = {
    "headers": {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36",
        "Referer": "https://www.douyin.com/",
    },
    "proxies": {"http": None, "https": None},
    "cookie": "YOUR_COOKIE_HERE",
}


async def main():
    sec_user_id = "MS4wLjABAAAANXSltcLCzDGmdNFI2Q_QixVTr67NiYzjKOIP5s03CAE"
    print(await DouyinHandler(kwargs).handler_user_profile(sec_user_id=sec_user_id))


if __name__ == "__main__":
    asyncio.run(main())

表现:第n次响应为空

系统:

  • 操作系统: MacOS10.15.7(有点老)
  • 浏览器: Chrome/123.0.0.0
  • F2版本 [e.g. 0.0.1.4]

复现步骤:连续请求上万次,期间用无痕模式换了10次左右的游客cookie, 然后无论如何换cooklie都报错第5次响应为空

分析:

  1. cookie更换流程是一样的,前几次都可以生效,后续的不生效。
  2. debug到代码中发送请求的部分,把url和header拷贝出来,用curl请求发现在出错的电脑上返回空,但是在其他电脑上可以正常返回。
  3. 出错的电脑上仍然可以正常刷抖音,用UI操作的方式仍然可以正常获取用户信息

感觉应该是抖音的什么风控导致的,但是具体不太清楚为什么。而且我从浏览器F12拷贝出来的curl请求,发现鉴权都是使用的a_bonus,不知道是否有关系

AttributeError: 'NoneType' object has no attribute 'fetch_login_qrcode'

INFO App: douyin

Traceback (most recent call last):
File "", line 198, in _run_module_as_main
File "", line 88, in run_code
File "C:\Users\admin\AppData\Local\Programs\Python\Python311\Scripts\f2.exe_main
.py", line 7, in
File "C:\Users\admin\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py", line 1157, in call
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\admin\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py", line 1078, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "C:\Users\admin\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py", line 1686, in invoke
sub_ctx = cmd.make_context(cmd_name, args, parent=ctx)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\admin\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py", line 943, in make_context
self.parse_args(ctx, args)
File "C:\Users\admin\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py", line 1408, in parse_args
value, args = param.handle_parse_result(ctx, opts, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\admin\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py", line 2400, in handle_parse_result
value = self.process_value(ctx, value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\admin\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py", line 2362, in process_value
value = self.callback(ctx, self, value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\admin\AppData\Local\Programs\Python\Python311\Lib\site-packages\f2\apps\douyin\cli.py", line 205, in handler_sso_login
is_login, login_cookie = asyncio.run(handle_sso_login())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\admin\AppData\Local\Programs\Python\Python311\Lib\asyncio\runners.py", line 190, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "C:\Users\admin\AppData\Local\Programs\Python\Python311\Lib\asyncio\runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\admin\AppData\Local\Programs\Python\Python311\Lib\asyncio\base_events.py", line 653, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "C:\Users\admin\AppData\Local\Programs\Python\Python311\Lib\site-packages\f2\apps\douyin\handler.py", line 855, in handle_sso_login
return await get_qrcode()
^^^^^^^^^^^^^^^^^^
File "C:\Users\admin\AppData\Local\Programs\Python\Python311\Lib\site-packages\f2\apps\douyin\handler.py", line 763, in get_qrcode
response = await crawler.fetch_login_qrcode(params)
^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'fetch_login_qrcode'

自定义配置文件path配置不生效

系统:MacOS
问题:
自定义配置文件是先初始化生成的,再修改其中的配置;
path 设置了绝对路径,执行命令 f2 dy -c <自定义配置文件> ,会在运行该命令的当前目录下创建Download文件夹,配置文件中的path无法生效。

可以获取用户主页数据吗 包括简介粉丝那些[QUESTION]

  • 在提问时请注意不要包含个人敏感信息
  • 我明白我的提问可能不会得到明确回复或解决。

问题描述
简要描述你想要获取支持或询问的内容。

其他细节
提供任何相关的细节或背景信息,例如你要询问的函数或与项目相关的具体内容。

截图/代码示例
如果有必要,可以提供截图或代码示例以更好地说明问题或询问的内容。

期望的支持
简要说明你期望从社区或项目维护者那里得到的支持或回答。

其他
如果有其他需要补充的内容,请在此处添加。

[BUG]使用正确的cookie无法获取用户发布的视频信息

详细描述错误
使用api的方式调用TiktokHandler(kwargs).fetch_user_post_videos方法时,使用正常登录并且可以正常使用的账号的cookie,无法获取到数据
image

image

image
pyhton版本为3.11
linux和mac都有这种情况
存在某些cookie可以获取成功,但是大部分无法获取,麻烦老哥帮忙看下哈

安装之后不会调用

刚刚学习 不太懂 我学习安装whl文件后 不知道在终端窗口怎么调用F2

WINDOW
python3.11.3

[BUG]

  • [ 已检查] 我查看了 文档 以及 已关闭的问题 以寻找可能的解决方案。

  • [ 已检查] 我在 常见的问题与解决办法 中找不到我的问题。

  • [已检查 ] 你的问题是公开的,请注意删除个人敏感内容再上传

  • [ 已检查] 不按照模板填写的问题将不会得到优先的处理。

  • 如果错误问题是可视化的,请在屏幕截图贴截图。如果你是开发者请在错误重现提供一个最小的代码示例来演示该问题。

  • 相同的问题将会被标记重复(duplicate),如果你的问题被标记为已确认(confirmed)则会在后续的推送中修复,请时刻留意。

  • 退订邮件提醒请点击邮件的底部unsubscribe

详细描述错误
简明扼要地描述遇到的错误。

系统平台

单击展开 Q:你在哪个平台(Win/Linux/Mac)上运行?你使用的是什么浏览器?你使用的是什么终端软件?你使用的F2是什么版本?

A:

  • 操作系统: [macOs Catalina 10.15.7]
  • 浏览器 [echrome 123.0.6312.107]
  • 终端 [ 2.10]
  • F2版本 [0.0.1.4]

错误重现

单击展开 Q: 请你复制并粘贴出错时运行的命令和配置文件内容,以及重现该行为的步骤。如果你一次性就提供完整信息,就会节省很多解决问题的时间。

A:

  1. f2 tk -M one -u https://www.tiktok.com/@histoireduneflamme/video/7348889593413946657
  2. 提示错误
image 3. 配置文件 image

Q: 请添加调试命令f2 -d DEBUG重新运行出错的命令并提供日志目录下的日志文件。

A:

Q: 如果是开发者请提供最小的代码示例

A:

预期行为
简明扼要地描述期望发生的事情。

屏幕截图
请添加截图以帮助解释你的问题。

日志文件
请添加调试日志文件以帮助解释你的问题。

其他
如有,可以添加有关问题的其他信息。

能否做一个容器docker,这个安装linux 安装python3.11,会出现各种问题

在提出功能请求之前,请考虑在 https://github.com/Johnserf-Seed/f2/discussions 上发布反馈或在Discord中讨论。

Q: 你有检查过类似建议的问题吗?
在所有的问题列表里检查是否有类似的建议。
没有docker

Q: 它能为你解决什么问题?
该功能能解决你的什么问题?我也许可以建议一种现有的解决方法。
A: 计划安装到ubuntu20.04上面,查看系统3.8,所以需要升级,升级后,无法安装f2,各种报错;

希望打包好为docker,路径映射好,直接使用,
没必要为安装环境费时间,
谢谢

f2安装失败

我是win10的电脑,
Python 3.12.1
pip 23.3.2 from D:\Program Files\Python312\Lib\site-packages\pip (python 3.12)
安装f2失败
1705024151619

v16-webapp-prime.us.tiktok.com 403

问题描述
tiktok 下载出现v16-webapp-prime.us.tiktok.com 403

2024-04-13_092043

大家有碰到类似的问题吗?如何解决呢?正常观看是没问题的

[BUG]Tiktop的接口fetch_user_post_videos获取不到视频数据

Tiktop同一个cookie,能访问handler_user_profile、fetch_one_video,但是访问fetch_user_post_videos就一直重试提示“”响应内容为空, 状态码: 200“”,是因为/api/post/item_list/签名方式变了,尝试更换了很多cookie也是不行;
image
image

[QUESTION]请问0.0.1.4文件名模板不再支持{id}了吗?

  • 在提问时请注意不要包含个人敏感信息
  • 我明白我的提问可能不会得到明确回复或解决。

问题描述
原来的TikTokTool,文件名模板我一直使用{create}{id}{desc},现在使用f2报错:KeyError: "文件名模板字段 'id' 不存在,请检查",在各种介绍和文档网站中均未找到说明是否f2仅支持{create}_{desc}模式。

期望的支持
请告知是否f2仅支持{create}_{desc}模式。

当文件已存在,跳过N个即停止下载

大佬,您的下载方式应该是从最新的开始下载对吧

能否加个判断或参数,当程序比对文件已存在,跳过N个时,即停止下载

这样既节省时间,也能降低抖音服务器负载?(可能比较大概率不会又改接口啥的?)

0.0.13 的几个小问题 (直播链接没有自动省略后面的字串、多用户配置文件 sec_user_id 找不到、配置上的小疑问)

初次尝试 f2,遇到了几个小问题,不知能否解答一下:

  1. 之前版本可以直接识别此类直播链接:https://live.douyin.com/330680364443?enter_from_merge=web_homepage_follow&enter_method=web_live_cover&room_id=7321922315113036210&action_type=click&group_id=undefined&request_id=undefined&is_livehead_preview_mini_window_show=undefined&enter_method_temai=undefined
    而在 f2 下,会报错:
    Live_Link

    必须删减掉后面的?以后的字串。能不能后续改进直播链接识别?

  2. (疑问)已经从浏览器导入 cookie,并且似乎使用 --init-config dy.yaml 的时候,创建的文件也已经包含了导入的 cookie,可是 AppData\Local\Programs\Python\Python311\Lib\site-packages\f2\conf\app.yaml 里面貌似并没有 cookie 信息?(或者被加密了?)

  3. https://johnserf-seed.github.io/f2/site-config.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6 自定义配置文件下的多用户配置,创建了一个如下文件:

douyin:
  # 醒子8ke
  url: https://live.douyin.com/775841227732
  # 直播模式
  mode: live

在 Terminal 里面执行 f2 -d dy -c C:\Users\o\Desktop\f2\C.yaml
会报错提示ERROR 未在响应的地址中找到sec_user_id, 检查链接是否为用户主页

我的疑问是,这是 bug 还是... ?此配置文件是不是不能写这么简单,要使用初始化的带有 cookie 信息的 yaml 作为模板,在其中添加用户信息?如果需要这样添加,能不能改进说明文档,并告知如何添加?
那么这样一来,多用户配置一多起来的话,万一 cookie 需要更新,工作量会很大?

部分下载配置不生效

已经在yaml中配置了:

  desc: false
  folderize: false
  music: false

但是下载后仍然将下载的作品保存到单独的文件夹,并下载了音乐、文本、封面等文件

[BUG] --init-config 出错:缺乏URL参数,详情看命令帮助

  • 我查看了 文档 以及 已关闭的问题 以寻找可能的解决方案。

  • 我在 常见的问题与解决办法 中找不到我的问题。

  • 你的问题是公开的,请注意删除个人敏感内容再上传

  • 不按照模板填写的问题将不会得到优先的处理。

  • 如果错误问题是可视化的,请在屏幕截图贴截图。如果你是开发者请在错误重现提供一个最小的代码示例来演示该问题。

  • 相同的问题将会被标记重复(duplicate),如果你的问题被标记为已确认(confirmed)则会在后续的推送中修复,请时刻留意。

  • 退订邮件提醒请点击邮件的底部unsubscribe

详细描述错误
简明扼要地描述遇到的错误。

系统平台

单击展开 Q:你在哪个平台(Win/Linux/Mac)上运行?你使用的是什么浏览器?你使用的是什么终端软件?你使用的F2是什么版本?

A:

  • 操作系统: ubuntu 22.04
  • 浏览器 Chrome
  • 终端 shell
  • F2版本 v0.0.1.5

错误重现

单击展开 Q: 请你复制并粘贴出错时运行的命令和配置文件内容,以及重现该行为的步骤。如果你一次性就提供完整信息,就会节省很多解决问题的时间。

A:

Q: 请添加调试命令f2 -d DEBUG重新运行出错的命令并提供日志目录下的日志文件。

(douyin)  user@ubuntu: f2 -d DEBUG dy --init-config dy.yaml
DEBUG    开启调试模式 (Debug mode on)
INFO     App: douyin
INFO     douyin 应用配置文件生成成功,保存至 /home/user/f2/dy.yaml
INFO     主配置路径:/home/user/f2/f2/conf/app.yaml
INFO     自定义配置路径:/home/user/f2/f2/conf/app.yaml
DEBUG    主配置参数:{'cookie': None, 'max_connections': 5, 'max_counts': 0, 'max_retries': 5, 'max_tasks': 5, 'naming': '{create}_{desc}', 'page_counts': 5,
        'path': 'Download', 'timeout': 10, 'proxies': {'http': None, 'https': None}}
DEBUG    自定义配置参数:{'cookie': None, 'max_connections': 5, 'max_counts': 0, 'max_retries': 5, 'max_tasks': 5, 'naming': '{create}_{desc}', 'page_counts':
        5, 'path': 'Download', 'timeout': 10, 'proxies': {'http': None, 'https': None}}
DEBUG    CLI参数:{'cookie': None, 'max_connections': 5, 'max_counts': 0, 'max_retries': 5, 'max_tasks': 5, 'naming': '{create}_{desc}', 'page_counts': 5,
        'path': 'Download', 'timeout': 10, 'proxies': {'http': None, 'https': None}, 'url': None, 'music': None, 'cover': None, 'desc': None, 'folderize':
        None, 'mode': None, 'interval': None, 'languages': 'zh_CN', 'lyric': None, 'auto_cookie': None, 'sso_login': None, 'headers': {'User-Agent':
        'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36', 'Referer':
        'https://www.douyin.com/'}}
ERROR    缺乏URL参数,详情看命令帮助

Q: 如果是开发者请提供最小的代码示例

A:

预期行为
简明扼要地描述期望发生的事情。

屏幕截图
请添加截图以帮助解释你的问题。

日志文件
请添加调试日志文件以帮助解释你的问题。

其他
如有,可以添加有关问题的其他信息。

F2 TK下载故障

C:\Users\ASUS>f2 -d tk -c C:\Users\ASUS\tk.yaml
DEBUG 开启调试模式 (Debug on)
INFO App: tiktok
INFO 主配置: conf/app.yaml
INFO 自定义配置: C:\Users\ASUS\tk.yaml
DEBUG CLI参数:{'url': 'https://www.tiktok.com/@celeste_36_', 'music': True, 'cover': True, 'desc': True, 'path': 'Download', 'folderize': True,
'mode': 'post', 'naming': '{create}_{desc}', 'cookie': 'tiktok_webapp_theme=light; passport_csrf_token=22b1d34f1ca1b6d3c7831f253d960abb;
passport_csrf_token_default=22b1d34f1ca1b6d3c7831f253d960abb;
cookie-consent={%22ga%22:true%2C%22af%22:true%2C%22fbp%22:true%2C%22lip%22:true%2C%22bing%22:true%2C%22ttads%22:true%2C%22reddit%22:true%2C%2 2hubspot%22:true%2C%22version%22:%22v10%22}; multi_sids=7311222714382730273%3A523ad60041020d0ec49721b6a4f6367b;
cmpl_token=AgQQAPOYF-RO0rVIQPX0vh0Y_xc3W4JUP6ITYNN38A;
sid_guard=523ad60041020d0ec49721b6a4f6367b%7C1702364425%7C15552000%7CSun%2C+09-Jun-2024+07%3A00%3A25+GMT;
uid_tt=d258b96d187e6a85d2215e4d271bb298a1521be400a78c0aa649ab584215d72b;
uid_tt_ss=d258b96d187e6a85d2215e4d271bb298a1521be400a78c0aa649ab584215d72b; sid_tt=523ad60041020d0ec49721b6a4f6367b;
sessionid=523ad60041020d0ec49721b6a4f6367b; sessionid_ss=523ad60041020d0ec49721b6a4f6367b;
sid_ucp_v1=1.0.0-KDNmOTRmMjcwYTQwZTdmYzVmZGNkMWI3NjlkNTk3YjE0MzYyMjRlODUKHwihiLPkp8qru2UQiYrgqwYYswsgDDD73NqrBjgIQBIQAxoIdXNlYXN0MmEiIDUyM2Fk NjAwNDEwMjBkMGVjNDk3MjFiNmE0ZjYzNjdi;
ssid_ucp_v1=1.0.0-KDNmOTRmMjcwYTQwZTdmYzVmZGNkMWI3NjlkNTk3YjE0MzYyMjRlODUKHwihiLPkp8qru2UQiYrgqwYYswsgDDD73NqrBjgIQBIQAxoIdXNlYXN0MmEiIDUyM2F kNjAwNDEwMjBkMGVjNDk3MjFiNmE0ZjYzNjdi; store-idc=useast2a; store-country-code=gb; store-country-code-src=uid; tt-target-idc=useast2a;
tt-target-idc-sign=s9WnkyP5hSrb3ZngmqhglNx0fzt5cdtxZCdOECruFRADYWlpOZgNNIzp2DGXGYA13z9cREqSvm1mMBY7Y8qBl5vzpUM0JtfASYGvNnhitj5FJNSpXOegGahW-T pR1KBDLylIFJVqg10FLi6C9lq2CYqIveZ8eosDRzYwGsNALiUTBxs7lb2Hy3dmBMxiyGuwLnEYy_M0t1PT1Cp-ho5HQUhcM0eP4PsO3XC3Djib3grCZBBoB9-y9DVppDNLuAq4sys_pvs 793WVta5gPqqvkBRUOxNXqh4XXo33aP2OakQewfRPCJNLMdG-aaNupvFhUjrpp1thoWbgts0y2g_FuST2KpiXHAIjwYKoZpCAhtFh7QKvNYaTSG-E1AyAH-3-YTWXdV8WrBMe-_Qv1csE 4xgRRGV_j-_AnCTc6WA4vuGjoN8vwSE9F0xsmiI6Y-zsSHOsouQBmu1XhB6V4IFyumLIi1beLFO2JylJmsLCrLv-Ehuh5obD3biKojGD_BHb; living_user_id=708405523788;
_ga=GA1.1.2083641405.1703815519; passport_auth_status_ads=1c4f653fe32fb77d04ca746733655b44%2C;
passport_auth_status_ss_ads=1c4f653fe32fb77d04ca746733655b44%2C;
sso_uid_tt_ads=15d87b691644a489823e8e8b1898e86252e57b897e0e9bcdcafbc303c55e2517;
sso_uid_tt_ss_ads=15d87b691644a489823e8e8b1898e86252e57b897e0e9bcdcafbc303c55e2517; sso_user_ads=48ba7fa55f2a66a4eb6c809acce8a76d;
sso_user_ss_ads=48ba7fa55f2a66a4eb6c809acce8a76d;
sid_ucp_sso_v1_ads=1.0.0-KDM4ZTE4YWYzZDY2OGIxODU3YmZiZDY0OTZlYWU5ZDU0ODlmZGZkN2IKHwiCiKmQ2Kehx2UQ3Iq6rAYYzCQgDDDairqsBjgIQBIQAxoDc2cxIiA0OGJh N2ZhNTVmMmE2NmE0ZWI2YzgwOWFjY2U4YTc2ZA;
ssid_ucp_sso_v1_ads=1.0.0-KDM4ZTE4YWYzZDY2OGIxODU3YmZiZDY0OTZlYWU5ZDU0ODlmZGZkN2IKHwiCiKmQ2Kehx2UQ3Iq6rAYYzCQgDDDairqsBjgIQBIQAxoDc2cxIiA0OGJ hN2ZhNTVmMmE2NmE0ZWI2YzgwOWFjY2U4YTc2ZA;
sid_guard_ads=7887b2ac79f73ad4abdae2ee4c5d206d%7C1703839069%7C5183999%7CTue%2C+27-Feb-2024+08%3A37%3A48+GMT;
uid_tt_ads=173f2350d411a4df6f06109b21f7489bd5d0899906e3ba060b7c8be9c0b5f447;
uid_tt_ss_ads=173f2350d411a4df6f06109b21f7489bd5d0899906e3ba060b7c8be9c0b5f447; sid_tt_ads=7887b2ac79f73ad4abdae2ee4c5d206d;
sessionid_ads=7887b2ac79f73ad4abdae2ee4c5d206d; sessionid_ss_ads=7887b2ac79f73ad4abdae2ee4c5d206d;
sid_ucp_v1_ads=1.0.0-KDg2N2I3ZjZlODk2ZTkyZjQ4OTdjMWVmYmNhOTMxNmM2YzU4Yjk3MzUKGQiCiKmQ2Kehx2UQ3Yq6rAYYzCQgDDgIQBIQAxoDc2cxIiA3ODg3YjJhYzc5Zjcz YWQ0YWJkYWUyZWU0YzVkMjA2ZA;
ssid_ucp_v1_ads=1.0.0-KDg2N2I3ZjZlODk2ZTkyZjQ4OTdjMWVmYmNhOTMxNmM2YzU4Yjk3MzUKGQiCiKmQ2Kehx2UQ3Yq6rAYYzCQgDDgIQBIQAxoDc2cxIiA3ODg3YjJhYzc5Zjc zYWQ0YWJkYWUyZWU0YzVkMjA2ZA;
perf_feed_cache={%22expireTimestamp%22:1704963600000%2C%22itemIds%22:[%227304846564432858374%22%2C%227321142012583972103%22]};
ga_QQM0HPKD40=GS1.1.1704812599.12.0.1704812601.58.0.0; tt_csrf_token=S0vpYWYT-mz31g1P11OZkoyPjMNQvZn3eSYE;
tt_chain_token=Ia7/U//VflAGCUYpWOp0dg==;
ttwid=1%7ClkAAoD6j_TDamhVVYVzInm-ZWBFJX-R33KAUjzcJlsI%7C1705044747%7Cb33ea7ec68ba19f4d305d5957594fd259783d5dce2671e65b2adc1ce27fb38d5;
odin_tt=119432de45cf038a41977123a702067ba1745e1c84b447586cfc075567aa6dff73acd4b79718d2d90b6421549b5e36aa746f0b73aa0fa92c7a07efc7e55b27ca8bdfc b1eb40a97b3d0447daf2c521a19;
msToken=hUunV8PvrWhMtZI7D_MB1AGW-ky5tTcdVUDMJg1RnLHN0XrakLGPv2qD4YnfxECAuxNw4gyviNeoB41ZXoPEV87lMu14VvFC5Y2Q65FpDFMSHwNNN8vP_7AU4WLWXO0K4zL2d 3djsL5EocD
;
msToken=N5bKdw1Wg4xOTLSfTU605oj1lQVUHnCu4J7DjexwJfuKr1Zpe7-QsjfR2q-QxzH4mvO1Z5gOtcXfURPi6G0h0bI2kkkbrf6ccNC6L8SWAizaIUNysM8UIQhjHjbpPSzLZcDh0 49pVvdQxoZ4; passport_fe_beating_status=true', 'interval': 'all', 'timeout': 10, 'max_retries': 5, 'max_connections': 5, 'max_tasks': 10,
'max_counts': 0, 'page_counts': 20, 'languages': 'zh_CN', 'proxies': {'http': 'http://127.0.0.1:10809', 'https': 'https://127.0.0.1:10809'},
'auto_cookie': None, 'headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/104.0.0.0 Safari/537.36', 'Referer': 'https://www.tiktok.com/'}}

╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ C:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\runpy.py:196 in _run_module_as_main │
│ │
│ 193 │ main_globals = sys.modules["main"].dict
│ 194 │ if alter_argv: │
│ 195 │ │ sys.argv[0] = mod_spec.origin │
│ ❱ 196 │ return _run_code(code, main_globals, None, │
│ 197 │ │ │ │ │ "main", mod_spec) │
│ 198 │
│ 199 def run_module(mod_name, init_globals=None, │
│ │
│ C:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\runpy.py:86 in _run_code │
│ │
│ 83 │ │ │ │ │ loader = loader, │
│ 84 │ │ │ │ │ package = pkg_name, │
│ 85 │ │ │ │ │ spec = mod_spec) │
│ ❱ 86 │ exec(code, run_globals) │
│ 87 │ return run_globals │
│ 88 │
│ 89 def _run_module_code(code, init_globals=None, │
│ │
│ in :7 │
│ │
│ C:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\site-packages\click\core.py:1157 in │
call
│ │
│ 1154 │ │
│ 1155 │ def call(self, *args: t.Any, **kwargs: t.Any) -> t.Any: │
│ 1156 │ │ """Alias for :meth:main.""" │
│ ❱ 1157 │ │ return self.main(*args, **kwargs) │
│ 1158 │
│ 1159 │
│ 1160 class Command(BaseCommand): │
│ │
│ C:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\site-packages\click\core.py:1078 in │
│ main │
│ │
│ 1075 │ │ try: │
│ 1076 │ │ │ try: │
│ 1077 │ │ │ │ with self.make_context(prog_name, args, **extra) as ctx: │
│ ❱ 1078 │ │ │ │ │ rv = self.invoke(ctx) │
│ 1079 │ │ │ │ │ if not standalone_mode: │
│ 1080 │ │ │ │ │ │ return rv │
│ 1081 │ │ │ │ │ # it's not safe to ctx.exit(rv) here! │
│ │
│ C:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\site-packages\click\core.py:1688 in │
│ invoke │
│ │
│ 1685 │ │ │ │ super().invoke(ctx) │
│ 1686 │ │ │ │ sub_ctx = cmd.make_context(cmd_name, args, parent=ctx) │
│ 1687 │ │ │ │ with sub_ctx: │
│ ❱ 1688 │ │ │ │ │ return _process_result(sub_ctx.command.invoke(sub_ctx)) │
│ 1689 │ │ │
│ 1690 │ │ # In chain mode we create the contexts step by step, but after the │
│ 1691 │ │ # base command has been invoked. Because at that point we do not │
│ │
│ C:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\site-packages\click\core.py:1434 in │
│ invoke │
│ │
│ 1431 │ │ │ echo(style(message, fg="red"), err=True) │
│ 1432 │ │ │
│ 1433 │ │ if self.callback is not None: │
│ ❱ 1434 │ │ │ return ctx.invoke(self.callback, **ctx.params) │
│ 1435 │ │
│ 1436 │ def shell_complete(self, ctx: Context, incomplete: str) -> t.List["CompletionItem"]: │
│ 1437 │ │ """Return a list of completions for the incomplete value. Looks │
│ │
│ C:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\site-packages\click\core.py:783 in │
│ invoke │
│ │
│ 780 │ │ │
│ 781 │ │ with augment_usage_errors(__self): │
│ 782 │ │ │ with ctx: │
│ ❱ 783 │ │ │ │ return __callback(*args, **kwargs) │
│ 784 │ │
│ 785 │ def forward( │
│ 786 │ │ __self, __cmd: "Command", *args: t.Any, **kwargs: t.Any # noqa: B902 │
│ │
│ C:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\site-packages\click\decorators.py:33 │
│ in new_func │
│ │
│ 30 │ """ │
│ 31 │ │
│ 32 │ def new_func(*args: "P.args", **kwargs: "P.kwargs") -> "R": │
│ ❱ 33 │ │ return f(get_current_context(), *args, **kwargs) │
│ 34 │ │
│ 35 │ return update_wrapper(new_func, f) │
│ 36 │
│ │
│ C:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\site-packages\f2\apps\tiktok\cli.py:38 │
│ 5 in tiktok │
│ │
│ 382 │ │
│ 383 │ # 添加app_name到kwargs │
│ 384 │ kwargs["app_name"] = "tiktok" │
│ ❱ 385 │ ctx.invoke(set_cli_config, **kwargs) │
│ 386 │
│ │
│ C:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\site-packages\click\core.py:783 in │
│ invoke │
│ │
│ 780 │ │ │
│ 781 │ │ with augment_usage_errors(__self): │
│ 782 │ │ │ with ctx: │
│ ❱ 783 │ │ │ │ return __callback(*args, **kwargs) │
│ 784 │ │
│ 785 │ def forward( │
│ 786 │ │ __self, __cmd: "Command", *args: t.Any, **kwargs: t.Any # noqa: B902 │
│ │
│ C:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\site-packages\click\decorators.py:33 │
│ in new_func │
│ │
│ 30 │ """ │
│ 31 │ │
│ 32 │ def new_func(*args: "P.args", **kwargs: "P.kwargs") -> "R": │
│ ❱ 33 │ │ return f(get_current_context(), *args, **kwargs) │
│ 34 │ │
│ 35 │ return update_wrapper(new_func, f) │
│ 36 │
│ │
│ C:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\site-packages\f2\cli\cli_commands.py:1 │
│ 34 in set_cli_config │
│ │
│ 131 │ │
│ 132 │ with RichConsoleManager().progress: │
│ 133 │ │ try: │
│ ❱ 134 │ │ │ asyncio.run(run_app(kwargs)) │
│ 135 │ │ except APIError as e: │
│ 136 │ │ │ logger.error(e.display_error()) │
│ 137 │
│ │
│ C:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\asyncio\runners.py:44 in run │
│ │
│ 41 │ │ events.set_event_loop(loop) │
│ 42 │ │ if debug is not None: │
│ 43 │ │ │ loop.set_debug(debug) │
│ ❱ 44 │ │ return loop.run_until_complete(main) │
│ 45 │ finally: │
│ 46 │ │ try: │
│ 47 │ │ │ cancel_all_tasks(loop) │
│ │
│ C:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py:646 in │
│ run_until_complete │
│ │
│ 643 │ │ if not future.done(): │
│ 644 │ │ │ raise RuntimeError('Event loop stopped before Future completed.') │
│ 645 │ │ │
│ ❱ 646 │ │ return future.result() │
│ 647 │ │
│ 648 │ def stop(self): │
│ 649 │ │ """Stop running the event loop. │
│ │
│ C:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\site-packages\f2\cli\cli_commands.py:1 │
│ 41 in run_app │
│ │
│ 138 │
│ 139 async def run_app(kwargs): │
│ 140 │ app_name = kwargs["app_name"] │
│ ❱ 141 │ app_module = importlib.import_module(f"f2.apps.{app_name}.handler") │
│ 142 │ await app_module.main(kwargs) │
│ 143 │
│ 144 │
│ │
│ C:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\importlib_init
.py:126 in │
│ import_module │
│ │
│ 123 │ │ │ if character != '.': │
│ 124 │ │ │ │ break │
│ 125 │ │ │ level += 1 │
│ ❱ 126 │ return _bootstrap._gcd_import(name[level:], package, level) │
│ 127 │
│ 128 │
│ 129 _RELOADING = {} │
│ in _gcd_import:1050 │
│ in _find_and_load:1027 │
│ in _find_and_load_unlocked:1006 │
│ in _load_unlocked:688 │
│ in exec_module:883 │
│ in _call_with_frames_removed:241 │
│ │
│ C:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\site-packages\f2\apps\tiktok\handler.p │
│ y:10 in │
│ │
│ 7 from f2.log.logger import logger │
│ 8 from f2.utils.mode_handler import mode_handler, mode_function_map │
│ 9 from f2.apps.tiktok.db import AsyncUserDB, AsyncVideoDB │
│ ❱ 10 from f2.apps.tiktok.crawler import TiktokCrawler │
│ 11 from f2.apps.tiktok.dl import TiktokDownloader │
│ 12 from f2.apps.tiktok.model import ( │
│ 13 │ UserProfile, │
│ │
│ C:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\site-packages\f2\apps\tiktok\crawler.p │
│ y:10 in │
│ │
│ 7 from f2.utils.conf_manager import ConfigManager │
│ 8 from f2.crawlers.base_crawler import BaseCrawler │
│ 9 from f2.apps.tiktok.api import TiktokAPIEndpoints as tkendpoint │
│ ❱ 10 from f2.apps.tiktok.model import ( │
│ 11 │ UserProfile, │
│ 12 │ UserPost, │
│ 13 │ UserLike, │
│ │
│ C:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\site-packages\f2\apps\tiktok\model.py: │
│ 7 in │
│ │
│ 4 from pydantic import BaseModel │
│ 5 from urllib.parse import quote, unquote │
│ 6 │
│ ❱ 7 from f2.apps.tiktok.utils import TokenManager │
│ 8 from f2.utils.utils import get_timestamp │
│ 9 │
│ 10 │
│ │
│ C:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\site-packages\f2\apps\tiktok\utils.py: │
│ 30 in │
│ │
│ 27 ) │
│ 28 │
│ 29 │
│ ❱ 30 class TokenManager: │
│ 31 │ tk_manager = ConfigManager(f2.APP_CONFIG_FILE_PATH) │
│ 32 │ token_conf = tk_manager.get_config("tiktok").get("msToken", None) │
│ 33 │ ttwid_conf = tk_manager.get_config("tiktok").get("ttwid", None) │
│ │
│ C:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\site-packages\f2\apps\tiktok\utils.py: │
│ 37 in TokenManager │
│ │
│ 34 │ odin_tt_conf = tk_manager.get_config("tiktok").get("odin_tt", None) │
│ 35 │ proxies_conf = tk_manager.get_config("tiktok").get("proxies", None) │
│ 36 │ proxies = { │
│ ❱ 37 │ │ "http://": proxies_conf.get("http"), │
│ 38 │ │ "https://": proxies_conf.get("https"), │
│ 39 │ } │
│ 40 │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
AttributeError: 'str' object has no attribute 'get'

tiktok模式: token_conf = dy_manager.get_config("douyin").get("msToken", None) AttributeError: 'NoneType' object has no attribute 'get'

f2 tk -M one -u https://www.tiktok.com/@vietwhhore/video/7220605899159784747 -c tk.yaml
报错

    app_module = importlib.import_module(f"f2.apps.{app_name}.handler")
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/usr/local/lib/python3.10/dist-packages/f2/apps/tiktok/handler.py", line 10, in <module>
    from f2.apps.tiktok.crawler import TiktokCrawler
  File "/usr/local/lib/python3.10/dist-packages/f2/apps/tiktok/crawler.py", line 10, in <module>
    from f2.apps.tiktok.model import (
  File "/usr/local/lib/python3.10/dist-packages/f2/apps/tiktok/model.py", line 7, in <module>
    from f2.apps.douyin.utils import VerifyFpManager
  File "/usr/local/lib/python3.10/dist-packages/f2/apps/douyin/utils.py", line 36, in <module>
    class TokenManager:
  File "/usr/local/lib/python3.10/dist-packages/f2/apps/douyin/utils.py", line 38, in TokenManager
    token_conf = dy_manager.get_config("douyin").get("msToken", None)
AttributeError: 'NoneType' object has no attribute 'get'

➜ ~ f2 tk --init-config tk.yaml
tiktok 应用配置文件生成成功,保存至 /root/tk.yaml 配置文件已经生成完毕,但是一直报错提示sec_uid获取失败。
求助

无法下载自己的收藏列表,点赞列表正常下载

Traceback (most recent call last):
File "", line 198, in _run_module_as_main
File "", line 88, in run_code
File "E:\3other\Anaconda3\envs\my11\Scripts\f2.exe_main
.py", line 7, in
File "E:\3other\Anaconda3\envs\my11\Lib\site-packages\click\core.py", line 1157, in call
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\3other\Anaconda3\envs\my11\Lib\site-packages\click\core.py", line 1078, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "E:\3other\Anaconda3\envs\my11\Lib\site-packages\click\core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\3other\Anaconda3\envs\my11\Lib\site-packages\click\core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\3other\Anaconda3\envs\my11\Lib\site-packages\click\core.py", line 783, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\3other\Anaconda3\envs\my11\Lib\site-packages\click\decorators.py", line 33, in new_func
return f(get_current_context(), *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\3other\Anaconda3\envs\my11\Lib\site-packages\f2\apps\douyin\cli.py", line 429, in douyin
ctx.invoke(set_cli_config, **kwargs)
File "E:\3other\Anaconda3\envs\my11\Lib\site-packages\click\core.py", line 783, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\3other\Anaconda3\envs\my11\Lib\site-packages\click\decorators.py", line 33, in new_func
return f(get_current_context(), *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\3other\Anaconda3\envs\my11\Lib\site-packages\f2\cli\cli_commands.py", line 134, in set_cli_config
asyncio.run(run_app(kwargs))
File "E:\3other\Anaconda3\envs\my11\Lib\asyncio\runners.py", line 190, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "E:\3other\Anaconda3\envs\my11\Lib\asyncio\runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\3other\Anaconda3\envs\my11\Lib\asyncio\base_events.py", line 653, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "E:\3other\Anaconda3\envs\my11\Lib\site-packages\f2\cli\cli_commands.py", line 142, in run_app
await app_module.main(kwargs)
File "E:\3other\Anaconda3\envs\my11\Lib\site-packages\f2\apps\douyin\handler.py", line 865, in main
await mode_function_mapmode
File "E:\3other\Anaconda3\envs\my11\Lib\site-packages\f2\apps\douyin\handler.py", line 408, in handle_user_collect
user_path, user_data = await get_or_add_user_data(kwargs, sec_user_id, db)
^^^^^^^^^^^^^^^^^^^^
TypeError: cannot unpack non-iterable WindowsPath object

f2 dy -c dy.yaml -M collect -u xxx 这个报上面的错误
f2 dy -c dy.yaml -M like -u xxx 这个正常下载

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.