def get_channels(): """ :return: Returns list of all Channels :rtype : list of ChannelItem """ response = json(URL_CHANNEL_LIST.format(apiKey=API_KEY)) return [ChannelItem(channelJson) for channelJson in response['channels']]
def get_channel_programs(channelID): """ :param channelID: Channel ID :return: list of programs for th current Channel ID :rtype: list of ProgramItem """ response = json(URL_PROGRAMS_LIST.format(apiKey=API_KEY, channelID=channelID)) programs = [ProgramItem(programJson) for programJson in response['programs']] # Only return programs with one or more episodes/clips return filter(lambda x: (x.episodeCount + x.clipCount) > 0, programs)
def search(search_term, limit=20): response = json(URL_SEARCH.format(apiKey=API_KEY, keyword=search_term, limit=limit)) programs = [ProgramItem(programJson) for programJson in response['programs']] return programs
def get_media_stream_by_url(quality, url): match_obj = re.search(r'.*video\/(.*)\/.*', url, re.M | re.I) video_id = match_obj.group(1) streams = json(URL_MEDIA_STREAM_BY_VIDEO_ID.format(videoId=video_id)) return _get_matching_stream_quality(quality, streams)
def get_media_stream_by_media_id(quality, programID, mediaType, mediaID): mediaHash = _get_media_id_hash(programID, mediaType, mediaID) streams = json(URL_MEDIA_STREAM_BY_MEDIA_ID.format(mediaHash=mediaHash)) return _get_matching_stream_quality(quality, streams)
def _get_media_info(programID, mediaType, mediaID): response = json(URL_MEDIA_INFO.format(apiKey=API_KEY, programID=programID, mediaType=mediaType, mediaID=mediaID)) return response['media']
def get_program_media(programID, mediaType): response = json(URL_MEDIA_LIST.format(apiKey=API_KEY, programID=programID, mediaType=mediaType)) return [MediaItem(mediaJson) for mediaJson in response['media']]