mirror of
https://github.com/MuRuLOSE/limoka.git
synced 2026-06-16 22:34:19 +02:00
65 lines
2.1 KiB
Python
65 lines
2.1 KiB
Python
# meta developer: @modwini
|
||
import os
|
||
from .. import loader
|
||
from moviepy.editor import VideoFileClip
|
||
|
||
@loader.tds
|
||
class VideoToVoiceMod(loader.Module):
|
||
"""Модуль, который преобразует видео в голосовое сообщение или MP3 файл."""
|
||
strings = {"name": "video_to_voice"}
|
||
|
||
@loader.owner
|
||
async def гсcmd(self, message):
|
||
"""Команда гс, преобразующая видео в голосовое сообщение."""
|
||
await message.delete()
|
||
|
||
video_message = await message.get_reply_message()
|
||
if not video_message or not video_message.video:
|
||
await message.edit("Ответьте на видео!")
|
||
return
|
||
|
||
video_file = await video_message.download_media()
|
||
video_clip = VideoFileClip(video_file)
|
||
audio_clip = video_clip.audio
|
||
|
||
voice_file = "voice.ogg"
|
||
audio_clip.write_audiofile(voice_file, verbose=False, logger=None)
|
||
await message.client.send_file(
|
||
message.to_id,
|
||
voice_file,
|
||
voice_note=True,
|
||
reply_to=video_message.id
|
||
)
|
||
|
||
video_clip.close()
|
||
audio_clip.close()
|
||
os.remove(video_file)
|
||
os.remove(voice_file)
|
||
|
||
@loader.owner
|
||
async def mp3cmd(self, message):
|
||
"""Команда mp3, преобразующая видео в MP3 файл."""
|
||
await message.delete()
|
||
|
||
video_message = await message.get_reply_message()
|
||
if not video_message or not video_message.video:
|
||
await message.edit("Ответьте на видео!")
|
||
return
|
||
|
||
video_file = await video_message.download_media()
|
||
video_clip = VideoFileClip(video_file)
|
||
audio_clip = video_clip.audio
|
||
|
||
audio_file = "modwini.mp3"
|
||
audio_clip.write_audiofile(audio_file, verbose=False, logger=None)
|
||
await message.client.send_file(
|
||
message.to_id,
|
||
audio_file,
|
||
reply_to=video_message.id
|
||
)
|
||
|
||
video_clip.close()
|
||
audio_clip.close()
|
||
os.remove(video_file)
|
||
os.remove(audio_file)
|