Spaces:
Running
Running
| from pytubefix import YouTube | |
| import subprocess | |
| import os | |
| def get_ytdata(link): | |
| return YouTube(link) | |
| def get_ytmetas(link): | |
| yt = YouTube(link) | |
| return yt.thumbnail_url, yt.title, yt.description | |
| def get_ytaudio(ytdata: YouTube): | |
| # Somehow the audio is corrupted so need to convert to valid audio file. | |
| # Fix for : https://github.com/jhj0517/Whisper-WebUI/issues/304 | |
| audio_path = ytdata.streams.get_audio_only().download(filename=os.path.join("modules", "yt_tmp.wav")) | |
| temp_audio_path = os.path.join("modules", "yt_tmp_fixed.wav") | |
| try: | |
| subprocess.run([ | |
| 'ffmpeg', '-y', | |
| '-i', audio_path, | |
| temp_audio_path | |
| ], check=True) | |
| os.replace(temp_audio_path, audio_path) | |
| return audio_path | |
| except subprocess.CalledProcessError as e: | |
| print(f"Error during ffmpeg conversion: {e}") | |
| return None | |