Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ccMixter #1770

Closed
6 tasks
obulat opened this issue Apr 21, 2021 · 1 comment Β· Fixed by #3479
Closed
6 tasks

ccMixter #1770

obulat opened this issue Apr 21, 2021 · 1 comment Β· Fixed by #3479
Assignees
Labels
πŸ’» aspect: code Concerns the software code in the repository 🌟 goal: addition Addition of new feature help wanted Open to participation from the community 🟨 priority: medium Not blocking but should be addressed soon ☁️ provider: audio Audio provider 🧱 stack: catalog Related to the catalog and Airflow DAGs
Projects

Comments

@obulat
Copy link
Contributor

obulat commented Apr 21, 2021

This issue has been migrated from the CC Search Catalog repository

Author: annatuma
Date: Wed Mar 11 2020
Labels: providers,✨ goal: improvement,πŸ™… status: discontinued

Provider API Endpoint / Documentation

http://ccmixter.org/query-api

Provider description

http://dig.ccmixter.org/free

Licenses Provided

They have over 29,000 objects, but it is unclear from the UI how many are CC licensed. They appear to also have their own license on some objects. We'd need to restrict to CC BY and CC BY-NC, which are the two licenses they appear to support for objects upon upload.

Edit: CC Mixter now supports the CC 4.0 licenses and seems to have around 65k audio files now. Details here and here.

further information required below this point

Provider API Technical info

Checklist to complete before beginning development

No development should be done on a Provider API Script until the following info is gathered:

  • Verify there is a way to retrieve the entire relevant portion of the provider's collection in a systematic way via their API.
  • Verify the API provides license info (license type and version; license URL provides both, and is preferred)
  • Verify the API provides stable direct links to individual works.
  • Verify the API provides a stable landing page URL to individual works.
  • Note other info the API provides, such as thumbnails, dimensions, attribution info (required if non-CC0 licenses will be kept), title, description, other meta data, tags, etc.
  • Attach example responses to API queries that have the relevant info.

General Recommendations for implementation

  • The script should be in the src/cc_catalog_airflow/dags/provider_api_scripts/ directory.
  • The script should have a test suite in the same directory.
  • The script must use the ImageStore class (Import this from
    src/cc_catalog_airflow/dags/provider_api_scripts/common/storage/image.py).
  • The script should use the DelayedRequester class (Import this from
    src/cc_catalog_airflow/dags/provider_api_scripts/common/requester.py).
  • The script must not use anything from
    src/cc_catalog_airflow/dags/provider_api_scripts/modules/etlMods.py, since
    that module is deprecated.
  • If the provider API has can be queried by 'upload date' or something similar,
    the script should take a --date parameter when run as a script, giving the
    date for which we should collect images. The form should be YYYY-MM-DD (so,
    the script can be run via python my_favorite_provider.py --date 2018-01-01).
  • The script must provide a main function that takes the same parameters as from
    the CLI. In our example from above, we'd then have a main function
    my_favorite_provider.main(date). The main should do the same thing calling
    from the CLI would do.
  • The script must conform to PEP8. Please use pycodestyle (available via
    pip install pycodestyle) to check for compliance.
  • The script should use small, testable functions.
  • The test suite for the script may break PEP8 rules regarding long lines where
    appropriate (e.g., long strings for testing).

Examples of other Provider API Scripts

For example Provider API Scripts and accompanying test suites, please see

  • src/cc_catalog_airflow/dags/provider_api_scripts/flickr.py and
  • src/cc_catalog_airflow/dags/provider_api_scripts/test_flickr.py, or
  • src/cc_catalog_airflow/dags/provider_api_scripts/wikimedia_commons.py and
  • src/cc_catalog_airflow/dags/provider_api_scripts/test_wikimedia_commons.py.
@obulat obulat mentioned this issue Jun 3, 2021
36 tasks
@dhruvkb dhruvkb added help wanted Open to participation from the community 🧹 status: ticket work required Needs more details before it can be worked on labels Jun 14, 2021
@zackkrida
Copy link
Member

zackkrida commented Sep 16, 2022

I just took a look at this API for the first time in a while. I think I'll try to contact
someone there about inclusion in Openverse. Here's some sample responses:

http://ccmixter.org/api/query?tags=hip_hop&sort=name&u=teru&format=json

Here's a single result from this array of results:

