Music preservation harvester — Google dorks, yt-dlp, SoundCloud/YouTube
Go to file
ibotzhub d743b8c397 Fix SoundCloud harvest: track URLs only, curl_cffi impersonation.
Skip profile and listing pages for yt-dlp, scrape them for track links instead.
Use python -m yt_dlp when curl_cffi is installed. Remove duplicate crawler and README files.
2026-06-20 21:16:05 -07:00
music_harvester Fix SoundCloud harvest: track URLs only, curl_cffi impersonation. 2026-06-20 21:16:05 -07:00
.gitignore Sync harvester package layout and gitignore. 2026-06-20 20:23:15 -07:00
crawler.py Add music preservation harvester. 2026-06-20 20:20:53 -07:00
README.txt Fix SoundCloud harvest: track URLs only, curl_cffi impersonation. 2026-06-20 21:16:05 -07:00
requirements.txt Fix SoundCloud harvest: track URLs only, curl_cffi impersonation. 2026-06-20 21:16:05 -07:00

music harvester

based on your crawler script. same gui, green button, google dork flow.
downloads tracks to Desktop/MUSIC_ARCHIVE/songs

setup (one time):

  pip install -r requirements.txt
  playwright install chromium
  pip install -U yt-dlp curl_cffi

run:

  python crawler.py

before you harvest:
- artist name in the box
- click "Audio Dorks" (dont leave all the album cover searches on)
- turn on platforms you want: SoundCloud, YouTube, Bandcamp etc
- leave "Also save album art" UNCHECKED unless you want cover jpegs
- yt-dlp AND curl_cffi must be installed in the SAME python you use to run crawler.py
  (SoundCloud blocks downloads without browser impersonation)

what it does when it works:
- google search -> finds links
- soundcloud profiles/listings get scraped for track links, NOT downloaded directly
- individual soundcloud/youtube/bandcamp track URLs get passed to yt-dlp
- direct .mp3 links download straight
- files saved as Artist - Title in MUSIC_ARCHIVE/songs

if soundcloud errors with 403 or impersonation:
- pip install curl_cffi yt-dlp   (same python as crawler.py)
- re-run: python crawler.py

if you only got album covers before:
- album art searches were on by default (fixed now, they're off)
- it was scraping og:image off pages instead of yt-dlp'ing the link (fixed)
- there was a broken yt-dlp flag that made every download fail on some installs (fixed)

if youtube still errors:
- update yt-dlp: pip install -U yt-dlp
- newer yt-dlp wants a js runtime for youtube sometimes (deno or node). try updating yt-dlp first.

if shit errors paste the red [!] lines from the log window

folder layout after unzip:
  crawler.py
  requirements.txt
  README.txt
  music_harvester/

crawler.py and music_harvester/ must be in the same folder.