User:Cupycake0101
Appearance
from moviepy.editor import VideoFileClip, concatenate_videoclips from tkinter.messagebox import askyesno from tkinter import Tk, Entry, Button from requests import get from os import remove
print("[+] Finished importing modules")
def cleanup(files):
for filename in files: remove("{}.mp4".format(filename))
def mergeVideos(fileNames):
videoFiles = [] for videoFileName in fileNames: videoFiles.append(VideoFileClip("{}.mp4".format(videoFileName)))
mergedVideo = concatenate_videoclips(videoFiles, method="compose") mergedVideo.write_videofile("finish.mp4", verbose=False, logger=None)
cleanup(fileNames)
def downloadVideo(word):
fileName = "{}.mp4".format(word) url = "https://media.signbsl.com/videos/bsl/signstation/{}".format(fileName)
response = get(url, stream=True)
if(response.status_code == 200): with open(fileName, "wb") as wordFile: for chunk in response.iter_content(chunk_size=1024*1024): if(chunk): wordFile.write(chunk)
return(True)
return(False)
def isVideoAvailable(word):
fileName = "{}.mp4".format(word) url = "https://media.signbsl.com/videos/bsl/signstation/{}".format(fileName)
response = get(url)
if(response.status_code == 200): return(True)
print("[-] {} not available".format(word)) return(False)
def parseWords(words):
wordList = words.split() availableWords = []
if(len(wordList) > 1): for word in wordList: if(isVideoAvailable(word)): availableWords.append(word)
print(availableWords)
if(len(availableWords) > 0): output = "" for word in availableWords: output += " {}".format(word)
confirm = askyesno(title="Confirmation", message="{}?".format(output)) if(confirm): print("[/] Downloading videos...") for word in availableWords: downloadVideo(word)
print("[+] Downloaded videos!") print("[/] Merging videos...")
mergeVideos(availableWords)
print("[+] Merged videos!")
else: print("[+] Exiting request") return(False)
return(True)
else: return(False)
else: if(isVideoAvailable(words)): downloadVideo(words) return(True) return(False)
def processText():
words = textEntry.get()
if(words): print("[/] Processing text...")
if(parseWords(words)): print("[+] Successfully processed into video!")
print("[+] Finished functions")
window = Tk() window.title("Text to Sign") window.geometry("200x200") window.resizable(False, False)
textEntry = Entry(window) textEntry.pack()
processButton = Button(window, text="Process Text", command=processText) processButton.pack()
window.mainloop()