Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] 抖音视频下载失败,报错ValueError: could not convert string to float: 'None' #638

Closed
xiao-keeplearning opened this issue Jan 8, 2024 · 6 comments
Assignees
Labels
故障(bug) 代码问题导致的错误(Bugs caused by code problems) 已确认(confirmed) 该issue已被处理,将在下次推送中更新(The issue has been processed and will be updated in the next push) 重复(duplicate) 与已有的反馈或需求重复(This issue or pull request already exists)

Comments

@xiao-keeplearning
Copy link

描述出现的错误
执行f2 dy -M one -u https://v.douyin.com/iRNBho6u/ -c conf/app.yaml ,出现以下报错:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Users\xxxx\Anaconda3\envs\TikTokDownload\Scripts\f2.exe\__main__.py", line 7, in <module>
  File "C:\Users\xxxx\Anaconda3\envs\TikTokDownload\Lib\site-packages\click\core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\xxxx\Anaconda3\envs\TikTokDownload\Lib\site-packages\click\core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "C:\Users\xxxx\Anaconda3\envs\TikTokDownload\Lib\site-packages\click\core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\xxxx\Anaconda3\envs\TikTokDownload\Lib\site-packages\click\core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\xxxx\Anaconda3\envs\TikTokDownload\Lib\site-packages\click\core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\xxxx\Anaconda3\envs\TikTokDownload\Lib\site-packages\click\decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\xxxx\Anaconda3\envs\TikTokDownload\Lib\site-packages\f2\apps\douyin\cli.py", line 429, in douyin
    ctx.invoke(set_cli_config, **kwargs)
  File "C:\Users\xxxx\Anaconda3\envs\TikTokDownload\Lib\site-packages\click\core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\xxxx\Anaconda3\envs\TikTokDownload\Lib\site-packages\click\decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\xxxx\Anaconda3\envs\TikTokDownload\Lib\site-packages\f2\cli\cli_commands.py", line 134, in set_cli_config
    asyncio.run(run_app(kwargs))
  File "C:\Users\xxxx\Anaconda3\envs\TikTokDownload\Lib\asyncio\runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "C:\Users\xxxx\Anaconda3\envs\TikTokDownload\Lib\asyncio\runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\xxxx\Anaconda3\envs\TikTokDownload\Lib\asyncio\base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "C:\Users\xxxx\Anaconda3\envs\TikTokDownload\Lib\site-packages\f2\cli\cli_commands.py", line 142, in run_app
    await app_module.main(kwargs)
  File "C:\Users\xxxx\Anaconda3\envs\TikTokDownload\Lib\site-packages\f2\apps\douyin\handler.py", line 865, in main
    await mode_function_map[mode](kwargs)
  File "C:\Users\xxxx\Anaconda3\envs\TikTokDownload\Lib\site-packages\f2\apps\douyin\handler.py", line 159, in handle_one_video
    aweme_data = await fetch_one_video(aweme_id)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\xxxx\Anaconda3\envs\TikTokDownload\Lib\site-packages\f2\apps\douyin\handler.py", line 196, in fetch_one_video
    return video._to_dict()
           ^^^^^^^^^^^^^^^^
  File "C:\Users\xxxx\Anaconda3\envs\TikTokDownload\Lib\site-packages\f2\apps\douyin\filter.py", line 745, in _to_dict
    return {
           ^
  File "C:\Users\xxxx\Anaconda3\envs\TikTokDownload\Lib\site-packages\f2\apps\douyin\filter.py", line 746, in <dictcomp>
    prop_name: getattr(self, prop_name)
               ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\xxxx\Anaconda3\envs\TikTokDownload\Lib\site-packages\f2\apps\douyin\filter.py", line 538, in mix_create_time
    return timestamp_2_str(
           ^^^^^^^^^^^^^^^^
  File "C:\Users\xxxx\Anaconda3\envs\TikTokDownload\Lib\site-packages\f2\utils\utils.py", line 79, in timestamp_2_str
    return datetime.datetime.fromtimestamp(float(timestamp)).strftime(format)
                                           ^^^^^^^^^^^^^^^^
ValueError: could not convert string to float: 'None'

bug复现
首先初始化配置文件,然后配置cookie,最后执行f2 dy -M one -u https://v.douyin.com/iRNBho6u/ -c conf/app.yaml 。出现上述报错。

桌面(请填写以下信息):
-操作系统:[windows10 64bit]
-vpn代理:[关闭]
-项目版本:[1.5.0.0]
-py版本:[3.11.1]
-依赖库的版本:f2 0.0.1.3

@chenwei39094342
Copy link

我也是这个问题
1.Douyin 2.TikTok: [1/2]: 1
INFO 主配置: conf/app.yaml
INFO 自定义配置: None

Traceback (most recent call last):
File "D:\Program Files\f2\TikTokTool.py", line 51, in
clisint(selected) - 1
File "D:\Program Files\f2\venv\Lib\site-packages\click\core.py", line 1157, in call
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Program Files\f2\venv\Lib\site-packages\click\core.py", line 1078, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "D:\Program Files\f2\venv\Lib\site-packages\click\core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Program Files\f2\venv\Lib\site-packages\click\core.py", line 783, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Program Files\f2\venv\Lib\site-packages\click\decorators.py", line 33, in new_func
return f(get_current_context(), *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Program Files\f2\venv\Lib\site-packages\f2\apps\douyin\cli.py", line 429, in douyin
ctx.invoke(set_cli_config, **kwargs)
File "D:\Program Files\f2\venv\Lib\site-packages\click\core.py", line 783, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Program Files\f2\venv\Lib\site-packages\click\decorators.py", line 33, in new_func
return f(get_current_context(), *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Program Files\f2\venv\Lib\site-packages\f2\cli\cli_commands.py", line 134, in set_cli_config
asyncio.run(run_app(kwargs))
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.2032.0_x64__qbz5n2kfra8p0\Lib\asyncio\runners.py", line 190, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.2032.0_x64__qbz5n2kfra8p0\Lib\asyncio\runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.2032.0_x64__qbz5n2kfra8p0\Lib\asyncio\base_events.py", line 653, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "D:\Program Files\f2\venv\Lib\site-packages\f2\cli\cli_commands.py", line 142, in run_app
await app_module.main(kwargs)
File "D:\Program Files\f2\venv\Lib\site-packages\f2\apps\douyin\handler.py", line 865, in main
await mode_function_mapmode
File "D:\Program Files\f2\venv\Lib\site-packages\f2\apps\douyin\handler.py", line 159, in handle_one_video
aweme_data = await fetch_one_video(aweme_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Program Files\f2\venv\Lib\site-packages\f2\apps\douyin\handler.py", line 196, in fetch_one_video
return video._to_dict()
^^^^^^^^^^^^^^^^
File "D:\Program Files\f2\venv\Lib\site-packages\f2\apps\douyin\filter.py", line 745, in _to_dict
return {
^
File "D:\Program Files\f2\venv\Lib\site-packages\f2\apps\douyin\filter.py", line 746, in
prop_name: getattr(self, prop_name)
^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Program Files\f2\venv\Lib\site-packages\f2\apps\douyin\filter.py", line 538, in mix_create_time
return timestamp_2_str(
^^^^^^^^^^^^^^^^
File "D:\Program Files\f2\venv\Lib\site-packages\f2\utils\utils.py", line 79, in timestamp_2_str
return datetime.datetime.fromtimestamp(float(timestamp)).strftime(format)
^^^^^^^^^^^^^^^^
ValueError: could not convert string to float: 'None'

@lihe6666
Copy link

lihe6666 commented Jan 9, 2024

我也是这个问题
image

@ahlblzk
Copy link

ahlblzk commented Jan 10, 2024

确实单独下载一个链接的时候会报错 ValueError: could not convert string to float: 'None'

f2 dy -u https://www.douyin.com/video/7322134363515129099 -M one

@wikil
Copy link

wikil commented Feb 5, 2024

#638 (comment)
找到f2包下的utils.py文件 ,形如 ...\venv\Lib\site-packages\f2\utils\utils.py

找到名为 timestamp_2_str 的函数->替换成下面的->保存->重新运行,应该就好了

def timestamp_2_str(
    timestamp: Union[str, int, float], format: str = "%Y-%m-%d %H-%M-%S"
) -> str:
    """
    将 UNIX 时间戳转换为格式化字符串 (Convert a UNIX timestamp to a formatted string)

    Args:
        timestamp (int): 要转换的 UNIX 时间戳 (The UNIX timestamp to be converted)
        format (str, optional): 返回的日期时间字符串的格式。
                                默认为 '%Y-%m-%d %H-%M-%S'。
                                (The format for the returned date-time string
                                Defaults to '%Y-%m-%d %H-%M-%S')

    Returns:
        str: 格式化的日期时间字符串 (The formatted date-time string)
    """
    print("timestamp is :",timestamp)
    if timestamp is None:
        return ""
    if timestamp == "None":
        return ""
    return datetime.datetime.fromtimestamp(float(timestamp)).strftime(format)

@Johnserf-Seed
Copy link
Owner

临时解决方案 Johnserf-Seed/f2#23 (comment)

@Johnserf-Seed Johnserf-Seed added 故障(bug) 代码问题导致的错误(Bugs caused by code problems) 已确认(confirmed) 该issue已被处理,将在下次推送中更新(The issue has been processed and will be updated in the next push) 重复(duplicate) 与已有的反馈或需求重复(This issue or pull request already exists) labels Feb 5, 2024
@Johnserf-Seed
Copy link
Owner

已在0.0.1.4版本中修复,将关闭该issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
故障(bug) 代码问题导致的错误(Bugs caused by code problems) 已确认(confirmed) 该issue已被处理,将在下次推送中更新(The issue has been processed and will be updated in the next push) 重复(duplicate) 与已有的反馈或需求重复(This issue or pull request already exists)
Projects
None yet
Development

No branches or pull requests

6 participants