Madison Ruby 2013 CLOSURE by Steve Klabnik
( talking about "Why the Lucky Stiff" )

google colab

pip install youtube_transcript_api
pip install googletrans==4.0.0-rc1
from youtube_transcript_api import YouTubeTranscriptApi
from googletrans import Translator
from google.colab import files
import time

#Madison Ruby 2013 CLOSURE by Steve Klabnik
video_id = 'MaWHVceDbFo' ## youtube video_id
line =[]
line[:] = YouTubeTranscriptApi.get_transcript(video_id,languages=['en'])

text_list = []
for l in line:
    ##print("text: ", l['text'])
    ##print("start:", l['start'])
    ##print("duration:", l['duration'])

    l['text']=l['text'].strip()
    l['text']=l['text'].rstrip('\n')
    l['text']=l['text'].replace('\n',' ')
    text_list.append(l['text'])
##print(*line)    
del line
##print(text_list)

print("@dauuricus")
print("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -")
print("YouTube captions")
print("- - - - - - - - - - - - - - - - - - -  YouTube  - - - - - - - - - - - - - - - - - - -")
print()
print()
line = YouTubeTranscriptApi.list_transcripts(video_id)    

transcript = line.find_transcript(['en'])
##print(transcript.fetch())
for count, dict_obj in enumerate(transcript.fetch()):
    print( count +1, dict_obj['text'] )
print()
print()
print("************************************************************************************")
print()
print("Youtube captions")
print("- - - - - - - - - - - - - - - - - - translated - - - - - - - - - - - - - - - - - - -")
print()
print()
translated = transcript.translate('ja')
for count, dict_obj in enumerate(translated.fetch()):
    print( count+1, dict_obj['text'] )
print()
print("-----------------------------------------------------------------------------------")
print()
print("google translate API")
print("- - - - - - - - - - - - - - - - -  googletrans  - - - - - - - - - - - - - - - - - -")
print()
print()
####line_list = []
####for l in text_list:
####    line_list.append(l.replace('\n',' '))
##text_list[:] = [a for a in text_list if a != ' ']
##text_list[:] = [l.replace('\n',' ') for l in text_list]


text_compo = [] ##2 lines to 1 line
i = 0
txt = ''
for count,l in enumerate(text_list):
    if i == 0:
      txt += l
      i = i + 1
      text_compo.append(txt)
    elif i == 1:
      txt += ' ' +l
      text_compo.pop()
      text_compo.append(txt)
      i = 0
      txt = ''

for count, l in enumerate(text_list):
    print(count+1,l)
print()
print("************************************************************************************")
print()
print("google translate API")
print("- - - - - - - - - - - - - - - - -  translated - - - - - - - - - - - - - - - - - - -")    
print()
print()
#translator = Translator()

#for count, l in enumerate(text_list):
#    translated = translator.translate(l, dest='ja')
#    ##print(count+1, l)
#    print(count+1, translated.text)

num = 5
#obj_num = 1

#for count, l in enumerate(text_list):
#    if count+ 1 < num:
#        translated = translator.translate(l, dest='ja')
#        print(count+1, l)
#        print(count+1, translated.text)
#    else:
#        translated = translator.translate(l, dest='ja')
#        print(count+1, l)
#        print(count+1, translated.text)        
#        del translator
#        num = num + 5
#        #obj_num = obj_num + 1
#        #print("")
#        #print("--- translator :", obj_num)
#        #print("")
#        translator = Translator()
#
#del translator
print()
print("------------------------------------------------------------------------------------")
print()
print("google translate API")
print("- - - - - - - - - - - - - - - - - - 2 lines to 1 - - - - - - - - - - - - - - - - - -")    
print()
print()

for count, l in enumerate(text_compo):
    print(count+1,l)
print()
print("************************************************************************************")
print()
print("google translate API")
print("- - - - - - - - - - - - - - - - - - translated - - - - - - - - - - - - - - - - - - -")    
print()
print()
#for count, l in enumerate(text_compo):
#    translated = translator.translate(l, dest='ja')
#    ##print(count+1, l)
#    print(count+1, translated.text)

translator = Translator()
num = 5
#obj_num = 1
filename = 'subtitle.txt'
with open(filename, 'w') as f:


  for count, l in enumerate(text_compo):
      if count + 1 < num:
        time.sleep(0.5)
        translated = translator.translate(l, dest='ja')
        print(count+1, l)
        linenum = f'{(count+1)}'
        f.write(linenum)
        f.write('  ')
        f.writelines(l)
        f.write('\n')
        print(count+1, translated.text)
        f.write(linenum)
        f.write('  ')
        f.writelines(translated.text)
        f.write('\n')
        f.write('\n')
      else:
        translated = translator.translate(l, dest='ja')
        print(count+1, l)
        linenum = f'{(count+1)}'
        f.write(linenum)
        f.write('  ')
        f.writelines(l)
        f.write('\n')
        print(count+1, translated.text)
        f.write(linenum)
        f.write('  ')      
        f.writelines(translated.text)
        f.write('\n')
        f.write('\n')
        del translator
        num = num + 5
        #obj_num = obj_num + 1
        #print("")
        #print("--- translator :", obj_num)
        #print("")
        translator = Translator()
  f.close()
files.download(filename)
del translator
print()
print()
print("************************************************************************************")
print()
print("End.")
from youtube_transcript_api import YouTubeTranscriptApi

from google.colab import files

#Madison Ruby 2013 CLOSURE by Steve Klabnik
video_id = 'MaWHVceDbFo' ## youtube video_id
line =[]
line[:] = YouTubeTranscriptApi.get_transcript(video_id,languages=['en'])

text_list = []
for l in line:
    ##print("text: ", l['text'])
    ##print("start:", l['start'])
    ##print("duration:", l['duration'])

    l['text']=l['text'].strip()
    l['text']=l['text'].rstrip('\n')
    l['text']=l['text'].replace('\n',' ')
    text_list.append(l['text'])
##print(line)    
del line
#print(*text_list)

print("@dauuricus")
print("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -")
print("YouTube captions")
print("- - - - - - - - - - - - - - - - - - -  YouTube  - - - - - - - - - - - - - - - - - - -")
print()
print()
line = YouTubeTranscriptApi.list_transcripts(video_id)    

transcript = line.find_transcript(['en'])
##print(transcript.fetch())
for count, dict_obj in enumerate(transcript.fetch()):
    print( count +1, dict_obj['text'] )
print()
print()
print("************************************************************************************")

Usage

binder case:

binder

binder

Edit
Pub: 05 Jun 2022 12:33 UTC
Edit: 07 Jun 2022 04:20 UTC
Views: 251