From e5b46402f8d2ee6ea745d1d7a02f2c5eb8b917a3 Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Tue, 4 Dec 2018 14:13:37 +0000
Subject: [PATCH] Fix #308: Licenses

---
 .gitignore                                    |    1 +
 api/config/api_urls.py                        |    1 +
 api/funkwhale_api/federation/serializers.py   |    6 +
 api/funkwhale_api/music/factories.py          |   34 +-
 api/funkwhale_api/music/filters.py            |    1 +
 api/funkwhale_api/music/licenses.py           |  363 ++
 .../management/commands/check_licenses.py     |   34 +
 api/funkwhale_api/music/metadata.py           |   29 +-
 .../migrations/0034_auto_20181127_0325.py     |   36 +
 .../migrations/0035_auto_20181203_1515.py     |   24 +
 api/funkwhale_api/music/models.py             |   46 +
 api/funkwhale_api/music/serializers.py        |   19 +
 api/funkwhale_api/music/tasks.py              |    5 +
 api/funkwhale_api/music/views.py              |   27 +-
 api/requirements/test.txt                     |    1 +
 api/tests/federation/test_serializers.py      |    4 +-
 api/tests/music/licenses.json                 | 4539 +++++++++++++++++
 api/tests/music/test.mp3                      |  Bin 297745 -> 297745 bytes
 api/tests/music/test.ogg                      |  Bin 3459481 -> 3459481 bytes
 api/tests/music/test.opus                     |  Bin 3019841 -> 3024001 bytes
 api/tests/music/test_licenses.py              |  193 +
 api/tests/music/test_metadata.py              |   13 +
 api/tests/music/test_models.py                |   12 +
 api/tests/music/test_serializers.py           |   35 +-
 api/tests/music/test_tasks.py                 |   12 +-
 api/tests/music/test_views.py                 |   31 +-
 changes/changelog.d/308.feature               |   25 +
 front/src/App.vue                             |   69 +-
 front/src/components/library/Track.vue        |  101 +-
 29 files changed, 5595 insertions(+), 66 deletions(-)
 create mode 100644 api/funkwhale_api/music/licenses.py
 create mode 100644 api/funkwhale_api/music/management/commands/check_licenses.py
 create mode 100644 api/funkwhale_api/music/migrations/0034_auto_20181127_0325.py
 create mode 100644 api/funkwhale_api/music/migrations/0035_auto_20181203_1515.py
 create mode 100644 api/tests/music/licenses.json
 create mode 100644 api/tests/music/test_licenses.py
 create mode 100644 changes/changelog.d/308.feature

diff --git a/.gitignore b/.gitignore
index 3983381664..44459f0f8a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -94,3 +94,4 @@ docs/swagger
 _build
 front/src/translations.json
 front/locales/en_US/LC_MESSAGES/app.po
+*.prof
diff --git a/api/config/api_urls.py b/api/config/api_urls.py
index fd076c8e23..16f21d3465 100644
--- a/api/config/api_urls.py
+++ b/api/config/api_urls.py
@@ -19,6 +19,7 @@ router.register(r"libraries", views.LibraryViewSet, "libraries")
 router.register(r"listen", views.ListenViewSet, "listen")
 router.register(r"artists", views.ArtistViewSet, "artists")
 router.register(r"albums", views.AlbumViewSet, "albums")
