Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- import praw
- import time
- import httplib2
- import os
- import sys
- from apiclient.discovery import build
- from apiclient.errors import HttpError
- from oauth2client.client import flow_from_clientsecrets
- from oauth2client.file import Storage
- from oauth2client.tools import argparser, run_flow
- CLIENT_SECRETS_FILE = "client_secrets.json"
- # This variable defines a message to display if the CLIENT_SECRETS_FILE is
- # missing.
- MISSING_CLIENT_SECRETS_MESSAGE = """
- WARNING: Please configure OAuth 2.0
- To make this sample run you will need to populate the client_secrets.json file
- found at:
- %s
- with information from the {{ Cloud Console }}
- {{ https://cloud.google.com/console }}
- For more information about the client_secrets.json file format, please visit:
- https://developers.google.com/api-client-library/python/guide/aaa_client_secrets
- """ % os.path.abspath(os.path.join(os.path.dirname(__file__),
- CLIENT_SECRETS_FILE))
- # This OAuth 2.0 access scope allows for full read/write access to the
- # authenticated user's account.
- YOUTUBE_READ_WRITE_SCOPE = "https://www.googleapis.com/auth/youtube"
- YOUTUBE_API_SERVICE_NAME = "youtube"
- YOUTUBE_API_VERSION = "v3"
- flow = flow_from_clientsecrets(
- CLIENT_SECRETS_FILE,
- message=MISSING_CLIENT_SECRETS_MESSAGE,
- scope=YOUTUBE_READ_WRITE_SCOPE
- )
- storage = Storage("%s-oauth2.json" % sys.argv[0])
- credentials = storage.get()
- if credentials is None or credentials.invalid:
- flags = argparser.parse_args()
- credentials = run_flow(flow, storage, flags)
- youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
- http=credentials.authorize(httplib2.Http()))
- print("Connected to YouTube!")
- reddit = praw.Reddit(client_id='ojxVhSfPheoQyQ',
- client_secret='secret',
- user_agent='u/balloon_wanted bot 1.0',
- password='password',
- username='balloon_wanted')
- print("Connected to Reddit!")
- SeenVideos = []
- channelResult = youtube.channels().list(
- part='contentDetails',
- id='channelid'
- ).execute()
- playlistId = channelResult['items'][0]['contentDetails']['relatedPlaylists']['uploads']
- while True:
- playlistResult = youtube.playlistItems().list(
- part='snippet',
- maxResults=2,
- playlistId=playlistId
- ).execute()
- print('Playlist has {} visible videos'.format(playlistResult['pageInfo']['totalResults']))
- print('Got {} uploads for channel id: {}'.format(len(playlistResult['items']), playlistId))
- if len(SeenVideos) == 0:
- for video in playlistResult['items']:
- videoLink ='https://www.youtube.com/watch?v=' + video['snippet']['resourceId']['videoId']
- SeenVideos.append(videoLink)
- print('Initialized seen videos with {} videos'.format(len(SeenVideos)))
- else:
- if len(playlistResult['items']) == 2:
- for video in playlistResult['items']:
- videoTitle = video['snippet']['title']
- videoLink = 'https://www.youtube.com/watch?v=' + video['snippet']['resourceId']['videoId']
- if videoLink not in SeenVideos:
- print('Found new video: \'{}\' link: {}'.format(videoTitle, videoLink))
- reddit.subreddit('balloon_wanted').submit(videoTitle, url=videoLink, resubmit = True)
- print('Posted to reddit')
- SeenVideos.append(videoLink)
- exit() # EXIT
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement