download_label: fix for new bandcamp data-client-items change

This commit is contained in:
yosh
2024-03-22 18:58:58 -04:00
parent d832a8f6e0
commit 586130b112
+7 -2
View File
@@ -37,6 +37,7 @@ Formats:
import atexit import atexit
import dataclasses import dataclasses
import glob import glob
import html
import json import json
import os import os
import pprint import pprint
@@ -271,8 +272,12 @@ class BCFreeDownloader:
r = self.session.get(url) r = self.session.get(url)
r.raise_for_status() r.raise_for_status()
soup = BeautifulSoup(r.text, "html.parser") soup = BeautifulSoup(r.text, "html.parser")
for album_title in soup.find_all("p", class_="title"): grid = soup.find("ol", id="music-grid")
album_link = urljoin(url, album_title.parent.attrs["href"]) albums = [li.a["href"] for li in grid.find_all("li")]
if grid.has_attr("data-client-items"):
albums += [obj["page_url"] for obj in json.loads(html.unescape(grid["data-client-items"]))]
for album_link in albums:
album_link = urljoin(url, album_link)
logger.info(f"Downloading {album_link}") logger.info(f"Downloading {album_link}")
try: try:
self.download_album(album_link, force) self.download_album(album_link, force)