|
import streamlit as st |
|
import subprocess |
|
import sys |
|
import pandas as pd |
|
|
|
def install_libraries(): |
|
try: |
|
subprocess.check_call(['pip', 'install', 'pytube']) |
|
subprocess.check_call(['pip', 'install', 'youtube_transcript_api']) |
|
subprocess.check_call(['pip', 'install', 'TTS']) |
|
subprocess.run(['pip', 'install', 'opencv-python']) |
|
subprocess.check_call(['pip', 'install', 'moviepy']) |
|
subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'torch']) |
|
subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'transformers']) |
|
subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'sentencepiece']) |
|
print("Libraries installed successfully!") |
|
except subprocess.CalledProcessError as e: |
|
print("Error during installation:", e) |
|
|
|
install_libraries() |
|
|
|
def main(): |
|
|
|
import translation_api |
|
|
|
|
|
st.title("youtube video to japanese") |
|
|
|
url = st.text_input("enter youtube url") |
|
|
|
if url: |
|
captions, t_captions, og_file, t_file, video = translation_api.download_video_transcript(url) |
|
|
|
if captions and t_captions: |
|
captions_list = [] |
|
for line in captions.split("\n"): |
|
if line.strip(): |
|
timestamp, text = line.split(" ", 1) |
|
captions_list.append({"Timestamp": timestamp, "Original": text}) |
|
|
|
df = pd.DataFrame(captions_list) |
|
trimmed_captions = [line.split(' ', 2)[-1] for line in t_captions] |
|
df['Translated'] = trimmed_captions |
|
|
|
st.write(df[['Timestamp', 'Original','Translated']]) |
|
if video_path: |
|
st.video(video_path) |
|
else: |
|
st.write("no video found") |
|
else: |
|
st.write("error 404") |
|
|
|
|
|
if __name__ == "__main__": |
|
main() |
|
|