{
    "upload_id": 2565,
    "upload_name": "All I Need-teru-remix",
    "upload_extra": {
      "usertags": "bass,funky,hip_hop,loops",
      "ccud": "media,remix,how_i_did_it,bpm_100_105",
      "systags": "non_commercial,audio,mp3,44k,stereo,CBR",
      "relative_dir": "content/teru",
      "bpm": 104,
      "howididit": {
        "tools": "FL Studio, FL pan-o-matic, Slayer 2, Echo. \r\nAudacity, Audacity compressor.",
        "samples": "Ft. rap by J. Gomes. Courtesey of J. Lang.",
        "origial": "",
        "process": "Bassline- Slayer Fretless w/FL pan-o-matic.  \r\nDrum- Bass/snare/hat looped and heavily compressed in Audacity.\r\nRap- Tempo changed 93 to 104BPM. Also used FL pan-o-matic and echo in parts.",
        "other": "I think applying the pan-o-matic to the bassline was a mistake. Works really well for the vocals though. : )"
      },
      "num_reviews": 4,
      "collab": null
    },
    "user_name": "teru",
    "upload_tags": "media,remix,how_i_did_it,bpm_100_105,bass,funky,hip_hop,loops,non_commercial,audio,mp3,44k,stereo,CBR",
    "upload_num_scores": 5,
    "file_page_url": "http://ccmixter.org/files/teru/2565",
    "user_real_name": "teru",
    "artist_page_url": "http://ccmixter.org/people/teru",
    "license_logo_url": "http://ccmixter.org/ccskins/shared/images/lics/small-by-nc.png",
    "license_url": "http://creativecommons.org/licenses/by-nc/2.5/",
    "license_name": "Attribution Noncommercial",
    "upload_date_format": "Tue, Sep 6, 2005 @ 3:41 PM",
    "files": [
      {
        "file_id": 1658,
        "file_upload": 2565,
        "file_name": "teru_-_All_I_Need-teru-remix.mp3",
        "file_nicname": "mp3",
        "file_format_info": {
          "media-type": "audio",
          "format-name": "audio-mp3-mp3",
          "default-ext": "mp3",
          "mime_type": "audio/mpeg",
          "sr": "44k",
          "ch": "stereo",
          "ps": "3:06",
          "br": "CBR"
        },
        "file_extra": {
          "sha1": "EZDHMHW52D2XLLNOP5VNOYQOLBRFWIQX"
        },
        "file_filesize": " (2.84MB)",
        "file_order": 0,
        "file_is_remote": 0,
        "file_num_download": 0,
        "download_url": "http://ccmixter.org/content/teru/teru_-_All_I_Need-teru-remix.mp3",
        "local_path": "/var/www/ccmixter/content/teru/teru_-_All_I_Need-teru-remix.mp3",
        "file_rawsize": 2980592
      }
    ],
    "upload_description_plain": "Minimal funky hip hop. Thanks J. Gomes and J. Lang. : )",
    "upload_description_html": "Minimal funky hip hop. Thanks J. Gomes and J. Lang. : )"
  }

Edit: Also, their forum is a good place for information about the project in general:

http://ccmixter.org/forums/1

@krysal krysal added 🟨 priority: medium Not blocking but should be addressed soon πŸ’» aspect: code Concerns the software code in the repository labels Nov 18, 2022
@obulat obulat added the 🧱 stack: catalog Related to the catalog and Airflow DAGs label Feb 24, 2023
@obulat obulat transferred this issue from WordPress/openverse-catalog Apr 17, 2023
@obulat obulat changed the title [API Integration - AUDIO] ccmixter (original #317) ccmixter Jun 20, 2023
@zackkrida zackkrida changed the title ccmixter ccMixter Jun 28, 2023
@dhruvkb dhruvkb self-assigned this Aug 21, 2023
@dhruvkb dhruvkb mentioned this issue Dec 6, 2023
8 tasks
@dhruvkb dhruvkb added 🌟 goal: addition Addition of new feature and removed 🧹 status: ticket work required Needs more details before it can be worked on labels Dec 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
πŸ’» aspect: code Concerns the software code in the repository 🌟 goal: addition Addition of new feature help wanted Open to participation from the community 🟨 priority: medium Not blocking but should be addressed soon ☁️ provider: audio Audio provider 🧱 stack: catalog Related to the catalog and Airflow DAGs
Projects
Archived in project
Openverse
  
Backlog
Development

Successfully merging a pull request may close this issue.

5 participants