roughly finished search for youtube music

This commit is contained in:
Hellow 2023-07-28 02:23:50 +02:00
parent a52c441322
commit a5b76648f5
2 changed files with 20 additions and 1 deletions

View File

@ -65,10 +65,20 @@ def music_responsive_list_item_renderer(renderer: dict) -> List[DatabaseObject]:
return results
def music_shelf_renderer(renderer: dict) -> List[DatabaseObject]:
result = []
for subrenderer in renderer.get("contents"):
result.extend(parse_renderer(subrenderer))
return result
RENDERER_PARSERS = {
"musicCardShelfRenderer": music_card_shelf_renderer,
"musicResponsiveListItemRenderer": music_responsive_list_item_renderer,
"musicResponsiveListItemFlexColumnRenderer": music_responsive_list_item_flex_column_renderer
"musicResponsiveListItemFlexColumnRenderer": music_responsive_list_item_flex_column_renderer,
"musicShelfRenderer": music_card_shelf_renderer,
}
def parse_renderer(renderer: dict) -> List[DatabaseObject]:

View File

@ -268,7 +268,16 @@ class YoutubeMusic(Page):
dump_to_file(f"{i}-renderer.json", json.dumps(content), is_json=True, exit_after_dump=False)
results = []
"""
TODO
cant use fixed indices, because if something has no entries, the list dissappears
instead I have to try parse everything, and just reject community playlists and profiles.
"""
results.extend(parse_renderer(renderer_list[1]))
results.extend(parse_renderer(renderer_list[2]))
results.extend(parse_renderer(renderer_list[4]))
results.extend(parse_renderer(renderer_list[6]))
return results