Advertisement
clockworkpc

Fetch gdata, Parse Video Title, and Much More with Python

Jun 9th, 2013
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.56 KB | None | 0 0
  1. #!/usr/bin/python
  2. #/home/clockworkpc/bin/tubemixingsave.py
  3.  
  4. # Released under a GPLv3 Licence by Clockwork PC 2012
  5. # www.clockworkpc.com.au
  6.  
  7. # You are entitled to the following four freedoms:
  8. # Freedom 0: To run this program for any purpose
  9. # Freedom 1: To study how this program works and change it to make it do what you wish
  10. # Freedom 2: To redistribute copies so you can help your neighbour
  11. # Freedom 3: To distribute copies of your modified version to others
  12.  
  13. import os, datetime, re
  14.  
  15. now = datetime.datetime.now()
  16. nowstring = str(now.strftime("%Y%m%d%H%M"))
  17.  
  18. print nowstring
  19.  
  20. tubemixingFolder = "/tmp/tubemixing/"
  21. videoFolder = os.getenv("HOME") + "/Videos/"
  22. saveFolder = videoFolder + "tubemixing/"
  23. originalVideosFolder = saveFolder + "OriginalVideos/"
  24. namedVideosFolder = saveFolder + "NamedVideos/"
  25. videoListsFolder = saveFolder + "VideoLists/"
  26. videoListsFile = videoListsFolder + nowstring
  27. videoDataFolder = saveFolder + "gdata_text_files/"
  28.  
  29. # Copy videos from Tubemixing temp folder
  30. os.system("cp -R -f "+ tubemixingFolder + " " + videoFolder)
  31.  
  32. # Remove prefix
  33. # NOTE: I set Tubemixing to save by default to 360p.  
  34. # You'll have to tweak it if you save higher resolution by default.
  35. preFix1 = "tubemixing-360p-"
  36. preFix2 = "tubemixing--"
  37.  
  38. # First pass (most of the files are saved with preFix1)
  39. os.listdir(saveFolder)
  40. for filename in os.listdir(saveFolder):
  41.     if filename.startswith(preFix1):
  42.         os.rename(saveFolder+filename,saveFolder+filename[16:])
  43.  
  44. # Second pass (some files are saved with preFix2)
  45. os.listdir(saveFolder)
  46. for filename in os.listdir(saveFolder):
  47.     if filename.startswith(preFix2):
  48.         os.rename(saveFolder+filename,saveFolder+filename[12:])
  49.  
  50. # Use wget to fetch gdata
  51.  
  52. for filename in os.listdir(saveFolder):
  53.     if len(filename) == 11:
  54.         os.system("cd ~/Videos/tubemixing/gdata_text_files/ && wget" + " " "http://gdata.youtube.com/feeds/api/videos/" + filename + " " + "-O" + " " + filename)
  55.  
  56. # Parse video title from data fetched from YouTube
  57. print os.listdir(videoDataFolder)
  58. for filename in os.listdir(videoDataFolder):
  59.     f = open(videoDataFolder+filename)
  60.     for line in f:
  61.         if "<title type='text'>" in line:
  62.             x = line
  63.             r = re.compile("<title type='text'>(.*?)</title><content")
  64.             m = r.search(x)
  65.             if m:
  66.                 titleInfo = m.group(1)
  67.                 print titleInfo
  68. # Using video title, save properly named and suffixed files in a new folder
  69.                 os.system("cp -v " + saveFolder + filename + " " + namedVideosFolder + "'" + titleInfo + "'" + ".webm")
  70.                 os.system("mv -v " + saveFolder + filename + " " + originalVideosFolder + filename)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement