cheapassreviews

Untitled

Feb 21st, 2018
318
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.27 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. """
  4. Raspberry Pi Youtube Counter for CheapAssReviews Channel
  5.  
  6. Cheapassreviews.com
  7.  
  8. Helped me:
  9. http://stackoverflow.com/questions/36252027/how-to-use-youtube-api-v3-for-realtime-subscribers
  10. https://max7219.readthedocs.io/en/latest/
  11. http://raspi.tv/2013/8-x-8-led-array-driven-by-max7219-on-the-raspberry-pi-via-python
  12. http://www.raspberrypi-spy.co.uk/2012/06/simple-guide-to-the-rpi-gpio-header-and-pins/
  13. http://raspberrypi.stackexchange.com/questions/8734/execute-script-on-start-up
  14. https://stackoverflow.com/questions/14528958/python-youtube-api-v3-how-to-get-video-id-only
  15. """
  16. import RPi.GPIO as GPIO
  17. import math
  18. import os
  19. import sys
  20.  
  21. import httplib2
  22. import json
  23. import urllib
  24.  
  25. import time
  26. import random
  27. import socket
  28.  
  29. from select import select
  30.  
  31. import max7219.led as led
  32.  
  33. #channel id and API key
  34. #channel_id = "ENTER YOUR CHANNEL ID HERE" # channel id
  35. #channel_id = "UCtinbF-Q-fVthA0qrFQTgXQ" # casey
  36. channel_id = "UC9irdFPmwPJOGQotvGzA79Q" # knoptop
  37.  
  38. api_key = "ENTER YOUR API KEY HERE"
  39.  
  40.  
  41. channel_query_url = "https://www.googleapis.com/youtube/v3/search?key=" + api_key + "&channelId="+ channel_id + "&part=snippet,id&order=date&maxResults=1"
  42.  
  43. loops_for_counter = 10
  44. brightness_setting = 8
  45.  
  46.  
  47. def is_connected():
  48. try:
  49. host = socket.gethostbyname("www.google.com")
  50. s = socket.create_connection((host, 80), 2)
  51. return True
  52. except:
  53. pass
  54. return False
  55.  
  56. def shutdown_puter(device):
  57. try:
  58.  
  59. if not(is_connected()):
  60. print "No Internet Bro"
  61. device.clear()
  62. time.sleep(1)
  63. print "No Internet Bro"
  64. time.sleep(1)
  65. print "Shutting down..."
  66. time.sleep(2)
  67. print "I meant that! I'm going to shut down"
  68. time.sleep(3)
  69. print "Hit CTRL - C to not shut down"
  70. time.sleep(10)
  71. if not(is_connected()):
  72. os.system("sudo shutdown -h now")
  73.  
  74. except KeyboardInterrupt:
  75. pass
  76.  
  77.  
  78.  
  79.  
  80. def main():
  81. # create seven segment device
  82. device = led.sevensegment(cascaded=1)
  83.  
  84. device.brightness(brightness_setting)
  85. device.clear()
  86.  
  87. while 1:
  88.  
  89. for _ in range(loops_for_counter):
  90.  
  91. #shutdown_puter(device)
  92.  
  93. try:
  94.  
  95. soup = urllib.urlopen(channel_query_url)
  96. markup = soup.read()
  97. feed_json = json.loads(markup)
  98. v_id = feed_json["items"][0]["id"]["videoId"]
  99.  
  100. #print "v_id:", v_id
  101.  
  102. v_query_url = "https://www.googleapis.com/youtube/v3/videos?id=" + v_id + "&key="+ api_key + "&part=statistics"
  103. #print "query_URL:", v_query_url
  104.  
  105. soup2 = urllib.urlopen(v_query_url)
  106. markup2 = soup2.read()
  107. feed_json2 = json.loads(markup2)
  108.  
  109. view_count = feed_json2["items"][0]["statistics"]["viewCount"]
  110. #print view_count
  111. #print sub_count
  112. device.write_text(0, view_count)
  113.  
  114. except:
  115. device.clear()
  116.  
  117. time.sleep(1)
  118.  
  119.  
  120.  
  121. if __name__ == '__main__':
  122. main()
Advertisement
Add Comment
Please, Sign In to add comment