+router.register(r"licenses", views.LicenseViewSet, "licenses")
 router.register(r"playlists", playlists_views.PlaylistViewSet, "playlists")
 router.register(
     r"playlist-tracks", playlists_views.PlaylistTrackViewSet, "playlist-tracks"
diff --git a/api/funkwhale_api/federation/serializers.py b/api/funkwhale_api/federation/serializers.py
index 9f4bad010e..40d4833c83 100644
--- a/api/funkwhale_api/federation/serializers.py
+++ b/api/funkwhale_api/federation/serializers.py
@@ -731,6 +731,8 @@ class TrackSerializer(MusicEntitySerializer):
     position = serializers.IntegerField(min_value=0, allow_null=True, required=False)
     artists = serializers.ListField(child=ArtistSerializer(), min_length=1)
     album = AlbumSerializer()
+    license = serializers.URLField(allow_null=True, required=False)
+    copyright = serializers.CharField(allow_null=True, required=False)
 
     def to_representation(self, instance):
         d = {
@@ -740,6 +742,10 @@ class TrackSerializer(MusicEntitySerializer):
             "published": instance.creation_date.isoformat(),
             "musicbrainzId": str(instance.mbid) if instance.mbid else None,
             "position": instance.position,
+            "license": instance.local_license["identifiers"][0]
+            if instance.local_license
+            else None,
+            "copyright": instance.copyright if instance.copyright else None,
             "artists": [
                 ArtistSerializer(
                     instance.artist, context={"include_ap_context": False}
diff --git a/api/funkwhale_api/music/factories.py b/api/funkwhale_api/music/factories.py
index 0ec3fdb227..a06ada8085 100644
--- a/api/funkwhale_api/music/factories.py
+++ b/api/funkwhale_api/music/factories.py
@@ -4,9 +4,9 @@ import factory
 
 from funkwhale_api.factories import ManyToManyFromList, registry
 from funkwhale_api.federation import factories as federation_factories
+from funkwhale_api.music import licenses
 from funkwhale_api.users import factories as users_factories
 
-
 SAMPLES_PATH = os.path.join(
     os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))),
     "tests",
@@ -30,6 +30,29 @@ def playable_factory(field):
     return inner
 
 
+def deduce_from_conf(field):
+    @factory.lazy_attribute
+    def inner(self):
+        return licenses.LICENSES_BY_ID[self.code][field]
+
+    return inner
+
+
+@registry.register
+class LicenseFactory(factory.django.DjangoModelFactory):
+    code = "cc-by-4.0"
+    url = deduce_from_conf("url")
+    commercial = deduce_from_conf("commercial")
+    redistribute = deduce_from_conf("redistribute")
+    copyleft = deduce_from_conf("copyleft")
+    attribution = deduce_from_conf("attribution")
+    derivative = deduce_from_conf("derivative")
+
+    class Meta:
+        model = "music.License"
+        django_get_or_create = ("code",)
+
+
 @registry.register
 class ArtistFactory(factory.django.DjangoModelFactory):
     name = factory.Faker("name")
@@ -70,6 +93,15 @@ class TrackFactory(factory.django.DjangoModelFactory):
     class Meta:
         model = "music.Track"
 
+    @factory.post_generation
+    def license(self, created, extracted, **kwargs):
+        if not created:
+            return
+
+        if extracted:
+            self.license = LicenseFactory(code=extracted)
+            self.save()
+
 
 @registry.register
 class UploadFactory(factory.django.DjangoModelFactory):
diff --git a/api/funkwhale_api/music/filters.py b/api/funkwhale_api/music/filters.py
index a0635368db..437b9222f8 100644
--- a/api/funkwhale_api/music/filters.py
+++ b/api/funkwhale_api/music/filters.py
@@ -34,6 +34,7 @@ class TrackFilter(filters.FilterSet):
             "playable": ["exact"],
             "artist": ["exact"],
             "album": ["exact"],
+            "license": ["exact"],
         }
 
     def filter_playable(self, queryset, name, value):
diff --git a/api/funkwhale_api/music/licenses.py b/api/funkwhale_api/music/licenses.py
new file mode 100644
index 0000000000..5690a912f3
--- /dev/null
+++ b/api/funkwhale_api/music/licenses.py
@@ -0,0 +1,363 @@
+import logging
+import re
+
+from django.db import transaction
+
+from . import models
+
+logger = logging.getLogger(__name__)
+
+MODEL_FIELDS = [
+    "redistribute",
+    "derivative",
+    "attribution",
+    "copyleft",
+    "commercial",
+    "url",
+]
+
+
+@transaction.atomic
+def load(data):
+    """
+    Load/update database objects with our hardcoded data
+    """
+    existing = models.License.objects.all()
+    existing_by_code = {e.code: e for e in existing}
+    to_create = []
+
+    for row in data:
+        try:
+            license = existing_by_code[row["code"]]
+        except KeyError:
+            logger.info("Loading new license: {}".format(row["code"]))
+            to_create.append(
+                models.License(code=row["code"], **{f: row[f] for f in MODEL_FIELDS})
+            )
+        else:
+            logger.info("Updating license: {}".format(row["code"]))
+            stored = [getattr(license, f) for f in MODEL_FIELDS]
+            wanted = [row[f] for f in MODEL_FIELDS]
+            if wanted == stored:
+                continue
+            # the object in database needs an update
+            for f in MODEL_FIELDS:
+                setattr(license, f, row[f])
+
+            license.save()
+
+    models.License.objects.bulk_create(to_create)
+    return sorted(models.License.objects.all(), key=lambda o: o.code)
+
+
+_cache = None
+
+
+def match(*values):
+    """
+    Given a string, extracted from music file tags, return corresponding License
+    instance, if found
+    """
+    global _cache
+    for value in values:
+        if not value:
+            continue
+
+        # we are looking for the first url in our value
+        # This regex is not perfect, but it's good enough for now
+        urls = re.findall(
+            r"http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+",
+            value,
+        )
+        if not urls:
+            logger.debug('Impossible to guess license from string "{}"'.format(value))
+            continue
+        url = urls[0]
+        if _cache:
+            existing = _cache
+        else:
+            existing = load(LICENSES)
+            _cache = existing
+        for license in existing:
+            if license.conf is None:
+                continue
+            for i in license.conf["identifiers"]:
+                if match_urls(url, i):
+                    return license
+
+
+def match_urls(*urls):
+    """
+    We want to ensure the two url match but don't care for protocol
+    or trailing slashes
+    """
+    urls = [u.rstrip("/") for u in urls]
+    urls = [u.lstrip("http://") for u in urls]
+    urls = [u.lstrip("https://") for u in urls]
+    return len(set(urls)) == 1
+
+
+def get_cc_license(version, perks, country=None, country_name=None):
+    if len(perks) == 0:
+        raise ValueError("No perks!")
+
+    url_template = "//creativecommons.org/licenses/{type}/{version}/"
+
+    code_parts = []
+    name_parts = []
+    perks_data = [
+        ("by", "Attribution"),
+        ("nc", "NonCommercial"),
+        ("sa", "ShareAlike"),
+        ("nd", "NoDerivatives"),
+    ]
+    for perk, name in perks_data:
+        if perk in perks:
+            code_parts.append(perk)
+            name_parts.append(name)
+    url = url_template.format(version=version, type="-".join(code_parts))
+    code_parts.append(version)
+    name = "Creative commons - {perks} {version}".format(
+        perks="-".join(name_parts), version=version
+    )
+    if country:
+        code_parts.append(country)
+        name += " {}".format(country_name)
+        url += country + "/"
+    data = {
+        "name": name,
+        "code": "cc-{}".format("-".join(code_parts)),
+        "redistribute": True,
+        "commercial": "nc" not in perks,
+        "derivative": "nd" not in perks,
+        "copyleft": "sa" in perks,
+        "attribution": "by" in perks,
+        "url": "https:" + url,
+        "identifiers": ["http:" + url],
+    }
+
+    return data
+
+
+COUNTRIES = {
+    "ar": "Argentina",
+    "au": "Australia",
+    "at": "Austria",
+    "be": "Belgium",
+    "br": "Brazil",
+    "bg": "Bulgaria",
+    "ca": "Canada",
+    "cl": "Chile",
+    "cn": "China Mainland",
+    "co": "Colombia",
+    "cr": "Costa Rica",
+    "hr": "Croatia",
+    "cz": "Czech Republic",
+    "dk": "Denmark",
+    "ec": "Ecuador",
+    "eg": "Egypt",
+    "ee": "Estonia",
+    "fi": "Finland",
+    "fr": "France",
+    "de": "Germany",
+    "gr": "Greece",
+    "gt": "Guatemala",
+    "hk": "Hong Kong",
+    "hu": "Hungary",
+    "igo": "IGO",
+    "in": "India",
+    "ie": "Ireland",
+    "il": "Israel",
+    "it": "Italy",
+    "jp": "Japan",
+    "lu": "Luxembourg",
+    "mk": "Macedonia",
+    "my": "Malaysia",
+    "mt": "Malta",
+    "mx": "Mexico",
+    "nl": "Netherlands",
+    "nz": "New Zealand",
+    "no": "Norway",
+    "pe": "Peru",
+    "ph": "Philippines",
+    "pl": "Poland",
+    "pt": "Portugal",
+    "pr": "Puerto Rico",
+    "ro": "Romania",
+    "rs": "Serbia",
+    "sg": "Singapore",
+    "si": "Slovenia",
+    "za": "South Africa",
+    "kr": "South Korea",
+    "es": "Spain",
+    "se": "Sweden",
+    "ch": "Switzerland",
+    "tw": "Taiwan",
+    "th": "Thailand",
+    "uk": "UK: England &amp; Wales",
+    "scotland": "UK: Scotland",
+    "ug": "Uganda",
+    "us": "United States",
+    "ve": "Venezuela",
+    "vn": "Vietnam",
+}
+CC_30_COUNTRIES = [
+    "at",
+    "au",
+    "br",
+    "ch",
+    "cl",
+    "cn",
+    "cr",
+    "cz",
+    "de",
+    "ec",
+    "ee",
+    "eg",
+    "es",
+    "fr",
+    "gr",
+    "gt",
+    "hk",
+    "hr",
+    "ie",
+    "igo",
+    "it",
+    "lu",
+    "nl",
+    "no",
+    "nz",
+    "ph",
+    "pl",
+    "pr",
+    "pt",
+    "ro",
+    "rs",
+    "sg",
+    "th",
+    "tw",
+    "ug",
+    "us",
+    "ve",
+    "vn",
+    "za",
+]
+
+CC_25_COUNTRIES = [
+    "ar",
+    "bg",
+    "ca",
+    "co",
+    "dk",
+    "hu",
+    "il",
+    "in",
+    "mk",
+    "mt",
+    "mx",
+    "my",
+    "pe",
+    "scotland",
+]
+
+LICENSES = [
+    # a non-exhaustive list: http://musique-libre.org/doc/le-tableau-des-licences-libres-et-ouvertes-de-dogmazic/
+    {
+        "code": "cc0-1.0",
+        "name": "CC0 - Public domain",
+        "redistribute": True,
+        "derivative": True,
+        "commercial": True,
+        "attribution": False,
+        "copyleft": False,
+        "url": "https://creativecommons.org/publicdomain/zero/1.0/",
+        "identifiers": [
+            # note the http here.
+            # This is the kind of URL that is embedded in music files metadata
+            "http://creativecommons.org/publicdomain/zero/1.0/"
+        ],
+    },
+    # Creative commons version 4.0
+    get_cc_license(version="4.0", perks=["by"]),
+    get_cc_license(version="4.0", perks=["by", "sa"]),
+    get_cc_license(version="4.0", perks=["by", "nc"]),
+    get_cc_license(version="4.0", perks=["by", "nc", "sa"]),
+    get_cc_license(version="4.0", perks=["by", "nc", "nd"]),
+    get_cc_license(version="4.0", perks=["by", "nd"]),
+    # Creative commons version 3.0
+    get_cc_license(version="3.0", perks=["by"]),
+    get_cc_license(version="3.0", perks=["by", "sa"]),
+    get_cc_license(version="3.0", perks=["by", "nc"]),
+    get_cc_license(version="3.0", perks=["by", "nc", "sa"]),
+    get_cc_license(version="3.0", perks=["by", "nc", "nd"]),
+    get_cc_license(version="3.0", perks=["by", "nd"]),
+    # Creative commons version 2.5
+    get_cc_license(version="2.5", perks=["by"]),
+    get_cc_license(version="2.5", perks=["by", "sa"]),
+    get_cc_license(version="2.5", perks=["by", "nc"]),
+    get_cc_license(version="2.5", perks=["by", "nc", "sa"]),
+    get_cc_license(version="2.5", perks=["by", "nc", "nd"]),
+    get_cc_license(version="2.5", perks=["by", "nd"]),
+    # Creative commons version 2.0
+    get_cc_license(version="2.0", perks=["by"]),
+    get_cc_license(version="2.0", perks=["by", "sa"]),
+    get_cc_license(version="2.0", perks=["by", "nc"]),
+    get_cc_license(version="2.0", perks=["by", "nc", "sa"]),
+    get_cc_license(version="2.0", perks=["by", "nc", "nd"]),
+    get_cc_license(version="2.0", perks=["by", "nd"]),
+    # Creative commons version 1.0
+    get_cc_license(version="1.0", perks=["by"]),
+    get_cc_license(version="1.0", perks=["by", "sa"]),
+    get_cc_license(version="1.0", perks=["by", "nc"]),
+    get_cc_license(version="1.0", perks=["by", "nc", "sa"]),
+    get_cc_license(version="1.0", perks=["by", "nc", "nd"]),
+    get_cc_license(version="1.0", perks=["by", "nd"]),
+]
+
+# generate ported (by country) CC licenses:
+
+for country in CC_30_COUNTRIES:
+    name = COUNTRIES[country]
+    LICENSES += [
+        get_cc_license(version="3.0", perks=["by"], country=country, country_name=name),
+        get_cc_license(
+            version="3.0", perks=["by", "sa"], country=country, country_name=name
+        ),
+        get_cc_license(
+            version="3.0", perks=["by", "nc"], country=country, country_name=name
+        ),
+        get_cc_license(
+            version="3.0", perks=["by", "nc", "sa"], country=country, country_name=name
+        ),
+        get_cc_license(
+            version="3.0", perks=["by", "nc", "nd"], country=country, country_name=name
+        ),
+        get_cc_license(
+            version="3.0", perks=["by", "nd"], country=country, country_name=name
+        ),
+    ]
+
+
+for country in CC_25_COUNTRIES:
+    name = COUNTRIES[country]
+    LICENSES += [
+        get_cc_license(version="2.5", perks=["by"], country=country, country_name=name),
+        get_cc_license(
+            version="2.5", perks=["by", "sa"], country=country, country_name=name
+        ),
+        get_cc_license(
+            version="2.5", perks=["by", "nc"], country=country, country_name=name
+        ),
+        get_cc_license(
+            version="2.5", perks=["by", "nc", "sa"], country=country, country_name=name
+        ),
+        get_cc_license(
+            version="2.5", perks=["by", "nc", "nd"], country=country, country_name=name
+        ),
+        get_cc_license(
+            version="2.5", perks=["by", "nd"], country=country, country_name=name
+        ),
+    ]
+
+LICENSES = sorted(LICENSES, key=lambda l: l["code"])
+LICENSES_BY_ID = {l["code"]: l for l in LICENSES}
diff --git a/api/funkwhale_api/music/management/commands/check_licenses.py b/api/funkwhale_api/music/management/commands/check_licenses.py
new file mode 100644
index 0000000000..b0b398acfc
--- /dev/null
+++ b/api/funkwhale_api/music/management/commands/check_licenses.py
@@ -0,0 +1,34 @@
+from django.core.management.base import BaseCommand, CommandError
+import requests.exceptions
+
+from funkwhale_api.music import licenses
+
+
+class Command(BaseCommand):
+    help = "Check that specified licenses URLs are actually reachable"
+
+    def handle(self, *args, **options):
+        errored = []
+        objs = licenses.LICENSES
+        total = len(objs)
+        for i, data in enumerate(objs):
+            self.stderr.write("{}/{} Checking {}...".format(i + 1, total, data["code"]))
+            response = requests.get(data["url"])
+            try:
+                response.raise_for_status()
+            except requests.exceptions.RequestException:
+                self.stderr.write("!!! Error while fetching {}!".format(data["code"]))
+                errored.append((data, response))
+
+        if errored:
+            self.stdout.write("{} licenses were not reachable!".format(len(errored)))
+            for row, response in errored:
+                self.stdout.write(
+                    "- {}: error {} at url {}".format(
+                        row["code"], response.status_code, row["url"]
+                    )
+                )
+
+            raise CommandError()
+        else:
+            self.stdout.write("All licenses are valid and reachable :)")
diff --git a/api/funkwhale_api/music/metadata.py b/api/funkwhale_api/music/metadata.py
index 112782e413..52315d905e 100644
--- a/api/funkwhale_api/music/metadata.py
+++ b/api/funkwhale_api/music/metadata.py
@@ -25,10 +25,18 @@ def get_id3_tag(f, k):
     if k == "pictures":
         return f.tags.getall("APIC")
     # First we try to grab the standard key
-    try:
-        return f.tags[k].text[0]
-    except KeyError:
-        pass
+    possible_attributes = [("text", True), ("url", False)]
+    for attr, select_first in possible_attributes:
+        try:
+            v = getattr(f.tags[k], attr)
+            if select_first:
+                v = v[0]
+            return v
+        except KeyError:
+            break
+        except AttributeError:
+            continue
+
     # then we fallback on parsing non standard tags
     all_tags = f.tags.getall("TXXX")
     try:
@@ -162,6 +170,8 @@ CONF = {
             "musicbrainz_artistid": {},
             "musicbrainz_albumartistid": {},
             "musicbrainz_recordingid": {"field": "musicbrainz_trackid"},
+            "license": {},
+            "copyright": {},
         },
     },
     "OggVorbis": {
@@ -183,6 +193,8 @@ CONF = {
             "musicbrainz_artistid": {},
             "musicbrainz_albumartistid": {},
             "musicbrainz_recordingid": {"field": "musicbrainz_trackid"},
+            "license": {},
+            "copyright": {},
         },
     },
     "OggTheora": {
@@ -201,6 +213,9 @@ CONF = {
             "musicbrainz_artistid": {"field": "MusicBrainz Artist Id"},
             "musicbrainz_albumartistid": {"field": "MusicBrainz Album Artist Id"},
             "musicbrainz_recordingid": {"field": "MusicBrainz Track Id"},
+            # somehow, I cannot successfully create an ogg theora file
+            # with the proper license field
+            # "license": {"field": "license"},
         },
     },
     "MP3": {
@@ -221,6 +236,8 @@ CONF = {
                 "getter": get_mp3_recording_id,
             },
             "pictures": {},
+            "license": {"field": "WCOP"},
+            "copyright": {"field": "TCOP"},
         },
     },
     "FLAC": {
@@ -242,6 +259,8 @@ CONF = {
             "musicbrainz_recordingid": {"field": "musicbrainz_trackid"},
             "test": {},
             "pictures": {},
+            "license": {},
+            "copyright": {},
         },
     },
 }
@@ -257,6 +276,8 @@ ALL_FIELDS = [
     "musicbrainz_artistid",
     "musicbrainz_albumartistid",
     "musicbrainz_recordingid",
+    "license",
+    "copyright",
 ]
 
 
diff --git a/api/funkwhale_api/music/migrations/0034_auto_20181127_0325.py b/api/funkwhale_api/music/migrations/0034_auto_20181127_0325.py
new file mode 100644
index 0000000000..a5f6dab31e
--- /dev/null
+++ b/api/funkwhale_api/music/migrations/0034_auto_20181127_0325.py
@@ -0,0 +1,36 @@
+# Generated by Django 2.0.9 on 2018-11-27 03:25
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('music', '0033_auto_20181023_1837'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='License',
+            fields=[
+                ('code', models.CharField(max_length=100, primary_key=True, serialize=False)),
+                ('url', models.URLField(max_length=500)),
+                ('copyleft', models.BooleanField()),
+                ('commercial', models.BooleanField()),
+                ('attribution', models.BooleanField()),
+                ('derivative', models.BooleanField()),
+                ('redistribute', models.BooleanField()),
+            ],
+        ),
+        migrations.AlterField(
+            model_name='uploadversion',
+            name='mimetype',
+            field=models.CharField(choices=[('audio/ogg', 'ogg'), ('audio/mpeg', 'mp3'), ('audio/x-flac', 'flac'), ('audio/flac', 'flac')], max_length=50),
+        ),
+        migrations.AddField(
+            model_name='track',
+            name='license',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='tracks', to='music.License'),
+        ),
+    ]
diff --git a/api/funkwhale_api/music/migrations/0035_auto_20181203_1515.py b/api/funkwhale_api/music/migrations/0035_auto_20181203_1515.py
new file mode 100644
index 0000000000..17314d53b8
--- /dev/null
+++ b/api/funkwhale_api/music/migrations/0035_auto_20181203_1515.py
@@ -0,0 +1,24 @@
+# Generated by Django 2.0.9 on 2018-12-03 15:15
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('music', '0034_auto_20181127_0325'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='track',
+            name='copyright',
+            field=models.CharField(blank=True, max_length=500, null=True),
+        ),
+        migrations.AlterField(
+            model_name='track',
+            name='license',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='tracks', to='music.License'),
+        ),
+    ]
diff --git a/api/funkwhale_api/music/models.py b/api/funkwhale_api/music/models.py
index d2bf7dd883..a8f4530b4b 100644
--- a/api/funkwhale_api/music/models.py
+++ b/api/funkwhale_api/music/models.py
@@ -113,6 +113,33 @@ class APIModelMixin(models.Model):
         return super().save(**kwargs)
 
 
