Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Не могу понять ошибку в коде python

Евгений Алесич Ученик (126), на голосовании 2 месяца назад
суть такова, что хочу к боту прикрутить плеер, для удобства просмотра видео если есть в статье, столкнулся с ошибкой хрен пойми какой
```import mpv
from pytube import YouTube

# Абсолютный путь к libmpv-2.dll
mpv_dll_path = r'C:\Users\Евгений\Downloads\mpv-player-0-38-0\libmpv-2.dll'

# Создание объекта MPV с указанием пути к DLL
player = mpv.MPV(ytdl=True, dll_directory=mpv_dll_path)


# Ваша функция play_video_with_mpv и другой код
def play_video_with_mpv(video_url):
player.play(video_url)
player.wait_until_playing()
player.wait_for_playback()


def play_youtube_video(youtube_url):
try:
yt = YouTube(youtube_url)
stream = yt.streams.filter(progressive=True, file_extension='mp4').first()
video_url = stream.url
play_video_with_mpv(video_url)
except Exception as e:
print(f"Error processing YouTube video: {e}")


def play_video(video_url):
if " youtube.com " in video_url or " youtu.be " in video_url:
play_youtube_video(video_url)
else:
play_video_with_mpv(video_url)


# Test with URLs from TikTok, YouTube, Twitter, and Telegram
test_urls = [
тут тест ссылок
]

for url in test_urls:
play_video(url)```
это собственно сам код...
а это ошибка
File "C:\Users\Евгений\pythonProject\pythonProject7\player.py", line 1, in <module>
import mpv
File "C:\Users\Евгений\pythonProject\pythonProject7\.venv\Lib\site-packages\mpv.py", line 40, in <module>
raise OSError('Cannot find mpv-1.dll, mpv-2.dll or libmpv-2.dll in your system %PATH%. One way to deal with this is to ship the dll with your script and put the directory your script is in into %PATH% before "import mpv": os.environ["PATH"] = os.path.dirname(__file__) + os.pathsep + os.environ["PATH"] If mpv-1.dll is located elsewhere, you can add that path to os.environ["PATH"].')
OSError: Cannot find mpv-1.dll, mpv-2.dll or libmpv-2.dll in your system %PATH%. One way to deal with this is to ship the dll with your script and put the directory your script is in into %PATH% before "import mpv": os.environ["PATH"] = os.path.dirname(__file__) + os.pathsep + os.environ["PATH"] If mpv-1.dll is located elsewhere, you can add that path to os.environ["PATH"].


косяк в том, что не может найти с переменной среде файл libmpv-2.dll хотя он есть. скачивал даннй файл сам, так как на оф.сайте mpv нет данных файлов. помогите советом
Голосование за лучший ответ
♡$ⴎG@r₱u₷sყ♡ Искусственный Интеллект (144149) 3 месяца назад
GPT-4o
Проблема в том, что библиотека `mpv` не может найти DLL файл `libmpv-2.dll`, несмотря на то, что вы указали путь к нему. Попробуйте добавить путь к DLL файлу в переменную окружения `PATH` до импорта библиотеки `mpv`. Вот так:
 
import os
import sys

# Абсолютный путь к libmpv-2.dll
mpv_dll_path = r'C:\Users\Евгений\Downloads\mpv-player-0-38-0'

# Добавляем путь к переменной окружения PATH
os.environ["PATH"] = mpv_dll_path + os.pathsep + os.environ["PATH"]

import mpv
from pytube import YouTube

# Создание объекта MPV с указанием пути к DLL
player = mpv.MPV(ytdl=True, dll_directory=mpv_dll_path)

# Ваша функция play_video_with_mpv и другой код
def play_video_with_mpv(video_url):
player.play(video_url)
player.wait_until_playing()
player.wait_for_playback()

def play_youtube_video(youtube_url):
try:
yt = YouTube(youtube_url)
stream = yt.streams.filter(progressive=True, file_extension='mp4').first()
video_url = stream.url
play_video_with_mpv(video_url)
except Exception as e:
print(f"Error processing YouTube video: {e}")

def play_video(video_url):
if "youtube.com" in video_url or "youtu.be" in video_url:
play_youtube_video(video_url)
else:
play_video_with_mpv(video_url)

# Test with URLs from TikTok, YouTube, Twitter, and Telegram
test_urls = [
# тут тест ссылок
]

for url in test_urls:
play_video(url)


Попробуйте этот подход и проверьте, решит ли это вашу проблему. Если DLL файл находится в другом месте, убедитесь, что путь в `mpv_dll_path` правильный.
Евгений АлесичУченик (126) 3 месяца назад
#говнокод да и еще не рабочий)
♡$ⴎG@r₱u₷sყ♡ Искусственный Интеллект (144149) Евгений Алесич, держите в курсе. оч сомневаюсь что кто-то поможет лучше а главное быстрее
Евгений АлесичУченик (126) 3 месяца назад
ну, если бы я не знал о существовании GPT я б так не раскидывал словами. а так, помню что мне такой же генерировал
Евгений АлесичУченик (126) 3 месяца назад
хотя он ну 100 проц в переменной
ПапаВысший разум (138550) 3 месяца назад
Это не просто говнокод, это лютый, смердящий, бессмыссленный и беспощадный говнокод.
スネーク フリーフライト Ученик (223) 3 месяца назад
Проверь путь, и если он верен добавь вместо "\", "\\"
Похожие вопросы