我使用以下代码将youtube视频转录为文本,但结果有点奇怪。单词之间没有空格,有些连在一起。
#import libraries
from youtube_transcript_api import YouTubeTranscriptApi as yta
import re
#select any youtube video
vid_id = 'S4lTtvlFvyk'
#extract text
data = yta.get_transcript(vid_id)
#make your transcript more better
transcript=''
for value in data:
for key,val in value.items():
if key == 'text':
transcript += val
l=transcript.splitlines()
final_tra = " ".join (l)
#write out transcript in the file
file=open(r"C:Usersuser.nameDesktoppythonDATAVideo filestrans.txt",'w')
file.write(final_tra)
file.close()
输出文件如下:
检查我那个苹果工程师去drawingboard建立bettermask苹果实际上为员工设计其veryown面具商店towear他们得到coupledifferent versionsbut这是标准的这是大多数员工会穿它撸employeesof苹果将有我们有一些iphone12后来案例视频当中的最后消息的thatwilly豆儿成功了再加上someviewers lou后显示downstairsthat联系了他在我面前他们喊outto anonymouslythis是officialapplemask这是可重用的面罩inmedium largefor更多信息请visitwelcomeforward.apple.comwhat packagingwhich疯了对我来说是非常坐落于在艾斯克苹果像你唐加尔cantellwe有什么看起来像一个串行numberdefinitely项目编号和lotnumber和生产日期sojust appletremendously一切详细的东西超过仅)经验这看起来好像超出了
的范围
有些词彼此合并,不产生任何空间。请提供相应的解决方案。
这可能不是您想要的输出格式,但它更简洁,并且克服了单词合并的问题。如果您转储(打印)get_transcript()返回的字典,您将更好地了解发生了什么。
from youtube_transcript_api import YouTubeTranscriptApi as yta
import re
# select any youtube video
vid_id = 'S4lTtvlFvyk'
# make your transcript more better
transcript = []
for value in yta.get_transcript(vid_id):
transcript.append(value['text'])
final_tra = ' '.join(transcript)
# write out transcript in the file
with open(r'C:Usersuser.nameDesktoppythonDATAVideo filestrans.txt', 'w') as outfile:
outfile.write(final_tra)