This repository has been archived by the owner on Jan 13, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 60
[API Integration - AUDIO] Jamendo #345
Labels
✨ goal: improvement
Improvement to an existing feature
providers
🙅 status: discontinued
Not suitable for work as repo is in maintenance
Comments
Hey, for any boxes checked on the required info above, please provide references or evidence to support checking those boxes. This will help us when this issue is ready for development. |
@mathemancer I have updated the comment in order to include the required info |
Okay, thanks! |
kgodey
added
✨ goal: improvement
Improvement to an existing feature
🧹 status: ticket work required
Needs more details before it can be worked on
and removed
enhancement
labels
Sep 22, 2020
cc-open-source-bot
added
the
🏷 status: label work required
Needs proper labelling before it can be worked on
label
Dec 2, 2020
kgodey
added
🙅 status: discontinued
Not suitable for work as repo is in maintenance
and removed
🏷 status: label work required
Needs proper labelling before it can be worked on
🧹 status: ticket work required
Needs more details before it can be worked on
labels
Dec 16, 2020
6 tasks
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
✨ goal: improvement
Improvement to an existing feature
providers
🙅 status: discontinued
Not suitable for work as repo is in maintenance
Provider API Endpoint / Documentation
Documentation: https://developer.jamendo.com/v3.0/docs
The generic GET url form is the following: http[s]://api.jamendo.com/version/entity/subentity/?api_parameter=value
Provider description
On Jamendo Music, you can enjoy a wide catalog of more than 500,000 tracks shared by 40,000 artists from over 150 countries all over the world. You can stream all the music for free, download it and support the artist: become a music explorer and be a part of a great discovery experience!
Licenses Provided
Jamendo uses Creative Commons licenses to enable the free distribution of otherwise copyrighted work. CC licenses all grant 'baseline rights', such as the right to distribute the copyrighted work worldwide for non-commercial purposes, and without modification. Artists choose a license according to the conditions they want to be applied to the song.
As per https://www.jamendo.com/legal/creative-commons
Provider API Technical info
The Terms of use does not as such mention a limit, there are different plans though which will be available only after signup. The plans are read-only and write-only.
The API uses OAuth2 based authentication.
Rate Limit: 35,000 requests per month for non-commercial apps
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.
There is a read API that can be queried with: https://developer.jamendo.com/v3.0 as the base URL and other information can be sent along with the GET request to retrieve specific info. The API responds with 200 rows in one response and accepts a parameter offset that can be used to specify the position to start returning results from.
Verify the API provides license info (license type and version; license URL provides both, and is preferred)
It provides the license URL as the parameter licensecurl in the API response.
Verify the API provides stable direct links to individual works.
It provides the same under the key "audio" in the response. The download link is also provided under "audiodownload"
Verify the API provides a stable landing page URL to individual works.
The API provides a short and a share version for the landing page of the URL under the keys "shorturl" and "shareurl" respectively.
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.
The API provides duration, album name, album image, artist name, release date, image for the track, etc.
Attach example responses to API queries that have the relevant info.
General Recommendations for implementation
src/cc_catalog_airflow/dags/provider_api_scripts/
directory.ImageStore
class (Import this fromsrc/cc_catalog_airflow/dags/provider_api_scripts/common/storage/image.py
).DelayedRequester
class (Import this fromsrc/cc_catalog_airflow/dags/provider_api_scripts/common/requester.py
).src/cc_catalog_airflow/dags/provider_api_scripts/modules/etlMods.py
, sincethat module is deprecated.
the script should take a
--date
parameter when run as a script, giving thedate 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 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 callingfrom the CLI would do.
pycodestyle
(available viapip install pycodestyle
) to check for compliance.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
andsrc/cc_catalog_airflow/dags/provider_api_scripts/test_flickr.py
, orsrc/cc_catalog_airflow/dags/provider_api_scripts/wikimedia_commons.py
andsrc/cc_catalog_airflow/dags/provider_api_scripts/test_wikimedia_commons.py
.The text was updated successfully, but these errors were encountered: