Johnserf-Seed / f2

High-speed downloader for multiple platforms
https://johnserf-seed.github.io/f2/
Apache License 2.0
498 stars 99 forks source link

F2 TK下载故障 #31

Open lingbufeng opened 9 months ago

lingbufeng commented 9 months ago

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-ky5tTcdVUDMJg1RnLHN0XrakLGPv2qD4YnfxECAuxNw4gyviNeoB41ZXoPEV87lMu14VvFC5Y2Q65FpDFMSHwNNN8vP7AU4WLWXO0K4zL2d 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'

ai10879432 commented 1 week ago

解决了吗? 哪里造成的