monstercat-downloader/README.md

2.5 KiB

Prerequisites

Ubuntu

apt install build-essential libcurl4-gnutls-dev imagemagick eyeD3 flac

Other OS

  • make
  • g++
  • libcurl
  • imagemagick (convert executable)
  • eyeD3 executable
  • metaflac executable

Usage

There must be a file named "config.json" in the working directory with your monstercat credentials and other configurations. See config_example.json for the template.

Invoke make to compile. Requires libcurl.

Login via browser and export cid cookie to cookies.txt (Netscape format)

Invoke mcat_dl with catalog ID as extra arguments to download.

Download File Structure

Release Folder

download_path/Type/YYYY-MM-DD - CatalogID - Artist - Title

  • download_path - Set in config.json
  • Type - Album/EP/Single
  • YYYY-MM-DD - Release Date in ISO format for easy sorting
  • Artist/Title - removed featuring artists from "Artist" and added to "Title"

Cover

  • Cover(.jpg/.png) - Full resolution from Monstercat
  • Cover_small.jpg - 750x750 used to tag files

MP3 and FLAC folders

Separate folders if more than 1 track otherwise put in main folder.

Extended folder

This is where extended mixes are put into. They are in their original format.

File Naming

  • Title.(mp3/flac) - Used when only 1 track

  • Number - Title.(mp3/flac) - Used when track artist matches release artist

  • Number - Artist - Title.(mp3/flac) - Used when track artist does not match release artist

JSON Library Source

https://github.com/nlohmann/json

  • Release - 3.10.5
  • Commit - 4f8fba14066156b73f1189a2b8bd568bde5284c5

eyeD3

https://eyed3.readthedocs.io/en/latest/

  • For MP3 tagging
	// Common
	--encoding utf8
	--preserve-file-times

	// First Step - Remove Images
	--remove-all-images

	// Second Step - Change what is needed
	--add-image "...":FRONT_COVER
	--artist "..."
	--album "..."
	--title "..."
	--track ...

metaflac

https://xiph.org/flac/download.html

  • For FLAC tagging
metaflac
	// Common
	--preserve-modtime
	--no-utf8-convert

	// First Step - Remove Pictures
	--remove --block-type=PICTURE

	// Second Step - Remove Tags
	--remove-tag=TITLE
	--remove-tag=ARTIST
	--remove-tag=ALBUM
	--remove-tag=TRACKNUMBER

	// Third Step - Add
	"--import-picture-from=3|image/jpeg|||/path/to/cover"
	"--set-tag=TITLE=..."
	"--set-tag=ARTIST=..."
	"--set-tag=ALBUM=..."
	"--set-tag=TRACKNUMBER=..."
	--dont-use-padding

	file.flac

imagemagick

https://imagemagick.org/script/download.php

  • For Image Resizing
convert
	Cover
	-resize 750x750
	Cover_small.jpg