Coder Social home page Coder Social logo

harry0703 / moneyprinterturbo Goto Github PK

View Code? Open in Web Editor NEW
10.7K 95.0 1.7K 516.56 MB

利用AI大模型,一键生成高清短视频 Generate short videos with one click using AI LLM.

License: MIT License

Python 93.75% Shell 0.29% Batchfile 0.16% HTML 0.46% Dockerfile 1.00% TypeScript 4.34%
shortvideo automation chatgpt moviepy python tiktok

moneyprinterturbo's People

Contributors

chenhengzh avatar echo-1018 avatar elf-mouse avatar harry0703 avatar highkay avatar kevinzhang19870314 avatar normal-ai avatar pratham-darooka avatar root-ftw avatar sw0rdf1sh1 avatar vuisme 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  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

moneyprinterturbo's Issues

启动webui报错

RuntimeError: No ffmpeg exe could be found. Install ffmpeg on your system, or set the IMAGEIO_FFMPEG_EXE environment variable.

Language

how do i change the language?
can you please tell how to deploy to huggingface space?
is there a way so that to application keep on running even when i am offline?

无法生成视频

NotFoundError: Error code: 404 - {'error': {'message': 'The model gpt-4-turbo-preview does not exist or you do not have access to it. Learn more: https://help.openai.com/en/articles/7102672-how-can-i-access-gpt-4.', 'type': 'invalid_request_error', 'param': None, 'code': 'model_not_found'}}
Traceback:
File "G:\Users\Administrator\anaconda3\envs\MoneyPrinterTurbo\lib\site-packages\streamlit\runtime\scriptrunner\script_runner.py", line 542, in _run_script
exec(code, module.dict)
File "G:\MoneyPrinterTurbo\webui\Main.py", line 154, in
asyncio.run(tm.start(task_id=task_id, params=cfg))
File "G:\Users\Administrator\anaconda3\envs\MoneyPrinterTurbo\lib\asyncio\runners.py", line 44, in run
return loop.run_until_complete(main)
File "G:\Users\Administrator\anaconda3\envs\MoneyPrinterTurbo\lib\asyncio\base_events.py", line 649, in run_until_complete
return future.result()
File "G:\MoneyPrinterTurbo\app\services\task.py", line 45, in start
script = llm.generate_script(video_subject=video_subject, language=language, paragraph_number=paragraph_number)
File "G:\MoneyPrinterTurbo\app\services\llm.py", line 77, in generate_script
response = _generate_response(prompt=prompt)
File "G:\MoneyPrinterTurbo\app\services\llm.py", line 42, in _generate_response
response = client.chat.completions.create(
File "G:\Users\Administrator\anaconda3\envs\MoneyPrinterTurbo\lib\site-packages\openai_utils_utils.py", line 275, in wrapper
return func(*args, **kwargs)
File "G:\Users\Administrator\anaconda3\envs\MoneyPrinterTurbo\lib\site-packages\openai\resources\chat\completions.py", line 667, in create
return self._post(
File "G:\Users\Administrator\anaconda3\envs\MoneyPrinterTurbo\lib\site-packages\openai_base_client.py", line 1208, in post
return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
File "G:\Users\Administrator\anaconda3\envs\MoneyPrinterTurbo\lib\site-packages\openai_base_client.py", line 897, in request
return self._request(
File "G:\Users\Administrator\anaconda3\envs\MoneyPrinterTurbo\lib\site-packages\openai_base_client.py", line 988, in _request
raise self._make_status_error_from_response(err.response) from None

edge_tts没成功生成字幕,导致视频合成失败

File "D:\Users\Administrator\AppData\Local\Programs\Python\Python312\Lib\site-packages\streamlit\runtime\scriptrunner\script_runner.py", line 542, in _run_script
exec(code, module.dict)
File "D:\moneyprinter-test\MoneyPrinterTurbo\webui\Main.py", line 153, in
tm.start(task_id=task_id, params=cfg)
File "D:\moneyprinter-test\MoneyPrinterTurbo\app\services\task.py", line 93, in start
video.generate_video(video_path=combined_video_path,
File "D:\moneyprinter-test\MoneyPrinterTurbo\app\services\video.py", line 186, in generate_video
subtitles = SubtitlesClip(subtitle_path, generator)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\Administrator\AppData\Local\Programs\Python\Python312\Lib\site-packages\moviepy\video\tools\subtitles.py", line 55, in init
self.duration = max([tb for ((ta,tb), txt) in self.subtitles])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

请问一下为什么会报这个编码错误?

File "E:\AI Tools\MoneyPrinter\MoneyPrinterTurbo-main (1)\MoneyPrinterTurbo-main\app\services\video.py", line 184, in generate_video
subtitles = SubtitlesClip(subtitles=subtitle_path, make_textclip=generator, encoding='utf-8')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: SubtitlesClip.init() got an unexpected keyword argument 'encoding'
Exception ignored in: <function FFMPEG_AudioReader.del at 0x000001DDBF618C20>
Traceback (most recent call last):
File "D:\ProgramData\anaconda3\envs\MoneyPrinterTurbo\Lib\site-packages\moviepy\audio\io\readers.py", line 254, in del
self.close_proc()
File "D:\ProgramData\anaconda3\envs\MoneyPrinterTurbo\Lib\site-packages\moviepy\audio\io\readers.py", line 149, in close_proc
self.proc.terminate()
File "D:\ProgramData\anaconda3\envs\MoneyPrinterTurbo\Lib\subprocess.py", line 1671, in terminate
_winapi.TerminateProcess(self._handle, 1)
OSError: [WinError 6] 句柄无效。

到提示这个了

ZeroDivisionError: float division by zero
Traceback:
File "G:\Users\Administrator\anaconda3\envs\MoneyPrinterTurbo\lib\site-packages\streamlit\runtime\scriptrunner\script_runner.py", line 542, in _run_script
exec(code, module.dict)
File "G:\MoneyPrinterTurbo\webui\Main.py", line 154, in
asyncio.run(tm.start(task_id=task_id, params=cfg))
File "G:\Users\Administrator\anaconda3\envs\MoneyPrinterTurbo\lib\asyncio\runners.py", line 44, in run
return loop.run_until_complete(main)
File "G:\Users\Administrator\anaconda3\envs\MoneyPrinterTurbo\lib\asyncio\base_events.py", line 649, in run_until_complete
return future.result()
File "G:\MoneyPrinterTurbo\app\services\task.py", line 81, in start
video.combine_videos(combined_video_path=combined_video_path,
File "G:\MoneyPrinterTurbo\app\services\video.py", line 41, in combine_videos
req_dur = max_duration / len(video_paths)

连接失败

config.toml配置文件修改为llm_provider="moonshot",我也设置了moonshot的api key,但在生成视频的时候出现
openai.APIConnectionError: Connection error.

出现无法下载视频问题

failed to download video: https://player.vimeo.com/progressive_redirect/playback/569219784/rendition/1080p/file.mp4?loc=external&oauth2_token_id=1747418641&signature=1da7681f47aacaba07c57b8efdfd1471332b878da968a944ef63fb8df8acd82c, HTTPSConnectionPool(host='player.vimeo.com', port=443): Max retries exceeded with url: /progressive_redirect/playback/569219784/rendition/1080p/file.mp4?loc=external&oauth2_token_id=1747418641&signature=1da7681f47aacaba07c57b8efdfd1471332b878da968a944ef63fb8df8acd82c (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x7ff51c35a3b0>, 'Connection to player.vimeo.com timed out. (connect timeout=None)'))
各位大佬们,我发现我收集到一定视频后就会无法下载了,这是因为下载太多被block了吗,还是因为什么?

建议

把按顺序取三个视频,调整为随机取三个视频更好一些
random.choice(url_list)

运行不了,ModuleNotFoundError: No module named 'app'

ModuleNotFoundError: No module named 'app'
Traceback:
File "D:\pinokio\bin\miniconda\envs\MoneyPrinterTurbo\lib\site-packages\streamlit\runtime\scriptrunner\script_runner.py", line 542, in _run_script
exec(code, module.dict)
File "G:\MoneyPrinterTurbo\webui\Main.py", line 7, in
from app.models.schema import VideoParams, VideoAspect, VoiceNames

一些贡献的想法

一些贡献的想法:

  1. 限制创建的字符数,...或添加创建视频的秒数选项/
  2. 在可用文件夹中添加背景视频选择,...您可以在文件夹中随机选择或指定特定视频。
  3. 新增手动输入故事功能
  4. .....

请帮我 : ValueError: max() arg is an empty sequence

请帮我 : ValueError: max() arg is an empty sequence

`ValueError: max() arg is an empty sequence

Traceback:
File "C:\Users\Admin\anaconda3\envs\MoneyPrinterTurbo\lib\site-packages\streamlit\runtime\scriptrunner\script_runner.py", line 542, in _run_script
exec(code, module.dict)
File "C:\Users\Admin\Desktop\MoneyPrinterTurbo\webui\Main.py", line 154, in
tm.start(task_id=task_id, params=cfg)
File "C:\Users\Admin\Desktop\MoneyPrinterTurbo\app\services\task.py", line 99, in start
video.generate_video(video_path=combined_video_path,
File "C:\Users\Admin\Desktop\MoneyPrinterTurbo\app\services\video.py", line 184, in generate_video
subtitles = SubtitlesClip(subtitles=subtitle_path, make_textclip=generator, encoding='utf-8')
File "C:\Users\Admin\anaconda3\envs\MoneyPrinterTurbo\lib\site-packages\moviepy\video\tools\subtitles.py", line 69, in init
self.duration = max([tb for ((ta, tb), txt) in self.subtitles])`

Untitled

下载时报错:[Errno 101] Network is unreachable, NewConnectionError

错误信息:
failed to download video: https://player.vimeo.com/progressive_redirect/playback/443175492/rendition/1080p/file.mp4?loc=external&oauth2_token_id=1747418641&signature=56c778aaa5a722776a3a6d26201ea05cd5dfdcff6053a2948891d4d362f11792, HTTPSConnectionPool(host='player.vimeo.com', port=443): Max retries exceeded with url: /progressive_redirect/playback/443175492/rendition/1080p/file.mp4?loc=external&oauth2_token_id=1747418641&signature=56c778aaa5a722776a3a6d26201ea05cd5dfdcff6053a2948891d4d362f11792 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f2086550e50>: Failed to establish a new connection: [Errno 101] Network is unreachable'))
这个必须使用魔法才可以吗??
这个必须使用魔法才可以吗??

提示这个

NotFoundError: Error code: 404 - {'error': {'message': 'The model gpt-4-turbo-preview does not exist or you do not have access to it. Learn more: https://help.openai.com/en/articles/7102672-how-can-i-access-gpt-4.', 'type': 'invalid_request_error', 'param': None, 'code': 'model_not_found'}}
Traceback:
File "G:\Users\Administrator\anaconda3\envs\MoneyPrinterTurbo\lib\site-packages\streamlit\runtime\scriptrunner\script_runner.py", line 542, in _run_script
exec(code, module.dict)
File "G:\MoneyPrinterTurbo\webui\Main.py", line 154, in
asyncio.run(tm.start(task_id=task_id, params=cfg))
File "G:\Users\Administrator\anaconda3\envs\MoneyPrinterTurbo\lib\asyncio\runners.py", line 44, in run
return loop.run_until_complete(main)
File "G:\Users\Administrator\anaconda3\envs\MoneyPrinterTurbo\lib\asyncio\base_events.py", line 649, in run_until_complete
return future.result()
File "G:\MoneyPrinterTurbo\app\services\task.py", line 45, in start
script = llm.generate_script(video_subject=video_subject, language=language, paragraph_number=paragraph_number)
File "G:\MoneyPrinterTurbo\app\services\llm.py", line 77, in generate_script
response = _generate_response(prompt=prompt)
File "G:\MoneyPrinterTurbo\app\services\llm.py", line 42, in _generate_response
response = client.chat.completions.create(
File "G:\Users\Administrator\anaconda3\envs\MoneyPrinterTurbo\lib\site-packages\openai_utils_utils.py", line 275, in wrapper
return func(*args, **kwargs)
File "G:\Users\Administrator\anaconda3\envs\MoneyPrinterTurbo\lib\site-packages\openai\resources\chat\completions.py", line 667, in create
return self._post(
File "G:\Users\Administrator\anaconda3\envs\MoneyPrinterTurbo\lib\site-packages\openai_base_client.py", line 1208, in post
return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
File "G:\Users\Administrator\anaconda3\envs\MoneyPrinterTurbo\lib\site-packages\openai_base_client.py", line 897, in request
return self._request(
File "G:\Users\Administrator\anaconda3\envs\MoneyPrinterTurbo\lib\site-packages\openai_base_client.py", line 988, in _request
raise self._make_status_error_from_response(err.response) from None
现在提示

[enhancement] 增加分步执行选项和更多细节控制

整个生成环节分为

  1. 主题文本生成,辅助视频检索关键字生成
  2. 视频下载、语音合成

目前 1 => 2 是一键完成的

是否在UI提供选项,预览 1 的结果,然后再由用户觉得是否执行 2

另外建议增加 1 的控制,增加高级设置。

增加更细致的控制,在llm生成中,用户可以加入对提示模板的控制。因为,最稳定的api调用可能需要使用一些本地开源部署的模型,这些模型输出期望的文本内容,非常依赖于系统提示词。

比如,增加assistant,system角色的注入,将其作用于llm.py

        messages=[
            {"role": "system", "content": "You are a video script generator. "},
            {"role": "assistant", "content": "请至少输出100个字的回复,"},
            {"role": "user", "content": prompt}
        ],

用户可以修改生成的text

subtitle provider forced to whisper

i used edge-tts for subtitle generator, not whisper. but its always produce subtitle file is invalid: ./storage/tasks/dae75451-591e-4dfc-9804-3a823db08cc2/subtitle.srt so whisper will handle that.
Screenshot 2024-03-24 at 01 07 38

试了好多次。好多处错误。。也不晓得我这是错在哪儿了

TimeoutError
Traceback:
File "C:\Users\10046\anaconda3\envs\MoneyPrinterTurbo\lib\site-packages\streamlit\runtime\scriptrunner\script_runner.py", line 542, in _run_script
exec(code, module.dict)
File "C:\Users\10046\MoneyPrinterTurbo\webui\Main.py", line 154, in
asyncio.run(tm.start(task_id=task_id, params=cfg))
File "C:\Users\10046\anaconda3\envs\MoneyPrinterTurbo\lib\asyncio\runners.py", line 44, in run
return loop.run_until_complete(main)
File "C:\Users\10046\anaconda3\envs\MoneyPrinterTurbo\lib\asyncio\base_events.py", line 649, in run_until_complete
return future.result()
File "C:\Users\10046\MoneyPrinterTurbo\app\services\task.py", line 63, in start
sub_maker =await voice.tts(text=script, voice_name=voice_name, voice_file=audio_file)
File "C:\Users\10046\MoneyPrinterTurbo\app\services\voice.py", line 25, in tts
# Handle other exceptions
File "C:\Users\10046\MoneyPrinterTurbo\app\services\voice.py", line 18, in _do
sub_maker.create_sub((chunk["offset"], chunk["duration"]), chunk["text"])
File "C:\Users\10046\anaconda3\envs\MoneyPrinterTurbo\lib\site-packages\edge_tts\communicate.py", line 417, in stream
async for received in websocket:
File "C:\Users\10046\anaconda3\envs\MoneyPrinterTurbo\lib\site-packages\aiohttp\client_ws.py", line 312, in anext
msg = await self.receive()
File "C:\Users\10046\anaconda3\envs\MoneyPrinterTurbo\lib\site-packages\aiohttp\client_ws.py", line 243, in receive
async with async_timeout.timeout(timeout or self.receive_timeout):
File "C:\Users\10046\anaconda3\envs\MoneyPrinterTurbo\lib\site-packages\async_timeout_init
.py", line 141, in aexit
self.do_exit(exc_type)
File "C:\Users\10046\anaconda3\envs\MoneyPrinterTurbo\lib\site-packages\async_timeout_init
.py", line 228, in _do_exit
raise asyncio.TimeoutError

唉。。忧愁了。。这只是其一。。求指点

ModuleNotFoundError: No module named 'app'

git clone https://github.com/harry0703/MoneyPrinterTurbo.git
cd MoneyPrinterTurbo
conda create -n mpt python=3.10
conda activate mpt
pip install -r requirements.txt
cp config.example.toml config.toml
# 配置 `config.toml` 中的参数后
sh webui.sh

*****Current directory: /mnt/e/ML/llm-pro/MoneyPrinterTurbo

You can now view your Streamlit app in your browser.

Local URL: http://localhost:8501
Network URL: http://192.168.2.2:8501

2024-03-11 23:39:15.635 Uncaught app exception
Traceback (most recent call last):
File "/root/miniconda3/envs/mpt/lib/python3.10/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 542, in _run_script
exec(code, module.dict)
File "/mnt/e/ML/llm-pro/MoneyPrinterTurbo/webui/Main.py", line 6, in
from app.models.schema import VideoParams, VideoAspect, VoiceNames
ModuleNotFoundError: No module named 'app'

无效生成视频

openai.RateLimitError: Error code: 429 - {'error': {'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.', 'type': 'insufficient_quota', 'param': None, 'code': 'insufficient_quota'}}

请问这个是需要在open.ai上面充值吗

Error: 'model_not_found'

Traceback (most recent call last):
File "/opt/anaconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 542, in _run_script
exec(code, module.dict)
File "/Volumes/Work/GitHub/MoneyPrinterTurbo/webui/Main.py", line 153, in
tm.start(task_id=task_id, params=cfg)
File "/Volumes/Work/GitHub/MoneyPrinterTurbo/app/services/task.py", line 45, in start
script = gpt.generate_script(video_subject=video_subject, language=language, paragraph_number=paragraph_number)
File "/Volumes/Work/GitHub/MoneyPrinterTurbo/app/services/gpt.py", line 64, in generate_script
response = _generate_response(prompt=prompt)
File "/Volumes/Work/GitHub/MoneyPrinterTurbo/app/services/gpt.py", line 29, in _generate_response
response = openai.chat.completions.create(
File "/opt/anaconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/openai/_utils/_utils.py", line 275, in wrapper
return func(*args, **kwargs)
File "/opt/anaconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/openai/resources/chat/completions.py", line 663, in create
return self._post(
File "/opt/anaconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/openai/_base_client.py", line 1200, in post
return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
File "/opt/anaconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/openai/_base_client.py", line 889, in request
return self._request(
File "/opt/anaconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/openai/_base_client.py", line 980, in _request
raise self._make_status_error_from_response(err.response) from None
openai.NotFoundError: Error code: 404 - {'error': {'message': 'The model gpt-4-0125-preview does not exist or you do not have access to it. Learn more: https://help.openai.com/en/articles/7102672-how-can-i-access-gpt-4.', 'type': 'invalid_request_error', 'param': None, 'code': 'model_not_found'}}

项目非常棒,提几个小建议哈

  1. AI API key 的配置,建议可以优化一下:
  • 提供一个免费的选项供体验,比如原版提供的 g4f
  • 支持其他类型的 API key,比如通过 One API 项目产生的 API key
  1. 建议 prompt 可以由用户手动提供,类似原版那样。这样可能可以提升文本内容丰富性。
  2. 支持选择仅生成音频,或者这个可以另外启一个项目。

subtitle错误

2024-03-16 15:20:40.239 Uncaught app exception
Traceback (most recent call last):
File "/opt/anaconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 542, in _run_script
exec(code, module.dict)
File "/Volumes/Work/GitHub/MoneyPrinterTurbo/webui/Main.py", line 153, in
tm.start(task_id=task_id, params=cfg)
File "/Volumes/Work/GitHub/MoneyPrinterTurbo/app/services/task.py", line 93, in start
video.generate_video(video_path=combined_video_path,
File "/Volumes/Work/GitHub/MoneyPrinterTurbo/app/services/video.py", line 186, in generate_video
subtitles = SubtitlesClip(subtitle_path, generator)
File "/opt/anaconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/moviepy/video/tools/subtitles.py", line 55, in init
self.duration = max([tb for ((ta,tb), txt) in self.subtitles])
ValueError: max() arg is an empty sequence

'utf-8'报错

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb2 in position 34: invalid start byte
请问这个应该怎么解决?
image

格式问题

2024-03-23 17:36:18.765 Uncaught app exception
Traceback (most recent call last):
File "C:\Users\lolokj\anaconda3\Lib\site-packages\streamlit\runtime\scriptrunner\script_runner.py", line 542, in _run_script
exec(code, module.dict)
File "C:\Users\lolokj\PycharmProjects\MoneyPrinterTurbo\webui\Main.py", line 225, in
tm.start(task_id=task_id, params=cfg)
File "C:\Users\lolokj\PycharmProjects\MoneyPrinterTurbo\app\services\task.py", line 135, in start
video.generate_video(video_path=combined_video_path,
File "C:\Users\lolokj\PycharmProjects\MoneyPrinterTurbo\app\services\video.py", line 180, in generate_video
subtitles = SubtitlesClip(subtitles=subtitle_path, make_textclip=generator, encoding='utf-8')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: SubtitlesClip.init() got an unexpected keyword argument 'encoding'

Subtitles Improvement

How to stop the subtitles word from being cut in half instead of going to next line ?
image****

Web interface work, API not

Hi, web interface works fine, but when I try to run test API call from swagger http://localhost:8080/docs#/V1/create_video_api_v1_videos_post

I receive this response:

generating audio

2024-03-15 17:01:23 | INFO | "./app/services/voice.py:11": tts - start, voice name: zh-CN-XiaoxiaoNeural
ERROR: Exception in ASGI application
Traceback (most recent call last):
File "/opt/miniconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/uvicorn/protocols/http/h11_impl.py", line 412, in run_asgi
result = await app( # type: ignore[func-returns-value]
File "/opt/miniconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/uvicorn/middleware/proxy_headers.py", line 84, in call
return await self.app(scope, receive, send)
File "/opt/miniconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/fastapi/applications.py", line 1054, in call
await super().call(scope, receive, send)
File "/opt/miniconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/starlette/applications.py", line 123, in call
await self.middleware_stack(scope, receive, send)
File "/opt/miniconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/starlette/middleware/errors.py", line 186, in call
raise exc
File "/opt/miniconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/starlette/middleware/errors.py", line 164, in call
await self.app(scope, receive, _send)
File "/opt/miniconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/starlette/middleware/exceptions.py", line 62, in call
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/opt/miniconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
raise exc
File "/opt/miniconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
await app(scope, receive, sender)
File "/opt/miniconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/starlette/routing.py", line 758, in call
await self.middleware_stack(scope, receive, send)
File "/opt/miniconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/starlette/routing.py", line 778, in app
await route.handle(scope, receive, send)
File "/opt/miniconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/starlette/routing.py", line 299, in handle
await self.app(scope, receive, send)
File "/opt/miniconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/starlette/routing.py", line 79, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/opt/miniconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
raise exc
File "/opt/miniconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
await app(scope, receive, sender)
File "/opt/miniconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/starlette/routing.py", line 74, in app
response = await func(request)
File "/opt/miniconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/fastapi/routing.py", line 278, in app
raw_response = await run_endpoint_function(
File "/opt/miniconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/fastapi/routing.py", line 191, in run_endpoint_function
return await dependant.call(**values)
File "/Users/ivanivanov/MoneyPrinterTurbo/app/controllers/v1/video.py", line 29, in create_video
result = tm.start(task_id=task_id, params=body)
File "/Users/ivanivanov/MoneyPrinterTurbo/app/services/task.py", line 63, in start
sub_maker = voice.tts(text=script, voice_name=voice_name, voice_file=audio_file)
File "/Users/ivanivanov/MoneyPrinterTurbo/app/services/voice.py", line 24, in tts
sub_maker = asyncio.run(_do())
File "/opt/miniconda3/envs/MoneyPrinterTurbo/lib/python3.10/asyncio/runners.py", line 33, in run
raise RuntimeError(
RuntimeError: asyncio.run() cannot be called from a running event loop
/opt/miniconda3/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/uvicorn/protocols/http/h11_impl.py:-1: RuntimeWarning: coroutine 'tts.._do' was never awaited
RuntimeWarning: Enable tracemalloc to get the object allocation traceback

[BUG] 使用繁體中文時的問題

使用 edge-tts 裡面的 zh-TW 聲音時會出現無法將最後一段的字幕結合在影片中
同時也會產生 wrap_text 的警告

2024-03-12 16:10:00 | WARNING | "./app/services/video.py:108": wrap_text - wrapping text, max_width: 980, text_width: 1243, text: USB設計的初衷是為了簡化電腦週邊設備的連接

视频下载错误

failed to download video: https://player.vimeo.com/progressive_redirect/playback/452468144/rendition/1080p/file.mp4?loc=external&oauth2_token_id=1747418641&signature=119a6cede599f793db17066b3c1ce57a77cddb860ab1607035c99b5ff8560a4f, HTTPSConnectionPool(host='player.vimeo.com', port=443): Max retries exceeded with url: /progressive_redirect/playback/452468144/rendition/1080p/file.mp4?loc=external&oauth2_token_id=1747418641&signature=119a6cede599f793db17066b3c1ce57a77cddb860ab1607035c99b5ff8560a4f (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1007)')))

No such file or directory: 'unset'

Traceback (most recent call last):
  File "/Users/hochonin/Documents/test/MoneyPrinterTurbo/venv/lib/python3.11/site-packages/moviepy/video/VideoClip.py", line 1137, in __init__
    subprocess_call(cmd, logger=None)
  File "/Users/hochonin/Documents/test/MoneyPrinterTurbo/venv/lib/python3.11/site-packages/moviepy/tools.py", line 46, in subprocess_call
    proc = sp.Popen(cmd, **popen_params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/[email protected]/3.11.3/Frameworks/Python.framework/Versions/3.11/lib/python3.11/subprocess.py", line 1024, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/opt/homebrew/Cellar/[email protected]/3.11.3/Frameworks/Python.framework/Versions/3.11/lib/python3.11/subprocess.py", line 1917, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'unset'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/hochonin/Documents/test/MoneyPrinterTurbo/venv/lib/python3.11/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 542, in _run_script
    exec(code, module.__dict__)
  File "/Users/hochonin/Documents/test/MoneyPrinterTurbo/webui/Main.py", line 153, in <module>
    tm.start(task_id=task_id, params=cfg)
  File "/Users/hochonin/Documents/test/MoneyPrinterTurbo/app/services/task.py", line 93, in start
    video.generate_video(video_path=combined_video_path,
  File "/Users/hochonin/Documents/test/MoneyPrinterTurbo/app/services/video.py", line 186, in generate_video
    subtitles = SubtitlesClip(subtitle_path, generator)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/hochonin/Documents/test/MoneyPrinterTurbo/venv/lib/python3.11/site-packages/moviepy/video/tools/subtitles.py", line 86, in __init__
    hasmask = bool(self.make_textclip('T').mask)
                   ^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/hochonin/Documents/test/MoneyPrinterTurbo/app/services/video.py", line 165, in generator
    return TextClip(
           ^^^^^^^^^
  File "/Users/hochonin/Documents/test/MoneyPrinterTurbo/venv/lib/python3.11/site-packages/moviepy/video/VideoClip.py", line 1146, in __init__
    raise IOError(error)
OSError: MoviePy Error: creation of None failed because of the following error:

[Errno 2] No such file or directory: 'unset'.

.This error can be due to the fact that ImageMagick is not installed on your computer, or (for Windows users) that you didn't specify the path to the ImageMagick binary in file conf.py, or that the path you specified is incorrect

environment:MacBook M2
python 3.11

运行错误

TOMLDecodeError: Invalid value (at line 6, column 24)
Traceback:
File "/root/.conda/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 542, in _run_script
exec(code, module.dict)
File "/root/MoneyPrinterTurbo/webui/Main.py", line 8, in
from app.services import task as tm
File "/root/MoneyPrinterTurbo/app/services/task.py", line 5, in
from app.config import config
File "/root/MoneyPrinterTurbo/app/config/init.py", line 6, in
from app.config import config
File "/root/MoneyPrinterTurbo/app/config/config.py", line 11, in
_cfg = tomli.load(fp)
File "/root/.conda/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/tomli/_parser.py", line 66, in load
return loads(s, parse_float=parse_float)
File "/root/.conda/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/tomli/_parser.py", line 102, in loads
pos = key_value_rule(src, pos, out, header, parse_float)
File "/root/.conda/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/tomli/_parser.py", line 326, in key_value_rule
pos, key, value = parse_key_value_pair(src, pos, parse_float)
File "/root/.conda/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/tomli/_parser.py", line 369, in parse_key_value_pair
pos, value = parse_value(src, pos, parse_float)
File "/root/.conda/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/tomli/_parser.py", line 616, in parse_value
return parse_array(src, pos, parse_float)
File "/root/.conda/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/tomli/_parser.py", line 420, in parse_array
pos, val = parse_value(src, pos, parse_float)
File "/root/.conda/envs/MoneyPrinterTurbo/lib/python3.10/site-packages/tomli/_parser.py", line 649, in parse_value
raise suffixed_err(src, pos, "Invalid value")
Screenshot_2024-03-18-05-26-26-39_40deb401b9ffe8e1df2f1cc5ba480b12
Screenshot_2024-03-18-05-30-46-07_61c78dc80ee02b53007c815fefe993e3

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.