def resolve_playlist(url): resolve_pool = ThreadPool(processes=16) logger.info("Resolving YouTube-Playlist '%s'", url) playlist = [] page = 'first' while page: params = { 'playlistId': url, 'maxResults': 50, 'key': yt_key, 'part': 'contentDetails' } if page and page != "first": logger.debug("Get YouTube-Playlist '%s' page %s", url, page) params['pageToken'] = page result = session.get(yt_api_endpoint + 'playlistItems', params=params) data = result.json() page = data.get('nextPageToken') for item in data["items"]: video_id = item['contentDetails']['videoId'] playlist.append(video_id) playlist = resolve_pool.map(resolve_url, playlist) resolve_pool.close() return [item for item in playlist if item]
def resolve_playlist(url): logger.info("Resolving Youtube-Playlist '%s'", url) playlist = [] page = 'first' while page: params = { 'playlistId': url, 'maxResults': 50, 'key': yt_key, 'part': 'contentDetails' } if page and page != "first": logger.debug("Get Youtube-Playlist '%s' page %s", url, page) params['pageToken'] = page result = requests.get(yt_api_endpoint + 'playlistItems', params=params) data = result.json() page = data.get('nextPageToken') for item in data["items"]: video_id = item['contentDetails']['videoId'] playlist.append(video_id) return [resolve_url(item) for item in playlist]
def resolve_url(url, stream=False): try: video = pafy.new(url) if not stream: uri = 'youtube:video/%s.%s' % (safe_url( video.title), video.videoid) else: uri = video.getbestaudio() if not uri: # get video url uri = video.getbest() logger.debug( '%s - %s %s %s' % (video.title, uri.bitrate, uri.mediatype, uri.extension)) uri = uri.url if not uri: return except Exception as e: # Video is private or doesn't exist logger.info(e.message) return track = Track(name=video.title, comment=video.videoid, length=video.length * 1000, album=Album(name='YouTube', images=[video.bigthumb, video.bigthumbhd]), uri=uri) return track
def resolve_url(url, stream=False): video = pafy.new(url) if not stream: uri = 'youtube:video/%s.%s' % (safe_url(video.title), video.videoid) else: uri = video.getbestaudio() if not uri: # get video url uri = video.getbest() logger.debug('%s - %s %s %s' % (video.title, uri.bitrate, uri.mediatype, uri.extension)) uri = uri.url if not uri: return if '-' in video.title: title = video.title.split('-') track = Track(name=title[1].strip(), comment=video.videoid, length=video.length * 1000, artists=[Artist(name=title[0].strip())], album=Album(name='Youtube', images=[video.bigthumb, video.bigthumbhd]), uri=uri) else: track = Track(name=video.title, comment=video.videoid, length=video.length * 1000, album=Album(name='Youtube', images=[video.bigthumb, video.bigthumbhd]), uri=uri) return track
def resolve_playlist(url): resolve_pool = ThreadPool(processes=16) logger.info("Resolving YouTube-Playlist '%s'", url) playlist = [] page = 'first' while page: params = { 'playlistId': url, 'maxResults': 50, 'key': yt_key, 'part': 'contentDetails' } if page and page != "first": logger.debug("Get YouTube-Playlist '%s' page %s", url, page) params['pageToken'] = page result = session.get(yt_api_endpoint+'playlistItems', params=params) data = result.json() page = data.get('nextPageToken') for item in data["items"]: video_id = item['contentDetails']['videoId'] playlist.append(video_id) playlist = resolve_pool.map(resolve_url, playlist) resolve_pool.close() return [item for item in playlist if item]
def resolve_url(url, stream=False): try: video = pafy.new(url) if not stream: uri = 'youtube:video/%s.%s' % ( safe_url(video.title), video.videoid ) else: uri = video.getbestaudio() if not uri: # get video url uri = video.getbest() logger.debug('%s - %s %s %s' % ( video.title, uri.bitrate, uri.mediatype, uri.extension)) uri = uri.url if not uri: return except Exception as e: # Video is private or doesn't exist logger.info(e.message) return track = Track( name=video.title, comment=video.videoid, length=video.length * 1000, album=Album( name='YouTube', images=[video.bigthumb, video.bigthumbhd] ), uri=uri ) return track
def resolve_url(url, stream=False): video = pafy.new(url) if not stream: uri = 'youtube:video/%s.%s' % ( safe_url(video.title), video.videoid ) else: uri = video.getbestaudio() if not uri: # get video url uri = video.getbest() logger.debug('%s - %s %s %s' % ( video.title, uri.bitrate, uri.mediatype, uri.extension)) uri = uri.url if not uri: return if '-' in video.title: title = video.title.split('-') track = Track( name=title[1].strip(), comment=video.videoid, length=video.length*1000, artists=[Artist(name=title[0].strip())], album=Album( name='Youtube', images=[video.bigthumb, video.bigthumbhd] ), uri=uri ) else: track = Track( name=video.title, comment=video.videoid, length=video.length*1000, album=Album( name='Youtube', images=[video.bigthumb, video.bigthumbhd] ), uri=uri ) return track
def resolve_track(track, stream=False): logger.debug("Resolving Youtube for track '%s'", track) if hasattr(track, 'uri'): return resolve_url(track.comment, stream) else: return resolve_url(track.split('.')[-1], stream)
def resolve_track(track, stream=False): logger.debug("Resolving YouTube for track '%s'", track) if hasattr(track, 'uri'): return resolve_url(track.comment, stream) else: return resolve_url(track.split('.')[-1], stream)