def update_channel(self, channel_id, status=None, game=None, delay=None, channel_feed_enabled=None): json = dict_gen(status=status, game=game, delay=delay, channel_feed_enabled=channel_feed_enabled) channel_json = dict_gen(channel=json) request = 'channels/{}'.format(channel_id) return self._put(request, json=channel_json)
def add_item_to_collection(self, collection_id, item_id, item_type='video'): request = 'collections/{}/items'.format(collection_id) json = dict_gen(id=item_id, type=item_type) return self._post(request, json=json)
def __init__(self, client_id, oauth_token=None): self._root = TWITCH_API_V5_ROOT self._client_id = client_id self._oauth_token = oauth_token self._headers = dict_gen(Accept=TWITCH_API_V5_ACCEPT, Authorization=self._oauth_token) self._headers['Client-ID'] = self._client_id
def get_community_banned_users( self, community_id, limit=None, cursor=None): request = 'communities/{}/bans'.format(community_id) params = dict_gen(limit=limit, cursor=cursor) return self._get(request, params=params)
def get_channel_subscribers(self, channel_id, limit=None, offset=None, direction=None): parameter_check(limit=limit, direction=direction) params = dict_gen(limit=limit, offset=offset, direction=direction) request = 'channels/{}/subscriptions'.format(channel_id) return self._get(request, params=params)
def get_multiple_feed_posts(self, channel_id, limit=None, cursor=None, comments=None): parameter_check(limit=limit, comments=comments) params = dict_gen(limit=limit, cursor=cursor, comments=comments) request = 'feed/{}/posts'.format(channel_id) return self._request(GET, request, params=params)
def time_out_community_user( self, community_id, user_id, duration, reason=None): request = 'communities/{}/timeouts/{}'.format(community_id, user_id) json = dict_gen(duration=duration, reason=reason) return self._put(request, json=json)
def acf_request(client_id, client_secret, code, redirect_uri, state=None): request = 'https://api.twitch.tv/kraken/oauth2/token' params = dict_gen(client_id=client_id, client_secret=client_secret, code=code, grant_type='authorization_code', redirect_uri=redirect_uri, state=state) return return_on_ok(requests.post(request, params=params))
def get_collection_by_channel(self, channel_id, limit=10, cursor=None, containing_item=None): request = 'channels/{}/collections'.format(channel_id) params = dict_gen(limit=limit, cursor=cursor, containing_item=containing_item) return self._get(request, params=params)
def get_user_follows(self, user_id, limit=None, offset=None, direction=None, sortby=None): request = 'users/{}/follows/channels'.format(user_id) params = dict_gen(limit=limit, offset=offset, direction=direction, sortby=sortby) return self._get(request, params)
def iframe(self): query_params = dict_gen( autoplay=self.autoplay, muted=self.muted, time=self.time) src_url = 'http://player.twitch.tv/?channel={}'.format(self.channel) if query_params: src_url += '&' + \ '&'.join('{}="{}"'.format(k, query_params[k]) for k in query_params) iframe = '<iframe {}></iframe>' params = dict_gen( frameborder=self.frameborder, scrolling=self.scrolling, allowfullscreen=self.allowfullscreen, height=self.height, width=self.width, src=src_url) return iframe.format( ' '.join( '{}="{}"'.format( k, params[k]) for k in params))
def get_followed_videos(self, limit=None, offset=None, broadcast_type=None, language=None, sort=None): request = 'videos/followed' params = dict_gen(limit=limit, offset=offset, broadcast_type=broadcast_type, language=language, sort=sort) return self._get(request, params=params)
def get_channel_followers(self, channel_id, limit=None, offset=None, cursor=None, direction=None): parameter_check(limit=limit, direction=direction) params = dict_gen(limit=limit, offset=offset, cursor=cursor, direction=direction) request = 'channels/{}/follows'.format(channel_id) return self._get(request, params=params)
def update_community( self, community_id, summary=None, description=None, rules=None, email=None): request = 'communities/{}'.format(community_id) json = dict_gen( summary=summary, description=description, rules=rules, email=email) return self._put(request, json=json)
def get_live_streams(self, channel=None, game=None, language=None, stream_type=None, limit=None, offset=None): request = 'streams/' params = dict_gen(channel=channel, game=game, language=language, stream_type=stream_type, limit=limit, offset=offset) return self._get(request, params=params)
def get_top_videos(self, limit=None, offset=None, game=None, period=None, broadcast_type=None, language=None, sort=None): request = 'videos/top' params = dict_gen(limit=limit, offset=offset, game=game, period=period, broadcast_type=broadcast_type, language=language, sort=sort) return self._get(request, params=params)
def acf_connect_link(client_id, redirect_uri, scope=None, force_verify=None, nonce=None, state=None): request = 'https://api.twitch.tv/kraken/oauth2/authorize?' params = dict_gen(client_id=client_id, redirect_uri=redirect_uri, response_type='code', scope=scope, force_verify=force_verify, nonce=nonce, state=state) params_str = '&'.join('{}={}'.format(k, params[k]) for k in params.keys()) return request + params_str
def get_top_clips(self, channel=None, cursor=None, game=None, language=None, limit=None, period=None, trending=None): request = 'clips/top' params = dict_gen(channel=channel, cursor=cursor, game=game, language=language, limit=limit, period=period, trending=trending) return self._get(request, params=params)
def get_channel_videos(self, channel_id, limit=None, offset=None, broadcast_type=None, language=None, sort=None): parameter_check(limit=limit, broadcast_type=broadcast_type, language=language, sort=sort) params = dict_gen(limit=limit, offset=offset, broadcast_type=broadcast_type, language=language, sort=sort) request = 'channels/{}/videos'.format(channel_id) return self._get(request, params=params)
def follow_channel(self, user_id, channel_id, notifications=None): request = 'users/{}/follows/channels/{}'.format(user_id, channel_id) json = dict_gen(notifications=notifications) return self._put(request, json=json)
def get_cheermotes(self, channel_id=None): request = 'bits/actions' params = dict_gen(channel_id=channel_id) return self._get(request, params=params)
def get_streams_summary(self, game=None): request = 'streams/summary' params = dict_gen(game=game) return self._get(request, params=params)
def get_followed_streams(self, stream_type=None, limit=None, offset=None): request = 'streams/followed' params = dict_gen(stream_type=stream_type, limit=limit, offset=offset) return self._get(request, params=params)
def search_channels(self, query, live=False): request = 'search/games' params = dict_gen(query=query, live=live) return self._get(request, params=params)
def search_streams(self, query, limit=None, offset=None, hls=None): request = 'search/streams' params = dict_gen(query=query, limit=limit, offset=offset, hls=hls) return self._get(request, params=params)
def search_channels(self, query, limit=None, offset=None): request = 'search/channels' params = dict_gen(query=query, limit=limit, offset=offset) return self._get(request, params=params)
def get_featured_streams(self, limit=None, offset=None): request = 'streams/feature' params = dict_gen(limit=limit, offset=offset) return self._get(request, params=params)
def get_user_block_list(self, user_id, limit=None, offset=None): request = 'users/{}/blocks'.format(user_id) params = dict_gen(limit=limit, offset=offset) return self._get(request, params=params)
def get_stream_by_user(self, channel_id, stream_type=None): request = 'streams/{}'.format(channel_id) params = dict_gen(stream_type=stream_type) return self._get(request, params=params)
def create_vhs(self, identifier): request = 'user/vhs' json = dict_gen(identifier=identifier) return self._put(request, json=json)