y2t added

This commit is contained in:
edbrz9 2022-12-29 12:22:48 +01:00
parent 3b93c9ffbf
commit 5e3d902471
3 changed files with 90 additions and 0 deletions

0
proj/y2t/handler.php Normal file
View File

27
proj/y2t/index.php Normal file
View File

@ -0,0 +1,27 @@
<!DOCTYPE HTML>
<html>
<head>
<title>Y2T</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div id="root">
<form method="post" action="handler.php">
<label for="url">URL:</label><br>
<input type="text" id="url" name="url"><br>
<label for="lang">Language:</label><br>
<input type="text" id="lang" name="lang"><br><br>
<input type="submit" value="Submit">
</form>
</div>
<script src="assets/js/vue.min.js"></script>
<script src="assets/js/app.js"></script>
</body>
</html>

63
proj/y2t/y2t.py Normal file
View File

@ -0,0 +1,63 @@
import youtube_dl
import sys
url = sys.argv[1]
lang = sys.argv[2]
ydl_opts = {
'writesubtitles': True,
'writeautomaticsub': True,
'subtitlesformat': 'vtt',
'subtitleslangs': [lang],
'lkjsdlfkjsdf': 'sdflkj',
'outtmpl': '%(id)s',
'skip_download': True,
'writethumbnail': True,
'quiet': True
}
ydl = youtube_dl.YoutubeDL(ydl_opts)
ydl.download([url])
info = ydl.extract_info(url, download=False)
creator = info['uploader']
title = info['title']
id = info['id']
subFn = id + "." + lang + ".vtt"
txt = ""
with open(subFn, "r") as f:
lines = f.readlines()
for i in range(len(lines)):
if i < len(lines) - 1 and ">" not in lines[i] and ":" not in lines[i] and lines[i].strip() != "" and lines[i + 1].strip() == "":
txt += lines[i]
txt = txt.replace("\n"," ")
#print(txt)
words = txt.split()
sList = []
wCount = 0
maxWordCount = 1000
currentString = ""
for w in words:
wCount +=1
currentString += w + " "
if wCount == maxWordCount:
sList.append(currentString)
wCount = 0
currentString = ""
if currentString:
sList.append(currentString)
blocks = len(sList)
for i in range(blocks):
print('This is part '+ str(i+1) +'/'+ str(blocks) + "of the transcript of a video named: "+ title)