| import streamlit as st |
| import yt_dlp |
| import ffmpeg |
| import os |
|
|
| |
| def download_audio(url): |
| ydl_opts = { |
| 'format': 'bestaudio/best', |
| 'postprocessors': [{ |
| 'key': 'FFmpegExtractAudio', |
| 'preferredcodec': 'mp3', |
| }], |
| 'outtmpl': 'audio.mp3' |
| } |
| with yt_dlp.YoutubeDL(ydl_opts) as ydl: |
| ydl.download([url]) |
| st.success('Audio berhasil diunduh!') |
|
|
| |
| def translate_text(audio_file): |
| os.system(f'whisper "{audio_file}" --model small.en --language en --best_of 20 --word_timestamps True --output_format srt --task transcribe') |
| with open('audio.srt', 'r') as f: |
| text = f.read() |
| st.write(text) |
|
|
| |
| st.title('Aplikasi Penerjemah Audio YouTube') |
| url = st.text_input('Masukkan URL video YouTube') |
| if st.button('Unduh Audio'): |
| download_audio(url) |
| if st.button('Terjemahkan Teks'): |
| translate_text('audio.mp3') |
| st.success('Teks berhasil diterjemahkan!') |
| with open('audio.srt', 'r') as f: |
| srt_text = f.read() |
| with open('translated_text.srt', 'w') as f: |
| f.write(srt_text) |
| st.download_button('Unduh Hasil Terjemahan', data=srt_text, file_name='translated_text.srt') |
|
|