Merge pull request #5 from yoshiyoshyosh/data_client_items

download_label: fix for new bandcamp data-client-items change
This commit is contained in:
7x11x13
2024-03-23 16:24:19 -04:00
committed by GitHub
+7 -2
View File
@@ -37,6 +37,7 @@ Formats:
import atexit
import dataclasses
import glob
import html
import json
import os
import pprint
@@ -271,8 +272,12 @@ class BCFreeDownloader:
r = self.session.get(url)
r.raise_for_status()
soup = BeautifulSoup(r.text, "html.parser")
for album_title in soup.find_all("p", class_="title"):
album_link = urljoin(url, album_title.parent.attrs["href"])
grid = soup.find("ol", id="music-grid")
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}")
try:
self.download_album(album_link, force)