Source code for pyytlounge.api

import aiohttp

api_base = "https://www.youtube.com/api/lounge"


[docs] def get_thumbnail_url(video_id: str, thumbnail_idx=0) -> str: """Returns thumbnail for given video. Use thumbnail idx to get different thumbnails.""" return f"https://img.youtube.com/vi/{video_id}/{thumbnail_idx}.jpg"
[docs] async def get_available_captions(api_key: str, video_id: str): """Uses the traditional YouTube API to enumerate available subtitle tracks.""" yt_base_url = "https://www.googleapis.com/youtube/v3/captions" params = {"part": "snippet", "videoId": video_id, "key": api_key} async with aiohttp.ClientSession() as session: async with session.get(yt_base_url, params=params) as response: if response.status != 200: raise Exception(f"Request failed with status {response.status}") data = await response.json() languages = [] for item in data.get("items", []): snippet = item.get("snippet", {}) language = snippet.get("language") if language and language not in languages: languages.append(language) return languages