Files
raspberry-pi-play/youtube.py
2017-07-16 22:50:37 +02:00

46 lines
1.6 KiB
Python

import requests
from datetime import datetime
import calendar
def search(what, type, api_key):
url = "https://www.googleapis.com/youtube/v3/search?part=snippet&q=%s&type=%s&key=%s" % (what, type, api_key)
r = requests.get(url)
return r.json()
def playlistItems(playlistid, api_key, allmovies=False, nexttoken=None):
videos = []
info_url = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId=%s&key=%s" % (
playlistid,
api_key
)
if nexttoken is not None:
info_url += "&pageToken=%s" % (nexttoken)
request_data = requests.get(info_url)
request_data_json = request_data.json()
videos += parse_request_data(request_data_json)
if allmovies is True and 'nextPageToken' in request_data_json:
videos += playlistItems(playlistid, api_key, request_data_json['nextPageToken'])
return videos
def parse_request_data(request_data_json):
parsed_videos = []
for element in request_data_json['items']:
video = {}
videotime = datetime.strptime(element['snippet']['publishedAt'][:-5], "%Y-%m-%dT%H:%M:%S")
timestamp = calendar.timegm(videotime.utctimetuple())
video['timestamp'] = int(timestamp)
video['videoid'] = element['snippet']['resourceId']['videoId']
video['title'] = element['snippet']['title']
video['channel_id'] = element['snippet']['channelId']
video['nick'] = element['snippet']['channelTitle']
parsed_videos.append(video)
return parsed_videos