User:Cupycake0101

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