+class License(models.Model):
+    code = models.CharField(primary_key=True, max_length=100)
+    url = models.URLField(max_length=500)
+
+    # if true, license is a copyleft license, meaning that derivative
+    # work must be shared under the same license
+    copyleft = models.BooleanField()
+    # if true, commercial use of the work is allowed
+    commercial = models.BooleanField()
+    # if true, attribution to the original author is required when reusing
+    # the work
+    attribution = models.BooleanField()
+    # if true, derivative work are allowed
+    derivative = models.BooleanField()
+    # if true, redistribution of the wor is allowed
+    redistribute = models.BooleanField()
+
+    @property
+    def conf(self):
+        from . import licenses
+
+        for row in licenses.LICENSES:
+            if self.code == row["code"]:
+                return row
+        logger.warning("%s do not match any registered license", self.code)
+
+
 class ArtistQuerySet(models.QuerySet):
     def with_albums_count(self):
         return self.annotate(_albums_count=models.Count("albums"))
@@ -430,6 +457,14 @@ class Track(APIModelMixin):
     work = models.ForeignKey(
         Work, related_name="tracks", null=True, blank=True, on_delete=models.CASCADE
     )
+    license = models.ForeignKey(
+        License,
+        null=True,
+        blank=True,
+        on_delete=models.DO_NOTHING,
+        related_name="tracks",
+    )
+    copyright = models.CharField(max_length=500, null=True, blank=True)
     federation_namespace = "tracks"
     musicbrainz_model = "recording"
     api = musicbrainz.api.recordings
@@ -547,6 +582,17 @@ class Track(APIModelMixin):
     def listen_url(self):
         return reverse("api:v1:listen-detail", kwargs={"uuid": self.uuid})
 
+    @property
+    def local_license(self):
+        """
+        Since license primary keys are strings, and we can get the data
+        from our hardcoded licenses.LICENSES list, there is no need
+        for extra SQL joins / queries.
+        """
+        from . import licenses
+
+        return licenses.LICENSES_BY_ID.get(self.license_id)
+
 
 class UploadQuerySet(models.QuerySet):
     def playable_by(self, actor, include=True):
diff --git a/api/funkwhale_api/music/serializers.py b/api/funkwhale_api/music/serializers.py
index 12f41f2d7a..228f1c2313 100644
--- a/api/funkwhale_api/music/serializers.py
+++ b/api/funkwhale_api/music/serializers.py
@@ -14,6 +14,21 @@ from . import filters, models, tasks
 cover_field = VersatileImageFieldSerializer(allow_null=True, sizes="square")
 
 
+class LicenseSerializer(serializers.Serializer):
+    id = serializers.SerializerMethodField()
+    url = serializers.URLField()
+    code = serializers.CharField()
+    name = serializers.CharField()
+    redistribute = serializers.BooleanField()
+    derivative = serializers.BooleanField()
+    commercial = serializers.BooleanField()
+    attribution = serializers.BooleanField()
+    copyleft = serializers.BooleanField()
+
+    def get_id(self, obj):
+        return obj["identifiers"][0]
+
+
 class ArtistAlbumSerializer(serializers.ModelSerializer):
     tracks_count = serializers.SerializerMethodField()
     cover = cover_field
@@ -76,6 +91,8 @@ class AlbumTrackSerializer(serializers.ModelSerializer):
             "uploads",
             "listen_url",
             "duration",
+            "copyright",
+            "license",
         )
 
     def get_uploads(self, obj):
@@ -179,6 +196,8 @@ class TrackSerializer(serializers.ModelSerializer):
             "lyrics",
             "uploads",
             "listen_url",
+            "copyright",
+            "license",
         )
 
     def get_lyrics(self, obj):
diff --git a/api/funkwhale_api/music/tasks.py b/api/funkwhale_api/music/tasks.py
index 7008b12fc5..16fe0573c5 100644
--- a/api/funkwhale_api/music/tasks.py
+++ b/api/funkwhale_api/music/tasks.py
@@ -16,6 +16,7 @@ from funkwhale_api.federation import routes
 from funkwhale_api.federation import library as lb
 from funkwhale_api.taskapp import celery
 
+from . import licenses
 from . import lyrics as lyrics_utils
 from . import models
 from . import metadata
@@ -276,6 +277,8 @@ def federation_audio_track_to_metadata(payload):
         "artist": payload["artists"][0]["name"],
         "album_artist": payload["album"]["artists"][0]["name"],
         "date": payload["album"].get("released"),
+        "license": payload.get("license"),
+        "copyright": payload.get("copyright"),
         # musicbrainz
         "musicbrainz_recordingid": str(musicbrainz_recordingid)
         if musicbrainz_recordingid
@@ -496,6 +499,8 @@ def get_track_from_import_metadata(data):
         "position": track_number,
         "fid": track_fid,
         "from_activity_id": from_activity_id,
+        "license": licenses.match(data.get("license"), data.get("copyright")),
+        "copyright": data.get("copyright"),
     }
     if data.get("fdate"):
         defaults["creation_date"] = data.get("fdate")
diff --git a/api/funkwhale_api/music/views.py b/api/funkwhale_api/music/views.py
index 744fd43dd8..022b60f050 100644
--- a/api/funkwhale_api/music/views.py
+++ b/api/funkwhale_api/music/views.py
@@ -22,7 +22,7 @@ from funkwhale_api.federation.authentication import SignatureAuthentication
 from funkwhale_api.federation import api_serializers as federation_api_serializers
 from funkwhale_api.federation import routes
 
-from . import filters, models, serializers, tasks, utils
+from . import filters, licenses, models, serializers, tasks, utils
 
 logger = logging.getLogger(__name__)
 
@@ -481,3 +481,28 @@ class Search(views.APIView):
         )
 
         return qs.filter(query_obj)[: self.max_results]
+
+
+class LicenseViewSet(viewsets.ReadOnlyModelViewSet):
+    permission_classes = [common_permissions.ConditionalAuthentication]
+    serializer_class = serializers.LicenseSerializer
+    queryset = models.License.objects.all().order_by("code")
+    lookup_value_regex = ".*"
+
+    def get_queryset(self):
+        # ensure our licenses are up to date in DB
+        licenses.load(licenses.LICENSES)
+        return super().get_queryset()
+
+    def get_serializer(self, *args, **kwargs):
+        if len(args) == 0:
+            return super().get_serializer(*args, **kwargs)
+
+        # our serializer works with license dict, not License instances
+        # so we pass those instead
+        instance_or_qs = args[0]
+        try:
+            first_arg = instance_or_qs.conf
+        except AttributeError:
+            first_arg = [i.conf for i in instance_or_qs if i.conf]
+        return super().get_serializer(*((first_arg,) + args[1:]), **kwargs)
diff --git a/api/requirements/test.txt b/api/requirements/test.txt
index 20a14abea1..5682140034 100644
--- a/api/requirements/test.txt
+++ b/api/requirements/test.txt
@@ -12,3 +12,4 @@ pytest-xdist
 pytest-cov
 pytest-env
 requests-mock
+pytest-profiling
diff --git a/api/tests/federation/test_serializers.py b/api/tests/federation/test_serializers.py
index d3441df5da..c313d96a2d 100644
--- a/api/tests/federation/test_serializers.py
+++ b/api/tests/federation/test_serializers.py
@@ -632,7 +632,7 @@ def test_activity_pub_album_serializer_to_ap(factories):
 
 
 def test_activity_pub_track_serializer_to_ap(factories):
