Advertisement
Guest User

Untitled

a guest
Mar 18th, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.10 KB | None | 0 0
  1. #!/usr/bin/python3
  2.  
  3. #imports
  4. import pytube, os, glob, sys
  5.  
  6. #download youtube video
  7. #url is youtube url, dir is directory to save to
  8. def downloader(url, dir):
  9. #get video object
  10. vid = pytube.YouTube(url)
  11. #use first stream
  12. stream = vid.streams.first()
  13. #download to directory
  14. stream.download(dir)
  15.  
  16. #get files in directory and sort by modification time
  17. def getLatest():
  18. #make glob of all files
  19. files = glob.glob("*")
  20. #sort by latest
  21. files.sort(key="os.path.getctime")
  22. #return list of sorted files
  23. return files
  24.  
  25. #cut out relevant section of video
  26. #start is start time, and end is end time
  27. def cut(start, end):
  28. #use avconv to cut video
  29. os.system("avconv -i {} -ss {} -t {} -codec copy cut.mp4".format(getLatest()[-1], start, end))
  30. #remove full video file
  31. os.remove(getLatest()[-2])
  32.  
  33.  
  34. #add captions
  35.  
  36.  
  37.  
  38. #convert to gif format, fr is framerate, name is name of gif
  39. def makeGif(fr, name):
  40. #generate jpg frames
  41. os.system("avconv -i {} -r {} 'frames/frame-%03d.jpg'".format(getLatest()[-1], fr))
  42. #change to frame directory
  43. os.chdir("frames")
  44. #convert frames to gif
  45. os.system("convert -delay 20 -loop 0 *.jpg {}.gif".format(name))
  46. #move gif to desktop
  47. os.rename("{}.gif".format(name), "/Users/davenewman/Desktop{}.gif".format(name))
  48. #delete all frames
  49. os.remove("*")
  50.  
  51.  
  52. #main routine
  53. def main():
  54. #setup and/or change to program directories
  55. #if dirs exists, move to it, else create them then move to it
  56. if not os.path.isdir("/Users/davenewman/memer"):
  57. os.path.makedirs("/Users/davenewman/memer")
  58. os.path.makedirs("/Users/davenewman/memer/frames")
  59. os.chdir("/Users/davenewman/memer")
  60.  
  61. #python3 memer.py url start end framerate name
  62. print("Fetching requested video...")
  63. downloader(sys.argv[1], ".")
  64. print("Video downloaded, cutting video...")
  65. cut(sys.argv[2], sys.argv[3])
  66. print("Video cut, generating gif...")
  67. makeGif(sys.argv[4], sys.argv[5])
  68. print("Operation complete. Exiting...")
  69.  
  70. if __name__ == "__main__":
  71. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement