Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python3
- #imports
- import pytube, os, glob, sys
- #download youtube video
- #url is youtube url, dir is directory to save to
- def downloader(url, dir):
- #get video object
- vid = pytube.YouTube(url)
- #use first stream
- stream = vid.streams.first()
- #download to directory
- stream.download(dir)
- #get files in directory and sort by modification time
- def getLatest():
- #make glob of all files
- files = glob.glob("*")
- #sort by latest
- files.sort(key="os.path.getctime")
- #return list of sorted files
- return files
- #cut out relevant section of video
- #start is start time, and end is end time
- def cut(start, end):
- #use avconv to cut video
- os.system("avconv -i {} -ss {} -t {} -codec copy cut.mp4".format(getLatest()[-1], start, end))
- #remove full video file
- os.remove(getLatest()[-2])
- #add captions
- #convert to gif format, fr is framerate, name is name of gif
- def makeGif(fr, name):
- #generate jpg frames
- os.system("avconv -i {} -r {} 'frames/frame-%03d.jpg'".format(getLatest()[-1], fr))
- #change to frame directory
- os.chdir("frames")
- #convert frames to gif
- os.system("convert -delay 20 -loop 0 *.jpg {}.gif".format(name))
- #move gif to desktop
- os.rename("{}.gif".format(name), "/Users/davenewman/Desktop{}.gif".format(name))
- #delete all frames
- os.remove("*")
- #main routine
- def main():
- #setup and/or change to program directories
- #if dirs exists, move to it, else create them then move to it
- if not os.path.isdir("/Users/davenewman/memer"):
- os.path.makedirs("/Users/davenewman/memer")
- os.path.makedirs("/Users/davenewman/memer/frames")
- os.chdir("/Users/davenewman/memer")
- #python3 memer.py url start end framerate name
- print("Fetching requested video...")
- downloader(sys.argv[1], ".")
- print("Video downloaded, cutting video...")
- cut(sys.argv[2], sys.argv[3])
- print("Video cut, generating gif...")
- makeGif(sys.argv[4], sys.argv[5])
- print("Operation complete. Exiting...")
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement