Automatic Monstercat downloader and auto-tagger
Go to file
2024-07-01 15:17:40 +03:00
.gitignore Reworked downloaded now available. Tagging not working 2024-07-01 12:52:39 +03:00
common.cpp Added cover resizing 2024-07-01 15:17:40 +03:00
common.h Added cover resizing 2024-07-01 15:17:40 +03:00
config_example.json Reworked downloaded now available. Tagging not working 2024-07-01 12:52:39 +03:00
curl_dl.cpp Started migration to libcurl 2024-06-24 14:56:07 +03:00
curl_dl.h Started migration to libcurl 2024-06-24 14:56:07 +03:00
example_download2.json Added array example. Implemented main. 2022-08-08 17:03:00 +03:00
example_download.json Added usage info and example JSON files 2022-07-20 17:26:55 +03:00
example_login.json Added usage info and example JSON files 2022-07-20 17:26:55 +03:00
json.hpp Added most functionality. Missing Cover manipulation and tagging. 2022-07-18 17:53:23 +03:00
main.cpp Added cover resizing 2024-07-01 15:17:40 +03:00
Makefile Reworked downloaded now available. Tagging not working 2024-07-01 12:52:39 +03:00
monstercat_dl.cpp Prepare for tagging 2024-07-01 15:10:04 +03:00
monstercat_dl.h Added donwloading tracks and files 2024-07-01 11:28:18 +03:00
README.md Updated README 2024-07-01 13:00:06 +03:00
TODO.md Changed TODO format 2024-07-01 14:25:19 +03:00

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.

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

  • Artist - 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
  • TODO: Add info here

metaflac

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

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

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

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

	// 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