-    track = factories["music.Track"]()
+    track = factories["music.Track"](license="cc-by-4.0", copyright="test")
     expected = {
         "@context": serializers.AP_CONTEXT,
         "published": track.creation_date.isoformat(),
@@ -641,6 +641,8 @@ def test_activity_pub_track_serializer_to_ap(factories):
         "id": track.fid,
         "name": track.title,
         "position": track.position,
+        "license": track.license.conf["identifiers"][0],
+        "copyright": "test",
         "artists": [
             serializers.ArtistSerializer(
                 track.artist, context={"include_ap_context": False}
diff --git a/api/tests/music/licenses.json b/api/tests/music/licenses.json
new file mode 100644
index 0000000000..5a2ecd1323
--- /dev/null
+++ b/api/tests/music/licenses.json
@@ -0,0 +1,4539 @@
+[
+    {
+        "name": "Creative commons - Attribution 1.0",
+        "code": "cc-by-1.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/1.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/1.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.0",
+        "code": "cc-by-2.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5",
+        "code": "cc-by-2.5",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Argentina",
+        "code": "cc-by-2.5-ar",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/ar/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/ar/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Bulgaria",
+        "code": "cc-by-2.5-bg",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/bg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/bg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Canada",
+        "code": "cc-by-2.5-ca",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/ca/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/ca/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Colombia",
+        "code": "cc-by-2.5-co",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/co/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/co/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Denmark",
+        "code": "cc-by-2.5-dk",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/dk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/dk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Hungary",
+        "code": "cc-by-2.5-hu",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/hu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/hu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Israel",
+        "code": "cc-by-2.5-il",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/il/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/il/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 India",
+        "code": "cc-by-2.5-in",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/in/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/in/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Macedonia",
+        "code": "cc-by-2.5-mk",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/mk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/mk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Malta",
+        "code": "cc-by-2.5-mt",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/mt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/mt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Mexico",
+        "code": "cc-by-2.5-mx",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/mx/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/mx/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Malaysia",
+        "code": "cc-by-2.5-my",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/my/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/my/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Peru",
+        "code": "cc-by-2.5-pe",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/pe/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/pe/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 UK: Scotland",
+        "code": "cc-by-2.5-scotland",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/scotland/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/scotland/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0",
+        "code": "cc-by-3.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Austria",
+        "code": "cc-by-3.0-at",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/at/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/at/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Australia",
+        "code": "cc-by-3.0-au",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/au/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/au/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Brazil",
+        "code": "cc-by-3.0-br",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/br/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/br/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Switzerland",
+        "code": "cc-by-3.0-ch",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/ch/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/ch/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Chile",
+        "code": "cc-by-3.0-cl",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/cl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/cl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 China Mainland",
+        "code": "cc-by-3.0-cn",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/cn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/cn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Costa Rica",
+        "code": "cc-by-3.0-cr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/cr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/cr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Czech Republic",
+        "code": "cc-by-3.0-cz",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/cz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/cz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Germany",
+        "code": "cc-by-3.0-de",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/de/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/de/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Ecuador",
+        "code": "cc-by-3.0-ec",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/ec/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/ec/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Estonia",
+        "code": "cc-by-3.0-ee",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/ee/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/ee/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Egypt",
+        "code": "cc-by-3.0-eg",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/eg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/eg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Spain",
+        "code": "cc-by-3.0-es",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/es/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/es/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 France",
+        "code": "cc-by-3.0-fr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/fr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/fr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Greece",
+        "code": "cc-by-3.0-gr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/gr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/gr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Guatemala",
+        "code": "cc-by-3.0-gt",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/gt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/gt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Hong Kong",
+        "code": "cc-by-3.0-hk",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/hk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/hk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Croatia",
+        "code": "cc-by-3.0-hr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/hr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/hr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Ireland",
+        "code": "cc-by-3.0-ie",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/ie/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/ie/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 IGO",
+        "code": "cc-by-3.0-igo",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/igo/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/igo/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Italy",
+        "code": "cc-by-3.0-it",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/it/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/it/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Luxembourg",
+        "code": "cc-by-3.0-lu",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/lu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/lu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Netherlands",
+        "code": "cc-by-3.0-nl",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/nl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/nl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Norway",
+        "code": "cc-by-3.0-no",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/no/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/no/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 New Zealand",
+        "code": "cc-by-3.0-nz",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/nz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/nz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Philippines",
+        "code": "cc-by-3.0-ph",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/ph/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/ph/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Poland",
+        "code": "cc-by-3.0-pl",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/pl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/pl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Puerto Rico",
+        "code": "cc-by-3.0-pr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/pr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/pr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Portugal",
+        "code": "cc-by-3.0-pt",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/pt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/pt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Romania",
+        "code": "cc-by-3.0-ro",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/ro/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/ro/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Serbia",
+        "code": "cc-by-3.0-rs",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/rs/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/rs/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Singapore",
+        "code": "cc-by-3.0-sg",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/sg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/sg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Thailand",
+        "code": "cc-by-3.0-th",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/th/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/th/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Taiwan",
+        "code": "cc-by-3.0-tw",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/tw/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/tw/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Uganda",
+        "code": "cc-by-3.0-ug",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/ug/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/ug/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 United States",
+        "code": "cc-by-3.0-us",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/us/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/us/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Venezuela",
+        "code": "cc-by-3.0-ve",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/ve/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/ve/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Vietnam",
+        "code": "cc-by-3.0-vn",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/vn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/vn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 South Africa",
+        "code": "cc-by-3.0-za",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/za/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/za/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 4.0",
+        "code": "cc-by-4.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/4.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/4.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 1.0",
+        "code": "cc-by-nc-1.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/1.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/1.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.0",
+        "code": "cc-by-nc-2.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5",
+        "code": "cc-by-nc-2.5",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Argentina",
+        "code": "cc-by-nc-2.5-ar",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/ar/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/ar/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Bulgaria",
+        "code": "cc-by-nc-2.5-bg",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/bg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/bg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Canada",
+        "code": "cc-by-nc-2.5-ca",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/ca/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/ca/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Colombia",
+        "code": "cc-by-nc-2.5-co",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/co/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/co/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Denmark",
+        "code": "cc-by-nc-2.5-dk",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/dk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/dk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Hungary",
+        "code": "cc-by-nc-2.5-hu",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/hu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/hu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Israel",
+        "code": "cc-by-nc-2.5-il",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/il/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/il/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 India",
+        "code": "cc-by-nc-2.5-in",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/in/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/in/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Macedonia",
+        "code": "cc-by-nc-2.5-mk",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/mk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/mk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Malta",
+        "code": "cc-by-nc-2.5-mt",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/mt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/mt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Mexico",
+        "code": "cc-by-nc-2.5-mx",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/mx/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/mx/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Malaysia",
+        "code": "cc-by-nc-2.5-my",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/my/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/my/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Peru",
+        "code": "cc-by-nc-2.5-pe",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/pe/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/pe/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 UK: Scotland",
+        "code": "cc-by-nc-2.5-scotland",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/scotland/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/scotland/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0",
+        "code": "cc-by-nc-3.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Austria",
+        "code": "cc-by-nc-3.0-at",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/at/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/at/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Australia",
+        "code": "cc-by-nc-3.0-au",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/au/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/au/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Brazil",
+        "code": "cc-by-nc-3.0-br",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/br/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/br/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Switzerland",
+        "code": "cc-by-nc-3.0-ch",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/ch/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/ch/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Chile",
+        "code": "cc-by-nc-3.0-cl",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/cl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/cl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 China Mainland",
+        "code": "cc-by-nc-3.0-cn",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/cn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/cn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Costa Rica",
+        "code": "cc-by-nc-3.0-cr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/cr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/cr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Czech Republic",
+        "code": "cc-by-nc-3.0-cz",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/cz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/cz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Germany",
+        "code": "cc-by-nc-3.0-de",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/de/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/de/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Ecuador",
+        "code": "cc-by-nc-3.0-ec",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/ec/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/ec/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Estonia",
+        "code": "cc-by-nc-3.0-ee",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/ee/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/ee/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Egypt",
+        "code": "cc-by-nc-3.0-eg",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/eg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/eg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Spain",
+        "code": "cc-by-nc-3.0-es",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/es/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/es/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 France",
+        "code": "cc-by-nc-3.0-fr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/fr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/fr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Greece",
+        "code": "cc-by-nc-3.0-gr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/gr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/gr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Guatemala",
+        "code": "cc-by-nc-3.0-gt",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/gt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/gt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Hong Kong",
+        "code": "cc-by-nc-3.0-hk",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/hk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/hk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Croatia",
+        "code": "cc-by-nc-3.0-hr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/hr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/hr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Ireland",
+        "code": "cc-by-nc-3.0-ie",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/ie/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/ie/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 IGO",
+        "code": "cc-by-nc-3.0-igo",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/igo/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/igo/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Italy",
+        "code": "cc-by-nc-3.0-it",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/it/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/it/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Luxembourg",
+        "code": "cc-by-nc-3.0-lu",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/lu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/lu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Netherlands",
+        "code": "cc-by-nc-3.0-nl",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/nl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/nl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Norway",
+        "code": "cc-by-nc-3.0-no",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/no/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/no/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 New Zealand",
+        "code": "cc-by-nc-3.0-nz",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/nz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/nz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Philippines",
+        "code": "cc-by-nc-3.0-ph",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/ph/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/ph/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Poland",
+        "code": "cc-by-nc-3.0-pl",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/pl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/pl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Puerto Rico",
+        "code": "cc-by-nc-3.0-pr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/pr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/pr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Portugal",
+        "code": "cc-by-nc-3.0-pt",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/pt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/pt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Romania",
+        "code": "cc-by-nc-3.0-ro",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/ro/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/ro/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Serbia",
+        "code": "cc-by-nc-3.0-rs",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/rs/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/rs/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Singapore",
+        "code": "cc-by-nc-3.0-sg",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/sg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/sg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Thailand",
+        "code": "cc-by-nc-3.0-th",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/th/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/th/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Taiwan",
+        "code": "cc-by-nc-3.0-tw",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/tw/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/tw/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Uganda",
+        "code": "cc-by-nc-3.0-ug",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/ug/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/ug/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 United States",
+        "code": "cc-by-nc-3.0-us",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/us/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/us/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Venezuela",
+        "code": "cc-by-nc-3.0-ve",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/ve/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/ve/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Vietnam",
+        "code": "cc-by-nc-3.0-vn",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/vn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/vn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 South Africa",
+        "code": "cc-by-nc-3.0-za",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/za/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/za/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 4.0",
+        "code": "cc-by-nc-4.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/4.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/4.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 1.0",
+        "code": "cc-by-nc-nd-1.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/1.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/1.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.0",
+        "code": "cc-by-nc-nd-2.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5",
+        "code": "cc-by-nc-nd-2.5",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Argentina",
+        "code": "cc-by-nc-nd-2.5-ar",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/ar/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/ar/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Bulgaria",
+        "code": "cc-by-nc-nd-2.5-bg",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/bg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/bg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Canada",
+        "code": "cc-by-nc-nd-2.5-ca",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/ca/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/ca/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Colombia",
+        "code": "cc-by-nc-nd-2.5-co",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/co/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/co/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Denmark",
+        "code": "cc-by-nc-nd-2.5-dk",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/dk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/dk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Hungary",
+        "code": "cc-by-nc-nd-2.5-hu",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/hu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/hu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Israel",
+        "code": "cc-by-nc-nd-2.5-il",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/il/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/il/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 India",
+        "code": "cc-by-nc-nd-2.5-in",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/in/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/in/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Macedonia",
+        "code": "cc-by-nc-nd-2.5-mk",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/mk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/mk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Malta",
+        "code": "cc-by-nc-nd-2.5-mt",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/mt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/mt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Mexico",
+        "code": "cc-by-nc-nd-2.5-mx",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/mx/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/mx/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Malaysia",
+        "code": "cc-by-nc-nd-2.5-my",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/my/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/my/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Peru",
+        "code": "cc-by-nc-nd-2.5-pe",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/pe/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/pe/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 UK: Scotland",
+        "code": "cc-by-nc-nd-2.5-scotland",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/scotland/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/scotland/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0",
+        "code": "cc-by-nc-nd-3.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Austria",
+        "code": "cc-by-nc-nd-3.0-at",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/at/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/at/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Australia",
+        "code": "cc-by-nc-nd-3.0-au",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/au/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/au/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Brazil",
+        "code": "cc-by-nc-nd-3.0-br",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/br/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/br/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Switzerland",
+        "code": "cc-by-nc-nd-3.0-ch",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ch/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/ch/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Chile",
+        "code": "cc-by-nc-nd-3.0-cl",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/cl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/cl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 China Mainland",
+        "code": "cc-by-nc-nd-3.0-cn",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/cn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/cn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Costa Rica",
+        "code": "cc-by-nc-nd-3.0-cr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/cr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/cr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Czech Republic",
+        "code": "cc-by-nc-nd-3.0-cz",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/cz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/cz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Germany",
+        "code": "cc-by-nc-nd-3.0-de",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/de/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/de/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Ecuador",
+        "code": "cc-by-nc-nd-3.0-ec",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ec/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/ec/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Estonia",
+        "code": "cc-by-nc-nd-3.0-ee",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ee/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/ee/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Egypt",
+        "code": "cc-by-nc-nd-3.0-eg",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/eg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/eg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Spain",
+        "code": "cc-by-nc-nd-3.0-es",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/es/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/es/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 France",
+        "code": "cc-by-nc-nd-3.0-fr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/fr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/fr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Greece",
+        "code": "cc-by-nc-nd-3.0-gr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/gr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/gr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Guatemala",
+        "code": "cc-by-nc-nd-3.0-gt",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/gt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/gt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Hong Kong",
+        "code": "cc-by-nc-nd-3.0-hk",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/hk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/hk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Croatia",
+        "code": "cc-by-nc-nd-3.0-hr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/hr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/hr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Ireland",
+        "code": "cc-by-nc-nd-3.0-ie",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ie/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/ie/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 IGO",
+        "code": "cc-by-nc-nd-3.0-igo",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/igo/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/igo/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Italy",
+        "code": "cc-by-nc-nd-3.0-it",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/it/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/it/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Luxembourg",
+        "code": "cc-by-nc-nd-3.0-lu",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/lu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/lu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Netherlands",
+        "code": "cc-by-nc-nd-3.0-nl",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/nl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/nl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Norway",
+        "code": "cc-by-nc-nd-3.0-no",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/no/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/no/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 New Zealand",
+        "code": "cc-by-nc-nd-3.0-nz",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/nz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/nz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Philippines",
+        "code": "cc-by-nc-nd-3.0-ph",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ph/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/ph/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Poland",
+        "code": "cc-by-nc-nd-3.0-pl",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/pl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/pl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Puerto Rico",
+        "code": "cc-by-nc-nd-3.0-pr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/pr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/pr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Portugal",
+        "code": "cc-by-nc-nd-3.0-pt",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/pt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/pt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Romania",
+        "code": "cc-by-nc-nd-3.0-ro",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ro/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/ro/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Serbia",
+        "code": "cc-by-nc-nd-3.0-rs",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/rs/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/rs/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Singapore",
+        "code": "cc-by-nc-nd-3.0-sg",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/sg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/sg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Thailand",
+        "code": "cc-by-nc-nd-3.0-th",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/th/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/th/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Taiwan",
+        "code": "cc-by-nc-nd-3.0-tw",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/tw/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/tw/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Uganda",
+        "code": "cc-by-nc-nd-3.0-ug",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ug/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/ug/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 United States",
+        "code": "cc-by-nc-nd-3.0-us",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/us/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/us/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Venezuela",
+        "code": "cc-by-nc-nd-3.0-ve",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ve/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/ve/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Vietnam",
+        "code": "cc-by-nc-nd-3.0-vn",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/vn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/vn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 South Africa",
+        "code": "cc-by-nc-nd-3.0-za",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/za/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/za/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 4.0",
+        "code": "cc-by-nc-nd-4.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/4.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/4.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 1.0",
+        "code": "cc-by-nc-sa-1.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/1.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/1.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.0",
+        "code": "cc-by-nc-sa-2.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5",
+        "code": "cc-by-nc-sa-2.5",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Argentina",
+        "code": "cc-by-nc-sa-2.5-ar",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/ar/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/ar/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Bulgaria",
+        "code": "cc-by-nc-sa-2.5-bg",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/bg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/bg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Canada",
+        "code": "cc-by-nc-sa-2.5-ca",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/ca/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/ca/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Colombia",
+        "code": "cc-by-nc-sa-2.5-co",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/co/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/co/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Denmark",
+        "code": "cc-by-nc-sa-2.5-dk",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/dk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/dk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Hungary",
+        "code": "cc-by-nc-sa-2.5-hu",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/hu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/hu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Israel",
+        "code": "cc-by-nc-sa-2.5-il",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/il/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/il/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 India",
+        "code": "cc-by-nc-sa-2.5-in",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/in/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/in/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Macedonia",
+        "code": "cc-by-nc-sa-2.5-mk",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/mk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/mk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Malta",
+        "code": "cc-by-nc-sa-2.5-mt",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/mt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/mt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Mexico",
+        "code": "cc-by-nc-sa-2.5-mx",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/mx/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/mx/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Malaysia",
+        "code": "cc-by-nc-sa-2.5-my",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/my/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/my/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Peru",
+        "code": "cc-by-nc-sa-2.5-pe",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/pe/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/pe/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 UK: Scotland",
+        "code": "cc-by-nc-sa-2.5-scotland",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/scotland/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/scotland/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0",
+        "code": "cc-by-nc-sa-3.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Austria",
+        "code": "cc-by-nc-sa-3.0-at",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/at/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/at/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Australia",
+        "code": "cc-by-nc-sa-3.0-au",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/au/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/au/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Brazil",
+        "code": "cc-by-nc-sa-3.0-br",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/br/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/br/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Switzerland",
+        "code": "cc-by-nc-sa-3.0-ch",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ch/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/ch/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Chile",
+        "code": "cc-by-nc-sa-3.0-cl",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/cl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/cl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 China Mainland",
+        "code": "cc-by-nc-sa-3.0-cn",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/cn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/cn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Costa Rica",
+        "code": "cc-by-nc-sa-3.0-cr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/cr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/cr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Czech Republic",
+        "code": "cc-by-nc-sa-3.0-cz",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/cz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/cz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Germany",
+        "code": "cc-by-nc-sa-3.0-de",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/de/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/de/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Ecuador",
+        "code": "cc-by-nc-sa-3.0-ec",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ec/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/ec/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Estonia",
+        "code": "cc-by-nc-sa-3.0-ee",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ee/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/ee/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Egypt",
+        "code": "cc-by-nc-sa-3.0-eg",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/eg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/eg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Spain",
+        "code": "cc-by-nc-sa-3.0-es",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/es/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/es/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 France",
+        "code": "cc-by-nc-sa-3.0-fr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/fr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/fr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Greece",
+        "code": "cc-by-nc-sa-3.0-gr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/gr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/gr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Guatemala",
+        "code": "cc-by-nc-sa-3.0-gt",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/gt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/gt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Hong Kong",
+        "code": "cc-by-nc-sa-3.0-hk",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/hk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/hk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Croatia",
+        "code": "cc-by-nc-sa-3.0-hr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/hr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/hr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Ireland",
+        "code": "cc-by-nc-sa-3.0-ie",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ie/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/ie/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 IGO",
+        "code": "cc-by-nc-sa-3.0-igo",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/igo/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/igo/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Italy",
+        "code": "cc-by-nc-sa-3.0-it",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/it/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/it/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Luxembourg",
+        "code": "cc-by-nc-sa-3.0-lu",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/lu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/lu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Netherlands",
+        "code": "cc-by-nc-sa-3.0-nl",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/nl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/nl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Norway",
+        "code": "cc-by-nc-sa-3.0-no",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/no/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/no/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 New Zealand",
+        "code": "cc-by-nc-sa-3.0-nz",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/nz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/nz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Philippines",
+        "code": "cc-by-nc-sa-3.0-ph",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ph/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/ph/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Poland",
+        "code": "cc-by-nc-sa-3.0-pl",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/pl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/pl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Puerto Rico",
+        "code": "cc-by-nc-sa-3.0-pr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/pr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/pr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Portugal",
+        "code": "cc-by-nc-sa-3.0-pt",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/pt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/pt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Romania",
+        "code": "cc-by-nc-sa-3.0-ro",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ro/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/ro/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Serbia",
+        "code": "cc-by-nc-sa-3.0-rs",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/rs/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/rs/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Singapore",
+        "code": "cc-by-nc-sa-3.0-sg",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/sg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/sg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Thailand",
+        "code": "cc-by-nc-sa-3.0-th",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/th/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/th/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Taiwan",
+        "code": "cc-by-nc-sa-3.0-tw",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/tw/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/tw/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Uganda",
+        "code": "cc-by-nc-sa-3.0-ug",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ug/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/ug/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 United States",
+        "code": "cc-by-nc-sa-3.0-us",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/us/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/us/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Venezuela",
+        "code": "cc-by-nc-sa-3.0-ve",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ve/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/ve/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Vietnam",
+        "code": "cc-by-nc-sa-3.0-vn",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/vn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/vn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 South Africa",
+        "code": "cc-by-nc-sa-3.0-za",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/za/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/za/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 4.0",
+        "code": "cc-by-nc-sa-4.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/4.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/4.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 1.0",
+        "code": "cc-by-nd-1.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/1.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/1.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.0",
+        "code": "cc-by-nd-2.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5",
+        "code": "cc-by-nd-2.5",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Argentina",
+        "code": "cc-by-nd-2.5-ar",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/ar/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/ar/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Bulgaria",
+        "code": "cc-by-nd-2.5-bg",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/bg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/bg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Canada",
+        "code": "cc-by-nd-2.5-ca",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/ca/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/ca/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Colombia",
+        "code": "cc-by-nd-2.5-co",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/co/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/co/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Denmark",
+        "code": "cc-by-nd-2.5-dk",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/dk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/dk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Hungary",
+        "code": "cc-by-nd-2.5-hu",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/hu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/hu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Israel",
+        "code": "cc-by-nd-2.5-il",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/il/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/il/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 India",
+        "code": "cc-by-nd-2.5-in",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/in/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/in/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Macedonia",
+        "code": "cc-by-nd-2.5-mk",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/mk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/mk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Malta",
+        "code": "cc-by-nd-2.5-mt",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/mt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/mt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Mexico",
+        "code": "cc-by-nd-2.5-mx",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/mx/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/mx/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Malaysia",
+        "code": "cc-by-nd-2.5-my",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/my/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/my/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Peru",
+        "code": "cc-by-nd-2.5-pe",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/pe/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/pe/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 UK: Scotland",
+        "code": "cc-by-nd-2.5-scotland",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/scotland/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/scotland/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0",
+        "code": "cc-by-nd-3.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Austria",
+        "code": "cc-by-nd-3.0-at",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/at/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/at/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Australia",
+        "code": "cc-by-nd-3.0-au",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/au/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/au/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Brazil",
+        "code": "cc-by-nd-3.0-br",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/br/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/br/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Switzerland",
+        "code": "cc-by-nd-3.0-ch",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/ch/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/ch/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Chile",
+        "code": "cc-by-nd-3.0-cl",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/cl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/cl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 China Mainland",
+        "code": "cc-by-nd-3.0-cn",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/cn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/cn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Costa Rica",
+        "code": "cc-by-nd-3.0-cr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/cr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/cr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Czech Republic",
+        "code": "cc-by-nd-3.0-cz",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/cz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/cz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Germany",
+        "code": "cc-by-nd-3.0-de",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/de/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/de/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Ecuador",
+        "code": "cc-by-nd-3.0-ec",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/ec/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/ec/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Estonia",
+        "code": "cc-by-nd-3.0-ee",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/ee/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/ee/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Egypt",
+        "code": "cc-by-nd-3.0-eg",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/eg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/eg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Spain",
+        "code": "cc-by-nd-3.0-es",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/es/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/es/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 France",
+        "code": "cc-by-nd-3.0-fr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/fr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/fr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Greece",
+        "code": "cc-by-nd-3.0-gr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/gr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/gr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Guatemala",
+        "code": "cc-by-nd-3.0-gt",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/gt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/gt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Hong Kong",
+        "code": "cc-by-nd-3.0-hk",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/hk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/hk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Croatia",
+        "code": "cc-by-nd-3.0-hr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/hr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/hr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Ireland",
+        "code": "cc-by-nd-3.0-ie",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/ie/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/ie/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 IGO",
+        "code": "cc-by-nd-3.0-igo",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/igo/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/igo/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Italy",
+        "code": "cc-by-nd-3.0-it",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/it/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/it/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Luxembourg",
+        "code": "cc-by-nd-3.0-lu",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/lu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/lu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Netherlands",
+        "code": "cc-by-nd-3.0-nl",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/nl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/nl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Norway",
+        "code": "cc-by-nd-3.0-no",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/no/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/no/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 New Zealand",
+        "code": "cc-by-nd-3.0-nz",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/nz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/nz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Philippines",
+        "code": "cc-by-nd-3.0-ph",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/ph/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/ph/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Poland",
+        "code": "cc-by-nd-3.0-pl",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/pl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/pl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Puerto Rico",
+        "code": "cc-by-nd-3.0-pr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/pr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/pr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Portugal",
+        "code": "cc-by-nd-3.0-pt",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/pt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/pt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Romania",
+        "code": "cc-by-nd-3.0-ro",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/ro/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/ro/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Serbia",
+        "code": "cc-by-nd-3.0-rs",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/rs/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/rs/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Singapore",
+        "code": "cc-by-nd-3.0-sg",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/sg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/sg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Thailand",
+        "code": "cc-by-nd-3.0-th",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/th/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/th/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Taiwan",
+        "code": "cc-by-nd-3.0-tw",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/tw/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/tw/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Uganda",
+        "code": "cc-by-nd-3.0-ug",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/ug/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/ug/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 United States",
+        "code": "cc-by-nd-3.0-us",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/us/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/us/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Venezuela",
+        "code": "cc-by-nd-3.0-ve",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/ve/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/ve/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Vietnam",
+        "code": "cc-by-nd-3.0-vn",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/vn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/vn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 South Africa",
+        "code": "cc-by-nd-3.0-za",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/za/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/za/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 4.0",
+        "code": "cc-by-nd-4.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/4.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/4.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 1.0",
+        "code": "cc-by-sa-1.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/1.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/1.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.0",
+        "code": "cc-by-sa-2.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5",
+        "code": "cc-by-sa-2.5",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Argentina",
+        "code": "cc-by-sa-2.5-ar",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/ar/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/ar/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Bulgaria",
+        "code": "cc-by-sa-2.5-bg",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/bg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/bg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Canada",
+        "code": "cc-by-sa-2.5-ca",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/ca/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/ca/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Colombia",
+        "code": "cc-by-sa-2.5-co",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/co/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/co/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Denmark",
+        "code": "cc-by-sa-2.5-dk",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/dk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/dk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Hungary",
+        "code": "cc-by-sa-2.5-hu",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/hu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/hu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Israel",
+        "code": "cc-by-sa-2.5-il",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/il/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/il/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 India",
+        "code": "cc-by-sa-2.5-in",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/in/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/in/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Macedonia",
+        "code": "cc-by-sa-2.5-mk",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/mk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/mk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Malta",
+        "code": "cc-by-sa-2.5-mt",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/mt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/mt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Mexico",
+        "code": "cc-by-sa-2.5-mx",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/mx/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/mx/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Malaysia",
+        "code": "cc-by-sa-2.5-my",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/my/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/my/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Peru",
+        "code": "cc-by-sa-2.5-pe",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/pe/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/pe/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 UK: Scotland",
+        "code": "cc-by-sa-2.5-scotland",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/scotland/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/scotland/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0",
+        "code": "cc-by-sa-3.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Austria",
+        "code": "cc-by-sa-3.0-at",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/at/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/at/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Australia",
+        "code": "cc-by-sa-3.0-au",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/au/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/au/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Brazil",
+        "code": "cc-by-sa-3.0-br",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/br/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/br/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Switzerland",
+        "code": "cc-by-sa-3.0-ch",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/ch/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/ch/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Chile",
+        "code": "cc-by-sa-3.0-cl",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/cl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/cl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 China Mainland",
+        "code": "cc-by-sa-3.0-cn",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/cn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/cn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Costa Rica",
+        "code": "cc-by-sa-3.0-cr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/cr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/cr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Czech Republic",
+        "code": "cc-by-sa-3.0-cz",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/cz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/cz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Germany",
+        "code": "cc-by-sa-3.0-de",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/de/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/de/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Ecuador",
+        "code": "cc-by-sa-3.0-ec",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/ec/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/ec/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Estonia",
+        "code": "cc-by-sa-3.0-ee",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/ee/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/ee/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Egypt",
+        "code": "cc-by-sa-3.0-eg",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/eg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/eg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Spain",
+        "code": "cc-by-sa-3.0-es",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/es/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/es/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 France",
+        "code": "cc-by-sa-3.0-fr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/fr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/fr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Greece",
+        "code": "cc-by-sa-3.0-gr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/gr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/gr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Guatemala",
+        "code": "cc-by-sa-3.0-gt",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/gt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/gt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Hong Kong",
+        "code": "cc-by-sa-3.0-hk",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/hk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/hk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Croatia",
+        "code": "cc-by-sa-3.0-hr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/hr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/hr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Ireland",
+        "code": "cc-by-sa-3.0-ie",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/ie/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/ie/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 IGO",
+        "code": "cc-by-sa-3.0-igo",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/igo/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/igo/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Italy",
+        "code": "cc-by-sa-3.0-it",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/it/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/it/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Luxembourg",
+        "code": "cc-by-sa-3.0-lu",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/lu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/lu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Netherlands",
+        "code": "cc-by-sa-3.0-nl",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/nl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/nl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Norway",
+        "code": "cc-by-sa-3.0-no",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/no/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/no/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 New Zealand",
+        "code": "cc-by-sa-3.0-nz",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/nz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/nz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Philippines",
+        "code": "cc-by-sa-3.0-ph",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/ph/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/ph/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Poland",
+        "code": "cc-by-sa-3.0-pl",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/pl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/pl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Puerto Rico",
+        "code": "cc-by-sa-3.0-pr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/pr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/pr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Portugal",
+        "code": "cc-by-sa-3.0-pt",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/pt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/pt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Romania",
+        "code": "cc-by-sa-3.0-ro",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/ro/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/ro/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Serbia",
+        "code": "cc-by-sa-3.0-rs",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/rs/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/rs/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Singapore",
+        "code": "cc-by-sa-3.0-sg",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/sg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/sg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Thailand",
+        "code": "cc-by-sa-3.0-th",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/th/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/th/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Taiwan",
+        "code": "cc-by-sa-3.0-tw",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/tw/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/tw/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Uganda",
+        "code": "cc-by-sa-3.0-ug",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/ug/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/ug/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 United States",
+        "code": "cc-by-sa-3.0-us",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/us/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/us/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Venezuela",
+        "code": "cc-by-sa-3.0-ve",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/ve/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/ve/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Vietnam",
+        "code": "cc-by-sa-3.0-vn",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/vn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/vn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 South Africa",
+        "code": "cc-by-sa-3.0-za",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/za/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/za/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 4.0",
+        "code": "cc-by-sa-4.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/4.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/4.0/"
+        ]
+    },
+    {
+        "code": "cc0-1.0",
+        "name": "CC0 - Public domain",
+        "redistribute": true,
+        "derivative": true,
+        "commercial": true,
+        "attribution": false,
+        "copyleft": false,
+        "url": "https://creativecommons.org/publicdomain/zero/1.0/",
+        "identifiers": [
+            "http://creativecommons.org/publicdomain/zero/1.0/"
+        ]
+    }
+]
\ No newline at end of file
diff --git a/api/tests/music/test.mp3 b/api/tests/music/test.mp3
index 6c1f52a35f665306af4959bb5ed024d2abea544a..8e7c0adbbc1a36f51bd32cf4be12c8e3326f1007 100644
GIT binary patch
delta 67
zcmbO@O=#jYp$SV^7#SECCvI?)boLKmU|<ji^8Wt|X2@sAWk>~*c?_u=KQR|KbCtAn
Sl`sM^6A&|R=PF@g7Y6`~<Pw|!

delta 54
zcmbO@O=#jYp$SWPI2jli|NmoP0O5%%+%|JF{x6!WP$=5WRnpE?!U)7nK+L?ItAvGJ
F8~`GH5)1$U

diff --git a/api/tests/music/test.ogg b/api/tests/music/test.ogg
index bf480acde0cab1797c6b96a25219bf3e59a6ab25..3027e3ec473cbffc6eee56dff868300a6763fab7 100644
GIT binary patch
delta 688
zcmZ9|y>8P`6bJBp7)oi=Gz1b_AefeKnm9>~)K<NN<6N}{JC5udK}M69#8MMiwi~G%
z5(5hZ(VhALtSlW^cn1a~o`HpT;BO10is3h$k9+RXIpaUlXYi>j{F?2K=gcs~R4PS5
z*HqfEDQTZfCa2<&H*lw+yC;sL=y*?(27&8D-pn2NlZihKYkn}2{`Q2@o6~CONOG+%
z@tmO2GNzf9cA#|>y{#}xn)ODrTHmQQo)<2Z`c$!!Qk=A?P8FN7ewPwI8oL31m)XxR
zp<=6+)@4L@qACBDSzp{lPSIOEWB#SGn@8~97dfPKrA2jOoP_?dJH0SoHG3Uq^~vj3
z+(}nBNx$VkGdp}OLk^emjF}7@Yqn~WMm#2onWd;NZ6e1FajnxcTGS$qB4UHKHHEaj
zkrz2fqTvobhj)d2?q!vtVlmBTgbrs;Fcc30&mHlPf;|7cjU$!$@AOt7`6C|xZzf;K
z%FTFR)$I0h!9zxDf8zR6H(4)kO?D!3e3^KgBs~8vY!u#`r4ME)4H?LS0GHr0EWj05
zgsZRw%aDT=$ipfW;2IR+I^2MGZW(UE8mz-DxD9up0(U`#d$0kUa33DPLwE#_;R!s2
WXRrlTsDT7^Xh0LTznUfa#rYo<|F=H?

delta 550
zcmXxfPfrs;7zXg}b_)oFS}H~Ul`2Y6sdn2XA(2TKwv%RYw@Y@1XisF5)~1O;0>}wZ
z9!xmVyeB>f2e}bWd;k(+;wSLJ)vM1e;qXg#-ko{onKQc4&fs**_*=RC-ItzGNF)-p
zZqyoCd<4Q3JQTLS-IPI#efpTjQ2LU)btkk#W{zU*@(tlK@7uxGz0R&0#2aM5?GGWd
z=(}E^mj1bx!Jj&pf>kSKwOm;(n=2|!1vR(54G}OiPFLsR1ZMT`Ch5djrhhskQ=7?*
zV1H-_&X#0ubht}L+8SMH({!n?(zRjHAFV_eNuKjW-Qld>>-G+#FGa7@?nM-76YtfN
z{J?2AP42b?58^6040#}(P%_aziuT*Z#(uBURd=aw_f^dPolVEdHA)-Sc>G3H^P#tP
zZl(%ZT2Jl#@bf?YyaqZX!GIJDz#t64BN&DeNW&<MK?WW}7RDh5PhbL6?j$^gDVT;C
un1wkgz&sS;89avtcmXeA5lXNGui!Pjfn_MeTX+W*Frf;yUw+=&JpT_7Z;{&o

diff --git a/api/tests/music/test.opus b/api/tests/music/test.opus
index c3ca732b3e5032f35d3127597d62b95a155f1bd6..1dd190eacaf0f9eb3445e76d5ed7e7798b0195e8 100644
GIT binary patch
delta 2182
zcmeIyO=}ZD7zglu^R<n!#x&`hO*FP9HrZ^AP)bMGZU$Z4CSiAb$T5bk4P>(+n+ipQ
ziU+U8L3#;z68r|{CgMquehn{v0x$ZXSn=XFFblt7XXcq_c7~n#^nN5h|1uI^(fN-j
z&%*f6e>{UhbxuhOg20|CX_Ml`G7VaBC@CNK{$Z-!YI>c}+f42E``t}dZT7rIzxBjx
z2EHG3!a~q{te(b%>Z8Ma*icJ_qRNiM1Ur$}UP}wP86>UR=6$oGTXm}2WWA`Z^G2Im
zRClObuTc{8_q`s=Nn6<|^f-oX)?8vW`kmRofsU)YyABEV_FBzWqs_ictC=Xe%eqU)
zN%O^xymmK&CQIL@7TGxngRa*Zyp4<Z2H$jEEU~PZVMo#i`z#V|8li60)vdDW7!J|+
z&~e?hb>pE!N<4t~Rd#o_sZBIilN0QRyv1U&&fdr|C5Zs`RZKElNe<d~ux?{zoP{U&
zGm0<PsMhM(ga<Bh0^bWd9vexe<?#pb(DAIK#23%!`(4$J8?nOTaW__oOp3`KO#Xw(
zF_>Hh|JzL{3Brq^@^Yw%Ab||Leg@9MIXDj&;37=HG(_MMMBy^bz!iwWRfxkZBp?ZM
oFb@l`2upAcmLUacxDGcU12<s>R^b+8AqTf%4e}p`O5t7f7fe=QZvX%Q

delta 554
zcmYk&IZFdU7zW_%;eEuIc*G+f@roL8b%lUVF<A!<ZW7&{ps6H?K~WOX*x87Mm0+0P
zAP6>g+KQF6mZ|MT`~~{%df>tXyWh-y^L}&sbT2(z-%FRQe&yovrs@;VT6r_5hCCjR
zh^e#7KD=1WWYlIxI+Nm7mTasyqR7*nnu`hBu!+`$Z<EHENs`A$#e?mFQ*bwMiyA97
z(YJ&yQ)ylZd1%&)#YM^)nVHsRqSLXcHs>^SdZjYSIJ1c69^m}yHX*v$Qw{Mh6A_WR
zy$#rG8&+bK6EjyTh=Q~bZb$7Wrp+nO*rb@x?{4kp_I0dKGoDF`55+H@<sR{(>UH72
zDpf<`R-q!N_{aYZ%d@MD6iYkXhfXnVC6*E?YGxU=+}Pqx>2QNMslP*N<yS+Llm(%x
zy3f4;XMo>{$|nP7mB4u=Ab|`Ds89vfPy@A42ldbZjnD+m;Dr|OK`Z#d>DLDB&;gwg
ogf8fY9_WP-^g%xiz#xQS2!>$<MqvyhFb)$i3DLVsVCu^I1&4~NTL1t6

diff --git a/api/tests/music/test_licenses.py b/api/tests/music/test_licenses.py
new file mode 100644
index 0000000000..33a02fa30b
--- /dev/null
+++ b/api/tests/music/test_licenses.py
@@ -0,0 +1,193 @@
+import json
+import os
+import pytest
+
+from funkwhale_api.music import models
+from funkwhale_api.music import licenses
+
+
+@pytest.fixture
+def purge_license_cache():
+    licenses._cache = None
+    yield
+    licenses._cache = None
+
+
+def test_licenses_do_not_change():
+    """
+    We have 100s of licenses static data, and we want to ensure
+    that this data do not change without notice.
+    So we generate a json file based on this data,
+    and ensure our python data match our JSON file.
+    """
+    path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "licenses.json")
+    from_python = licenses.LICENSES
+    if os.path.exists(path):
+        with open(path) as f:
+            from_file = json.loads(f.read())
+        assert from_file == from_python
+    else:
+        # we write the file
+        with open(path, "w") as f:
+            f.write(json.dumps(from_python, indent=4))
+
+
+def test_load_licenses_create(db):
+    license_data = {
+        "code": "dummy",
+        "url": "http://dummy",
+        "redistribute": True,
+        "derivative": True,
+        "commercial": True,
+        "attribution": True,
+        "copyleft": True,
+    }
+    licenses.load([license_data])
+
+    license = models.License.objects.get(pk=license_data["code"])
+
+    assert license.url == license_data["url"]
+    assert license.redistribute == license_data["redistribute"]
+    assert license.derivative == license_data["derivative"]
+    assert license.copyleft == license_data["copyleft"]
+    assert license.commercial == license_data["commercial"]
+    assert license.attribution == license_data["attribution"]
+
+
+def test_load_hardcoded_licenses_works(db):
+    licenses.load(licenses.LICENSES)
+
+
+def test_license_data():
+    for data in licenses.LICENSES:
+        assert data["identifiers"][0].startswith("http") is True
+        required_fields = [
+            "code",
+            "name",
+            "url",
+            "derivative",
+            "commercial",
+            "redistribute",
+            "attribution",
+        ]
+        for field in required_fields:
+            assert field in required_fields
+
+
+def test_load_licenses_update(factories):
+    license = models.License.objects.create(
+        code="dummy",
+        url="http://oldurl",
+        redistribute=True,
+        derivative=True,
+        commercial=True,
+        attribution=True,
+        copyleft=True,
+    )
+    license_data = {
+        "code": "dummy",
+        "url": "http://newurl",
+        "redistribute": False,
+        "derivative": False,
+        "commercial": True,
+        "attribution": True,
+        "copyleft": True,
+    }
+    licenses.load([license_data])
+
+    license.refresh_from_db()
+
+    assert license.url == license_data["url"]
+    assert license.derivative == license_data["derivative"]
+    assert license.copyleft == license_data["copyleft"]
+    assert license.commercial == license_data["commercial"]
+    assert license.attribution == license_data["attribution"]
+
+
+def test_load_skip_update_if_no_change(factories, mocker):
+    license = models.License.objects.create(
+        code="dummy",
+        url="http://oldurl",
+        redistribute=True,
+        derivative=True,
+        commercial=True,
+        attribution=True,
+        copyleft=True,
+    )
+    update_or_create = mocker.patch.object(models.License.objects, "update_or_create")
+    save = mocker.patch.object(models.License, "save")
+
+    # we load licenses but with same data
+    licenses.load(
+        [
+            {
+                "code": "dummy",
+                "url": license.url,
+                "derivative": license.derivative,
+                "redistribute": license.redistribute,
+                "commercial": license.commercial,
+                "attribution": license.attribution,
+                "copyleft": license.copyleft,
+            }
+        ]
+    )
+
+    save.assert_not_called()
+    update_or_create.assert_not_called()
+
+
+@pytest.mark.parametrize(
+    "value, expected",
+    [
+        (["http://creativecommons.org/licenses/by-sa/4.0/"], "cc-by-sa-4.0"),
+        (["https://creativecommons.org/licenses/by-sa/4.0/"], "cc-by-sa-4.0"),
+        (["https://creativecommons.org/licenses/by-sa/4.0"], "cc-by-sa-4.0"),
+        (
+            [
+                "License for this work is: http://creativecommons.org/licenses/by-sa/4.0/"
+            ],
+            "cc-by-sa-4.0",
+        ),
+        (
+            [
+                "License: http://creativecommons.org/licenses/by-sa/4.0/ not http://creativecommons.org/publicdomain/zero/1.0/"  # noqa
+            ],
+            "cc-by-sa-4.0",
+        ),
+        (
+            [None, "Copyright 2018 http://creativecommons.org/licenses/by-sa/4.0/"],
+            "cc-by-sa-4.0",
+        ),
+        (
+            [
+                "Unknown",
+                "Copyright 2018 http://creativecommons.org/licenses/by-sa/4.0/",
+            ],
+            "cc-by-sa-4.0",
+        ),
+        (["Unknown"], None),
+        ([""], None),
+    ],
+)
+def test_match(value, expected, db, mocker, purge_license_cache):
+    load = mocker.spy(licenses, "load")
+    result = licenses.match(*value)
+
+    if expected:
+        assert result == models.License.objects.get(code=expected)
+        load.assert_called_once_with(licenses.LICENSES)
+    else:
+        assert result is None
+
+
+def test_match_cache(mocker, db, purge_license_cache):
+    assert licenses._cache is None
+    licenses.match("http://test.com")
+
+    assert licenses._cache == sorted(models.License.objects.all(), key=lambda o: o.code)
+
+    load = mocker.patch.object(licenses, "load")
+    assert licenses.match(
+        "http://creativecommons.org/licenses/by-sa/4.0/"
+    ) == models.License.objects.get(code="cc-by-sa-4.0")
+    load.assert_not_called()
diff --git a/api/tests/music/test_metadata.py b/api/tests/music/test_metadata.py
index e386c41fc7..f9c6149dd4 100644
--- a/api/tests/music/test_metadata.py
+++ b/api/tests/music/test_metadata.py
@@ -24,6 +24,8 @@ def test_get_all_metadata_at_once():
         "musicbrainz_recordingid": uuid.UUID("bd21ac48-46d8-4e78-925f-d9cc2a294656"),
         "musicbrainz_artistid": uuid.UUID("013c8e5b-d72a-4cd3-8dee-6c64d6125823"),
         "musicbrainz_albumartistid": uuid.UUID("013c8e5b-d72a-4cd3-8dee-6c64d6125823"),
+        "license": "Dummy license: http://creativecommons.org/licenses/by-sa/4.0/",
+        "copyright": "Someone",
     }
 
     assert data.all() == expected
@@ -45,6 +47,8 @@ def test_get_all_metadata_at_once():
             "musicbrainz_albumartistid",
             uuid.UUID("013c8e5b-d72a-4cd3-8dee-6c64d6125823"),
         ),
+        ("license", "Dummy license: http://creativecommons.org/licenses/by-sa/4.0/"),
+        ("copyright", "Someone"),
     ],
 )
 def test_can_get_metadata_from_ogg_file(field, value):
@@ -70,6 +74,8 @@ def test_can_get_metadata_from_ogg_file(field, value):
             "musicbrainz_albumartistid",
             uuid.UUID("013c8e5b-d72a-4cd3-8dee-6c64d6125823"),
         ),
+        ("license", "Dummy license: http://creativecommons.org/licenses/by-sa/4.0/"),
+        ("copyright", "Someone"),
     ],
 )
 def test_can_get_metadata_from_opus_file(field, value):
@@ -95,6 +101,9 @@ def test_can_get_metadata_from_opus_file(field, value):
             "musicbrainz_albumartistid",
             uuid.UUID("c3bc80a6-1f4a-4e17-8cf0-6b1efe8302f1"),
         ),
+        # somehow, I cannot successfully create an ogg theora file
+        # with the proper license field
+        # ("license", "Dummy license: http://creativecommons.org/licenses/by-sa/4.0/"),
     ],
 )
 def test_can_get_metadata_from_ogg_theora_file(field, value):
@@ -120,6 +129,8 @@ def test_can_get_metadata_from_ogg_theora_file(field, value):
             "musicbrainz_albumartistid",
             uuid.UUID("9c6bddde-6228-4d9f-ad0d-03f6fcb19e13"),
         ),
+        ("license", "https://creativecommons.org/licenses/by-nc-nd/2.5/"),
+        ("copyright", "Someone"),
     ],
 )
 def test_can_get_metadata_from_id3_mp3_file(field, value):
@@ -159,6 +170,8 @@ def test_can_get_pictures(name):
             "musicbrainz_albumartistid",
             uuid.UUID("b7ffd2af-418f-4be2-bdd1-22f8b48613da"),
         ),
+        ("license", "http://creativecommons.org/licenses/by-nc-sa/3.0/us/"),
+        ("copyright", "2008 nin"),
     ],
 )
 def test_can_get_metadata_from_flac_file(field, value):
diff --git a/api/tests/music/test_models.py b/api/tests/music/test_models.py
index d89afd9c76..891a9984dd 100644
--- a/api/tests/music/test_models.py
+++ b/api/tests/music/test_models.py
@@ -498,3 +498,15 @@ def test_fid_is_populated(factories, model, factory_args, namespace):
 def test_upload_extension(factory_args, factories, expected):
     upload = factories["music.Upload"].build(**factory_args)
     assert upload.extension == expected
+
+
+def test_can_create_license(db):
+    models.License.objects.create(
+        code="cc-by-sa",
+        copyleft=True,
+        commercial=True,
+        attribution=True,
+        derivative=True,
+        redistribute=True,
+        url="http://cc",
+    )
diff --git a/api/tests/music/test_serializers.py b/api/tests/music/test_serializers.py
index 92b924486c..4244691c19 100644
--- a/api/tests/music/test_serializers.py
+++ b/api/tests/music/test_serializers.py
@@ -1,10 +1,33 @@
 import pytest
 
+from funkwhale_api.music import licenses
 from funkwhale_api.music import models
 from funkwhale_api.music import serializers
 from funkwhale_api.music import tasks
 
 
+def test_license_serializer():
+    """
+    We serializer all licenses to ensure we have valid hardcoded data
+    """
+    for data in licenses.LICENSES:
+        expected = {
+            "id": data["identifiers"][0],
+            "code": data["code"],
+            "name": data["name"],
+            "url": data["url"],
+            "redistribute": data["redistribute"],
+            "derivative": data["derivative"],
+            "commercial": data["commercial"],
+            "attribution": data["attribution"],
+            "copyleft": data["copyleft"],
+        }
+
+        serializer = serializers.LicenseSerializer(data)
+
+        assert serializer.data == expected
+
+
 def test_artist_album_serializer(factories, to_api_date):
     track = factories["music.Track"]()
     album = track.album
@@ -48,7 +71,9 @@ def test_artist_with_albums_serializer(factories, to_api_date):
 
 
 def test_album_track_serializer(factories, to_api_date):
-    upload = factories["music.Upload"]()
+    upload = factories["music.Upload"](
+        track__license="cc-by-4.0", track__copyright="test"
+    )
     track = upload.track
     setattr(track, "playable_uploads", [upload])
 
@@ -63,6 +88,8 @@ def test_album_track_serializer(factories, to_api_date):
         "creation_date": to_api_date(track.creation_date),
         "listen_url": track.listen_url,
         "duration": None,
+        "license": track.license.code,
+        "copyright": track.copyright,
     }
     serializer = serializers.AlbumTrackSerializer(track)
     assert serializer.data == expected
@@ -146,7 +173,9 @@ def test_album_serializer(factories, to_api_date):
 
 
 def test_track_serializer(factories, to_api_date):
-    upload = factories["music.Upload"]()
+    upload = factories["music.Upload"](
+        track__license="cc-by-4.0", track__copyright="test"
+    )
     track = upload.track
     setattr(track, "playable_uploads", [upload])
     expected = {
@@ -160,6 +189,8 @@ def test_track_serializer(factories, to_api_date):
         "creation_date": to_api_date(track.creation_date),
         "lyrics": track.get_lyrics_url(),
         "listen_url": track.listen_url,
+        "license": upload.track.license.code,
+        "copyright": upload.track.copyright,
     }
     serializer = serializers.TrackSerializer(track)
     assert serializer.data == expected
diff --git a/api/tests/music/test_tasks.py b/api/tests/music/test_tasks.py
index 4e03d7906c..1af3c1ba4c 100644
--- a/api/tests/music/test_tasks.py
+++ b/api/tests/music/test_tasks.py
@@ -8,7 +8,7 @@ from django.core.paginator import Paginator
 from django.utils import timezone
 
 from funkwhale_api.federation import serializers as federation_serializers
-from funkwhale_api.music import metadata, signals, tasks
+from funkwhale_api.music import licenses, metadata, signals, tasks
 
 DATA_DIR = os.path.dirname(os.path.abspath(__file__))
 
@@ -23,19 +23,25 @@ def test_can_create_track_from_file_metadata_no_mbid(db, mocker):
         "album": "Test album",
         "date": datetime.date(2012, 8, 15),
         "track_number": 4,
+        "license": "Hello world: http://creativecommons.org/licenses/by-sa/4.0/",
+        "copyright": "2018 Someone",
     }
     mocker.patch("funkwhale_api.music.metadata.Metadata.all", return_value=metadata)
+    match_license = mocker.spy(licenses, "match")
 
     track = tasks.get_track_from_import_metadata(metadata)
 
     assert track.title == metadata["title"]
     assert track.mbid is None
     assert track.position == 4
+    assert track.license.code == "cc-by-sa-4.0"
+    assert track.copyright == metadata["copyright"]
     assert track.album.title == metadata["album"]
     assert track.album.mbid is None
     assert track.album.release_date == datetime.date(2012, 8, 15)
     assert track.artist.name == metadata["artist"]
     assert track.artist.mbid is None
+    match_license.assert_called_once_with(metadata["license"], metadata["copyright"])
 
 
 def test_can_create_track_from_file_metadata_mbid(factories, mocker):
@@ -397,6 +403,8 @@ def test_federation_audio_track_to_metadata(now):
         "name": "Black in back",
         "position": 5,
         "published": published.isoformat(),
+        "license": "http://creativecommons.org/licenses/by-sa/4.0/",
+        "copyright": "2018 Someone",
         "album": {
             "published": published.isoformat(),
             "type": "Album",
@@ -433,6 +441,8 @@ def test_federation_audio_track_to_metadata(now):
         "title": payload["name"],
         "date": released,
         "track_number": payload["position"],
+        "license": "http://creativecommons.org/licenses/by-sa/4.0/",
+        "copyright": "2018 Someone",
         # musicbrainz
         "musicbrainz_albumid": payload["album"]["musicbrainzId"],
         "musicbrainz_recordingid": payload["musicbrainzId"],
diff --git a/api/tests/music/test_views.py b/api/tests/music/test_views.py
index 615a592438..263b787847 100644
--- a/api/tests/music/test_views.py
+++ b/api/tests/music/test_views.py
@@ -6,7 +6,7 @@ import pytest
 from django.urls import reverse
 from django.utils import timezone
 
-from funkwhale_api.music import models, serializers, tasks, views
+from funkwhale_api.music import licenses, models, serializers, tasks, views
 from funkwhale_api.federation import api_serializers as federation_api_serializers
 
 DATA_DIR = os.path.dirname(os.path.abspath(__file__))
@@ -541,3 +541,32 @@ def test_can_get_libraries_for_music_entities(
         "previous": None,
         "results": [expected],
     }
+
+
+def test_list_licenses(api_client, preferences, mocker):
+    licenses.load(licenses.LICENSES)
+    load = mocker.spy(licenses, "load")
+    preferences["common__api_authentication_required"] = False
+
+    expected = [
+        serializers.LicenseSerializer(l.conf).data
+        for l in models.License.objects.order_by("code")[:25]
+    ]
+    url = reverse("api:v1:licenses-list")
+
+    response = api_client.get(url)
+
+    assert response.data["results"] == expected
+    load.assert_called_once_with(licenses.LICENSES)
+
+
+def test_detail_license(api_client, preferences):
+    preferences["common__api_authentication_required"] = False
+    id = "cc-by-sa-4.0"
+    expected = serializers.LicenseSerializer(licenses.LICENSES_BY_ID[id]).data
+
+    url = reverse("api:v1:licenses-detail", kwargs={"pk": id})
+
+    response = api_client.get(url)
+
+    assert response.data == expected
diff --git a/changes/changelog.d/308.feature b/changes/changelog.d/308.feature
new file mode 100644
index 0000000000..7e968ef461
--- /dev/null
+++ b/changes/changelog.d/308.feature
@@ -0,0 +1,25 @@
+Store licensing and copyright information from file metadata, if available (#308)
+
+Licensing and copyright information
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Funkwhale is now able to parse copyright and license data from file and store
+this information. Apart from displaying it on each track detail page,
+no additional behaviour is currently implemented to use this new data, but this
+will change in future releases.
+
+License and copyright data is also broadcasted over federation.
+
+License matching is done on the content of the ``License`` tag in the files,
+with a fallback on the ``Copyright`` tag.
+
+Funkwhale will successfully extract licensing data for the following licenses:
+
+- Creative Commons 0 (Public Domain)
+- Creative Commons 1.0 (All declinations)
+- Creative Commons 2.0 (All declinations)
+- Creative Commons 2.5 (All declinations and countries)
+- Creative Commons 3.0 (All declinations and countries)
+- Creative Commons 4.0 (All declinations)
+
+Support for other licenses such as Art Libre or WTFPL will be added in future releases.
diff --git a/front/src/App.vue b/front/src/App.vue
index 6a4bd746e5..c4c5edb03c 100644
--- a/front/src/App.vue
+++ b/front/src/App.vue
@@ -1,17 +1,31 @@
 <template>
   <div id="app">
     <!-- here, we display custom stylesheets, if any -->
-    <link v-for="url in customStylesheets" rel="stylesheet" property="stylesheet" :href="url" :key="url">
+    <link
+      v-for="url in customStylesheets"
+      rel="stylesheet"
+      property="stylesheet"
+      :href="url"
+      :key="url"
+    >
     <div class="ui main text container instance-chooser" v-if="!$store.state.instance.instanceUrl">
       <div class="ui padded segment">
-        <h1 class="ui header"><translate>Choose your instance</translate></h1>
+        <h1 class="ui header">
+          <translate>Choose your instance</translate>
+        </h1>
         <form class="ui form" @submit.prevent="$store.dispatch('instance/setUrl', instanceUrl)">
-          <p><translate>You need to select an instance in order to continue</translate></p>
+          <p>
+            <translate>You need to select an instance in order to continue</translate>
+          </p>
           <div class="ui action input">
             <input type="text" v-model="instanceUrl">
-            <button type="submit" class="ui button"><translate>Submit</translate></button>
+            <button type="submit" class="ui button">
+              <translate>Submit</translate>
+            </button>
           </div>
-          <p><translate>Suggested choices</translate></p>
+          <p>
+            <translate>Suggested choices</translate>
+          </p>
           <div class="ui bulleted list">
             <div class="ui item" v-for="url in suggestedInstances">
               <a @click="instanceUrl = url">{{ url }}</a>
@@ -22,20 +36,20 @@
     </div>
     <template v-else>
       <sidebar></sidebar>
-      <service-messages v-if="messages.length > 0" />
+      <service-messages v-if="messages.length > 0"/>
       <router-view :key="$route.fullPath"></router-view>
       <div class="ui fitted divider"></div>
-      <app-footer :version="version" @show:shortcuts-modal="showShortcutsModal = !showShortcutsModal"></app-footer>
+      <app-footer
+        :version="version"
+        @show:shortcuts-modal="showShortcutsModal = !showShortcutsModal"
+      ></app-footer>
       <raven
         v-if="$store.state.instance.settings.raven.front_enabled.value"
-        :dsn="$store.state.instance.settings.raven.front_dsn.value">
-      </raven>
+        :dsn="$store.state.instance.settings.raven.front_dsn.value"
+      ></raven>
       <playlist-modal v-if="$store.state.auth.authenticated"></playlist-modal>
       <shortcuts-modal @update:show="showShortcutsModal = $event" :show="showShortcutsModal"></shortcuts-modal>
-       <GlobalEvents
-        @keydown.h.exact="showShortcutsModal = !showShortcutsModal"
-        />
-
+      <GlobalEvents @keydown.h.exact="showShortcutsModal = !showShortcutsModal"/>
     </template>
   </div>
 </template>
@@ -213,17 +227,17 @@ export default {
 // as resolve order is not deterministric in webpack
 // and we end up with CSS rules not applied,
 // see https://github.com/webpack/webpack/issues/215
-@import 'semantic/semantic.css';
-@import 'style/vendor/media';
-
+@import "semantic/semantic.css";
+@import "style/vendor/media";
 
-html, body {
+html,
+body {
   @include media("<desktop") {
     font-size: 90%;
   }
 }
 #app {
-  font-family: 'Avenir', Helvetica, Arial, sans-serif;
+  font-family: "Avenir", Helvetica, Arial, sans-serif;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
 }
@@ -232,7 +246,8 @@ html, body {
   margin-top: 2em;
 }
 
-.main.pusher, .footer {
+.main.pusher,
+.footer {
   @include media(">desktop") {
     margin-left: 350px !important;
     margin-top: 50px;
@@ -240,7 +255,6 @@ html, body {
   transform: none !important;
 }
 
-
 .main.pusher > .ui.secondary.menu {
   margin-left: 0;
   margin-right: 0;
@@ -282,7 +296,8 @@ html, body {
 .main-pusher {
   padding: 1.5rem 0;
 }
-.ui.stripe.segment, #footer {
+.ui.stripe.segment,
+#footer {
   padding: 2em;
   @include media(">tablet") {
     padding: 4em;
@@ -300,7 +315,7 @@ html, body {
 }
 
 .button.icon.tiny {
-    padding: 0.5em !important;
+  padding: 0.5em !important;
 }
 
 .sidebar {
@@ -332,11 +347,10 @@ html, body {
 .ui.icon.header .circular.icon {
   display: flex;
   justify-content: center;
-
 }
 
-.segment-content .button{
-  margin:  0.5em;
+.segment-content .button {
+  margin: 0.5em;
 }
 
 a {
@@ -365,7 +379,7 @@ button.reset {
   /* Corrects font smoothing for webkit */
   -webkit-font-smoothing: inherit;
   -moz-osx-font-smoothing: inherit;
-    /* Corrects inability to style clickable `input` types in iOS */
+  /* Corrects inability to style clickable `input` types in iOS */
   -webkit-appearance: none;
   text-align: inherit;
 }
@@ -375,4 +389,7 @@ button.reset {
   padding: 0.5em;
   text-align: left;
 }
+[role="button"] {
+  cursor: pointer;
+}
 </style>
diff --git a/front/src/components/library/Track.vue b/front/src/components/library/Track.vue
index 707ba27ff3..4aeecdf39d 100644
--- a/front/src/components/library/Track.vue
+++ b/front/src/components/library/Track.vue
@@ -4,23 +4,33 @@
       <div :class="['ui', 'centered', 'active', 'inline', 'loader']"></div>
     </div>
     <template v-if="track">
-      <section :class="['ui', 'head', {'with-background': cover}, 'vertical', 'center', 'aligned', 'stripe', 'segment']" :style="headerStyle" v-title="track.title">
+      <section
+        :class="['ui', 'head', {'with-background': cover}, 'vertical', 'center', 'aligned', 'stripe', 'segment']"
+        :style="headerStyle"
+        v-title="track.title"
+      >
         <div class="segment-content">
           <h2 class="ui center aligned icon header">
             <i class="circular inverted music orange icon"></i>
             <div class="content">
               {{ track.title }}
               <div class="sub header">
-                <translate :translate-params="{album: track.album.title, artist: track.artist.name}">
-                  From album %{ album } by %{ artist }
-                </translate>
+                <translate
+                  :translate-params="{album: track.album.title, artist: track.artist.name}"
+                >From album %{ album } by %{ artist }</translate>
               </div>
               <br>
               <div class="ui basic buttons">
-                <router-link class="ui button" :to="{name: 'library.albums.detail', params: {id: track.album.id }}">
+                <router-link
+                  class="ui button"
+                  :to="{name: 'library.albums.detail', params: {id: track.album.id }}"
+                >
                   <translate>Album page</translate>
                 </router-link>
-                <router-link class="ui button" :to="{name: 'library.artists.detail', params: {id: track.artist.id }}">
+                <router-link
+                  class="ui button"
+                  :to="{name: 'library.artists.detail', params: {id: track.artist.id }}"
+                >
                   <translate>Artist page</translate>
                 </router-link>
               </div>
@@ -31,10 +41,7 @@
             <translate>Play</translate>
           </play-button>
           <track-favorite-icon :track="track" :button="true"></track-favorite-icon>
-          <track-playlist-icon
-            :button="true"
-            v-if="$store.state.auth.authenticated"
-            :track="track"></track-playlist-icon>
+          <track-playlist-icon :button="true" v-if="$store.state.auth.authenticated" :track="track"></track-playlist-icon>
 
           <a :href="wikipediaUrl" target="_blank" class="ui button">
             <i class="wikipedia icon"></i>
@@ -50,17 +57,37 @@
           </a>
         </div>
       </section>
-      <section class="ui vertical stripe center aligned segment" v-if="upload">
-        <h2 class="ui header"><translate>Track information</translate></h2>
+      <section class="ui vertical stripe center aligned segment">
+        <h2 class="ui header">
+          <translate>Track information</translate>
+        </h2>
         <table class="ui very basic collapsing celled center aligned table">
           <tbody>
             <tr>
               <td>
-                <translate>Duration</translate>
+                <translate>Copyright</translate>
+              </td>
+              <td v-if="track.copyright" :title="track.copyright">{{ track.copyright|truncate(50) }}</td>
+              <td v-else>
+                <translate>We don't have any copyright information for this track</translate>
+              </td>
+            </tr>
+            <tr>
+              <td>
+                <translate>License</translate>
               </td>
-              <td v-if="upload.duration">
-                {{ time.parse(upload.duration) }}
+              <td v-if="license">
+                <a :href="license.url" target="_blank" rel="noopener noreferrer">{{ license.name }}</a>
+              </td>
+              <td v-else>
+                <translate>We don't have any licensing information for this track</translate>
+              </td>
+            </tr>
+            <tr>
+              <td>
+                <translate>Duration</translate>
               </td>
+              <td v-if="upload && upload.duration">{{ time.parse(upload.duration) }}</td>
               <td v-else>
                 <translate>N/A</translate>
               </td>
@@ -69,9 +96,7 @@
               <td>
                 <translate>Size</translate>
               </td>
-              <td v-if="upload.size">
-                {{ upload.size | humanSize }}
-              </td>
+              <td v-if="upload && upload.size">{{ upload.size | humanSize }}</td>
               <td v-else>
                 <translate>N/A</translate>
               </td>
@@ -80,9 +105,7 @@
               <td>
                 <translate>Bitrate</translate>
               </td>
-              <td v-if="upload.bitrate">
-                {{ upload.bitrate | humanSize }}/s
-              </td>
+              <td v-if="upload && upload.bitrate">{{ upload.bitrate | humanSize }}/s</td>
               <td v-else>
                 <translate>N/A</translate>
               </td>
@@ -91,9 +114,7 @@
               <td>
                 <translate>Type</translate>
               </td>
-              <td v-if="upload.extension">
-                {{ upload.extension }}
-              </td>
+              <td v-if="upload && upload.extension">{{ upload.extension }}</td>
               <td v-else>
                 <translate>N/A</translate>
               </td>
@@ -108,10 +129,11 @@
         <div v-if="isLoadingLyrics" class="ui vertical segment">
           <div :class="['ui', 'centered', 'active', 'inline', 'loader']"></div>
         </div>
-        <div v-if="lyrics" v-html="lyrics.content_rendered">
-        </div>
+        <div v-if="lyrics" v-html="lyrics.content_rendered"></div>
         <template v-if="!isLoadingLyrics & !lyrics">
-          <p><translate>No lyrics available for this track.</translate></p>
+          <p>
+            <translate>No lyrics available for this track.</translate>
+          </p>
           <a class="ui button" target="_blank" :href="lyricsSearchUrl">
             <i class="search icon"></i>
             <translate>Search on lyrics.wikia.com</translate>
@@ -139,6 +161,7 @@ import PlayButton from "@/components/audio/PlayButton"
 import TrackFavoriteIcon from "@/components/favorites/TrackFavoriteIcon"
 import TrackPlaylistIcon from "@/components/playlists/TrackPlaylistIcon"
 import LibraryWidget from "@/components/federation/LibraryWidget"
+import Modal from '@/components/semantic/Modal'
 
 const FETCH_URL = "tracks/"
 
@@ -148,7 +171,8 @@ export default {
     PlayButton,
     TrackPlaylistIcon,
     TrackFavoriteIcon,
-    LibraryWidget
+    LibraryWidget,
+    Modal
   },
   data() {
     return {
@@ -156,7 +180,8 @@ export default {
       isLoadingTrack: true,
       isLoadingLyrics: true,
       track: null,
-      lyrics: null
+      lyrics: null,
+      licenseData: null
     }
   },
   created() {
@@ -174,6 +199,13 @@ export default {
         self.isLoadingTrack = false
       })
     },
+    fetchLicenseData(licenseId) {
+      var self = this
+      let url = `licenses/${licenseId}/`
+      axios.get(url).then(response => {
+        self.licenseData = response.data
+      })
+    },
     fetchLyrics() {
       var self = this
       this.isLoadingLyrics = true
@@ -243,11 +275,22 @@ export default {
         this.$store.getters["instance/absoluteUrl"](this.cover) +
         ")"
       )
+    },
+    license() {
+      if (!this.track || !this.track.license) {
+        return null
+      }
+      return this.licenseData
     }
   },
   watch: {
     id() {
       this.fetchData()
+    },
+    track (v) {
+      if (v && v.license) {
+        this.fetchLicenseData(v.license)
+      }
     }
   }
 }
-- 
GitLab