Ruslan Magana Vsevolodovna commited on
Commit
590d379
1 Parent(s): a403fe8

Small fixes

Browse files
Files changed (2) hide show
  1. .gitignore +4 -0
  2. app.py +42 -11
.gitignore ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+
2
+ *.mp4
3
+ *.pyc
4
+ *.wav
app.py CHANGED
@@ -28,10 +28,26 @@ def download_video(url):
28
  print("Downloaded")
29
  return local_file
30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  def validate_url(url):
32
  import validators
33
  if not validators.url(url):
34
  print("Hi there URL seems invalid ")
 
 
 
35
 
36
 
37
  def cleanup():
@@ -69,6 +85,14 @@ def generate_transcript(url,lang_api):
69
  return script
70
 
71
 
 
 
 
 
 
 
 
 
72
  def video_to_translate(url,initial_language,final_language):
73
 
74
  #Internal definitions
@@ -102,16 +126,14 @@ def video_to_translate(url,initial_language,final_language):
102
  lang='de'
103
  elif final_language == "Japanese":
104
  lang='ja'
105
-
106
  # Initial directory
107
- home_dir = os.getcwd()
 
 
108
  print('Initial directory:',home_dir)
109
  cleanup()
110
  # Temporal directory
111
- temp_dir=os.path.join(home_dir, "temp")
112
  print('Temporal directory:',temp_dir)
113
- #Create temp directory
114
- pathlib.Path(temp_dir).mkdir(parents=True, exist_ok=True)
115
  # Go to temp directory
116
  os.chdir(temp_dir)
117
  print('Changing temporal directory',os.getcwd())
@@ -159,7 +181,15 @@ def video_to_translate(url,initial_language,final_language):
159
  print(type(text))
160
 
161
  else:
162
- text = r.recognize_google(audio_data, language = lang_in)
 
 
 
 
 
 
 
 
163
  #print(text)
164
  print("Destination language ",lang)
165
 
@@ -210,11 +240,11 @@ gr.Interface(fn = video_to_translate,
210
  outputs = 'video',
211
  verbose = True,
212
  title = 'Video Youtube Translator',
213
- description = 'A simple application that translates Youtube videos from English, Italian, Japanese, Russian, Spanish, and German to Italian, Spanish, Russian, English and Japanese. Wait one minute to process.',
214
  article =
215
  '''<div>
216
- <p style="text-align: center"> All you need to do is to paste the Youtube link and hit submit, then wait for compiling. After that click on Play/Pause for listing to the video. The video is saved in an mp4 format.
217
- For more information visit <a href="https://ruslanmv.com/">ruslanmv.com</a>
218
  </p>
219
  </div>''',
220
 
@@ -222,8 +252,9 @@ gr.Interface(fn = video_to_translate,
222
  ["https://www.youtube.com/watch?v=Cu3R5it4cQs&list", "English","Italian"],
223
  ["https://www.youtube.com/watch?v=fkGCLIQx1MI", "English","Spanish"],
224
  ["https://www.youtube.com/watch?v=fkGCLIQx1MI", "English","Russian"],
225
- ["https://www.youtube.com/watch?v=_5YeX8eCLgA&ab_channel=TheTelegraph", "Russian","English"],
226
  ["https://www.youtube.com/watch?v=qzzweIQoIOU", "Japanese","English"],
227
- ["https://www.youtube.com/watch?v=eo17uDr2_XA", "German","Spanish"]
 
228
  ]
229
  ).launch()
 
28
  print("Downloaded")
29
  return local_file
30
 
31
+ def validate_youtube(url):
32
+ #This creates a youtube objet
33
+ yt = YouTube(url)
34
+ #This will return the length of the video in sec as an int
35
+ video_length = yt.length
36
+ if video_length > 600:
37
+ print("Your video is larger than 10 minutes")
38
+ #return False
39
+ else:
40
+ print("Your video is less than 10 minutes")
41
+ #return True
42
+
43
+
44
  def validate_url(url):
45
  import validators
46
  if not validators.url(url):
47
  print("Hi there URL seems invalid ")
48
+ return False
49
+ else:
50
+ return True
51
 
52
 
53
  def cleanup():
 
85
  return script
86
 
87
 
88
+ # Set environment variables
89
+ home_dir = os.getcwd()
90
+ temp_dir=os.path.join(home_dir, "temp")
91
+ #Create temp directory
92
+ pathlib.Path(temp_dir).mkdir(parents=True, exist_ok=True)
93
+ os.environ['home_dir'] = home_dir
94
+ os.environ['temp_dir'] = temp_dir
95
+
96
  def video_to_translate(url,initial_language,final_language):
97
 
98
  #Internal definitions
 
126
  lang='de'
127
  elif final_language == "Japanese":
128
  lang='ja'
 
129
  # Initial directory
130
+ home_dir= os.getenv('home_dir')
131
+ temp_dir = os.getenv('temp_dir')
132
+ os.chdir(home_dir)
133
  print('Initial directory:',home_dir)
134
  cleanup()
135
  # Temporal directory
 
136
  print('Temporal directory:',temp_dir)
 
 
137
  # Go to temp directory
138
  os.chdir(temp_dir)
139
  print('Changing temporal directory',os.getcwd())
 
181
  print(type(text))
182
 
183
  else:
184
+ try:
185
+ text = r.recognize_google(audio_data, language = lang_in)
186
+ except Exception:
187
+ print("This video cannot be recognized")
188
+ cleanup()
189
+ # Return back to main directory
190
+ os.chdir(home_dir)
191
+ return "./demo/tryagain.mp4"
192
+
193
  #print(text)
194
  print("Destination language ",lang)
195
 
 
240
  outputs = 'video',
241
  verbose = True,
242
  title = 'Video Youtube Translator',
243
+ description = 'A simple application that translates Youtube small videos from English, Italian, Japanese, Russian, Spanish, and German to Italian, Spanish, Russian, English and Japanese. Wait one minute to process.',
244
  article =
245
  '''<div>
246
+ <p style="text-align: center"> All you need to do is to paste the Youtube link and hit submit,, then wait for compiling. After that click on Play/Pause for listing to the video. The video is saved in an mp4 format.
247
+ The lenght video limit is 10 minutes. For more information visit <a href="https://ruslanmv.com/">ruslanmv.com</a>
248
  </p>
249
  </div>''',
250
 
 
252
  ["https://www.youtube.com/watch?v=Cu3R5it4cQs&list", "English","Italian"],
253
  ["https://www.youtube.com/watch?v=fkGCLIQx1MI", "English","Spanish"],
254
  ["https://www.youtube.com/watch?v=fkGCLIQx1MI", "English","Russian"],
255
+ ["https://www.youtube.com/watch?v=QbkhvLrlex4", "Russian","English"],
256
  ["https://www.youtube.com/watch?v=qzzweIQoIOU", "Japanese","English"],
257
+ ["https://www.youtube.com/watch?v=nOGZvu6tJFE", "German","Spanish"]
258
+
259
  ]
260
  ).launch()