diff --git a/gen/albums.dat b/gen/albums.dat
new file mode 100644
index 0000000..b109f80
--- /dev/null
+++ b/gen/albums.dat
@@ -0,0 +1,32 @@
+27_demos\27 Demos\Margo Guryan
+choose_your_weapon\Choose your Weapon\Hiatus Kaiyote
+ciao_baby\Ciao! Baby\The Marshmallow Kisses
+cosmos\Cosmos\Yuji Ohno
+deep_breakfast\Deep Breakfast\Ray Lynch
+departing\Departing\Jesus Molina
+dune\Dune\David Matthews
+fge_1\Each and Every Word Leaves Me Here Alone\Foreground Eclipse
+fge2\Missing, Loving, Suffering\Foreground Eclipse
+funky_stuff\Funky Stuff\ Jiro Inagaki
+glass_beach\the first glass beach album\Glass Beach
+gods_trashmen\God's Trashmen Sent to Right the Mess\Fievel is Glauque
+haqq\H.A.Q.Q.\Liturgy
+her_abiding_memory\Her Abiding Memory\Pitcher56
+high_society\High Society\Enon
+hold_your_horse_is\Hold Your Horse Is\Hella
+hylics2\Hylics 2 Original Soundtrack\Chuck Salamone
+ironbunny\Iron Hummer Alternative\IRONBUNNY
+itekoma_hits\ITEKOMA HITS\Otoboke Beaver
+live_at_bush_hall\Live at Bush Hall\Black Country, New Road
+los_desamores_de_dewey_martino\Los Desamores de Dewey Martino\Dewey Martino
+macrocosm\MACROCOSM\BALTHVS
+make_up_city\Make Up City\CASIOPEA
+mass_teen_fainting\Mass Teen Fainting\Plumtree
+mint_jams\Mint Jams\CASIOPEA
+mouse_on_the_keys\an anxious object\mouse on the keys
+my_caution_line\My Caution Line\Citrobal
+new_history_warfare_3\New History Warfare Vol. 3: To See More Light\Colin Stetson
+new_levels_new_devils\New Levels New Devils\Polyphia
+oncle_jazz\Oncle Jazz\Men I Trust
+one_year_madness\One Year Madness\Golemm
+parousia\Parousia\XI
diff --git a/gen/albums.json b/gen/albums.json
new file mode 100644
index 0000000..8f9ff6f
--- /dev/null
+++ b/gen/albums.json
@@ -0,0 +1,162 @@
+[
+ {
+ "name": "27 Demos",
+ "artist": "Margo Guryan ",
+ "link": "27_demos"
+ },
+ {
+ "name": "Choose your Weapon",
+ "artist": "Hiatus Kaiyote",
+ "link": "choose_your_weapon"
+ },
+ {
+ "name": "Ciao! Baby",
+ "artist": "The Marshmallow Kisses",
+ "link": "ciao_baby"
+ },
+ {
+ "name": "Cosmos",
+ "artist": "Yuji Ohno",
+ "link": "cosmos"
+ },
+ {
+ "name": "Deep Breakfast",
+ "artist": "Ray Lynch",
+ "link": "deep_breakfast"
+ },
+ {
+ "name": "Departing",
+ "artist": "Jesus Molina",
+ "link": "departing"
+ },
+ {
+ "name": "Dune",
+ "artist": "David Matthews",
+ "link": "dune"
+ },
+ {
+ "name": "Each and Every Word Leaves Me Here Alone",
+ "artist": "Foreground Eclipse",
+ "link": "fge_1"
+ },
+ {
+ "name": "Missing, Loving, Suffering",
+ "artist": "Foreground Eclipse",
+ "link": "fge2"
+ },
+ {
+ "name": "Funky Stuff",
+ "artist": " Jiro Inagaki",
+ "link": "funky_stuff"
+ },
+ {
+ "name": "the first glass beach album",
+ "artist": "Glass Beach",
+ "link": "glass_beach"
+ },
+ {
+ "name": "God's Trashmen Sent to Right the Mess",
+ "artist": "Fievel is Glauque",
+ "link": "gods_trashmen"
+ },
+ {
+ "name": "H.A.Q.Q.",
+ "artist": "Liturgy",
+ "link": "haqq"
+ },
+ {
+ "name": "Her Abiding Memory",
+ "artist": "Pitcher56",
+ "link": "her_abiding_memory"
+ },
+ {
+ "name": "High Society",
+ "artist": "Enon",
+ "link": "high_society"
+ },
+ {
+ "name": "Hold Your Horse Is",
+ "artist": "Hella",
+ "link": "hold_your_horse_is"
+ },
+ {
+ "name": "Hylics 2 Original Soundtrack",
+ "artist": "Chuck Salamone",
+ "link": "hylics2"
+ },
+ {
+ "name": "Iron Hummer Alternative",
+ "artist": "IRONBUNNY",
+ "link": "ironbunny"
+ },
+ {
+ "name": "ITEKOMA HITS",
+ "artist": "Otoboke Beaver",
+ "link": "itekoma_hits"
+ },
+ {
+ "name": "Live at Bush Hall",
+ "artist": "Black Country, New Road",
+ "link": "live_at_bush_hall"
+ },
+ {
+ "name": "Los Desamores de Dewey Martino",
+ "artist": "Dewey Martino",
+ "link": "los_desamores_de_dewey_martino"
+ },
+ {
+ "name": "MACROCOSM",
+ "artist": "BALTHVS",
+ "link": "macrocosm"
+ },
+ {
+ "name": "Make Up City",
+ "artist": "CASIOPEA",
+ "link": "make_up_city"
+ },
+ {
+ "name": "Mass Teen Fainting",
+ "artist": "Plumtree",
+ "link": "mass_teen_fainting"
+ },
+ {
+ "name": "Mint Jams",
+ "artist": "CASIOPEA",
+ "link": "mint_jams"
+ },
+ {
+ "name": "an anxious object",
+ "artist": "mouse on the keys",
+ "link": "mouse_on_the_keys"
+ },
+ {
+ "name": "My Caution Line",
+ "artist": "Citrobal",
+ "link": "my_caution_line"
+ },
+ {
+ "name": "New History Warfare Vol. 3: To See More Light",
+ "artist": "Colin Stetson",
+ "link": "new_history_warfare_3"
+ },
+ {
+ "name": "New Levels New Devils",
+ "artist": "Polyphia",
+ "link": "new_levels_new_devils"
+ },
+ {
+ "name": "Oncle Jazz",
+ "artist": "Men I Trust",
+ "link": "oncle_jazz"
+ },
+ {
+ "name": "One Year Madness",
+ "artist": "Golemm",
+ "link": "one_year_madness"
+ },
+ {
+ "name": "Parousia",
+ "artist": "XI",
+ "link": "parousia"
+ }
+]
\ No newline at end of file
diff --git a/gen/albums.md b/gen/albums.md
new file mode 100644
index 0000000..f824adb
--- /dev/null
+++ b/gen/albums.md
@@ -0,0 +1,21 @@
+
\ No newline at end of file
diff --git a/gen/albums.py b/gen/albums.py
new file mode 100755
index 0000000..0a8ba2f
--- /dev/null
+++ b/gen/albums.py
@@ -0,0 +1,16 @@
+#! /usr/bin/python3
+import json
+
+input = open("albums.dat", "r")
+lines = input.read().splitlines()
+
+with open("albums.json", "w") as out:
+ l = []
+ for line in lines:
+ split = line.split('\\')
+ link = split[0]
+ name = split[1]
+ artist = split[2]
+ l.append({"name": name, "artist": artist, "link": link})
+ j = json.dumps(l, indent=2)
+ out.write(j)