Skip to content
This repository has been archived by the owner on Jan 13, 2022. It is now read-only.

[API Integration - AUDIO] SoundCloud #281

Closed
annatuma opened this issue Feb 24, 2020 · 1 comment
Closed

[API Integration - AUDIO] SoundCloud #281

annatuma opened this issue Feb 24, 2020 · 1 comment
Labels
✨ goal: improvement Improvement to an existing feature providers 🙅 status: discontinued Not suitable for work as repo is in maintenance

Comments

@annatuma
Copy link
Contributor

Ticket will require more work prior to integration, preliminary information only at this point. This is blocked by the Catalog not currently supporting audio as a content type.

Provider API Endpoint / Documentation

https://developers.soundcloud.com/
https://developers.soundcloud.com/docs/api/reference

Provider description

SoundCloud is an online provider of audio, of varying lengths and uses. Some items on SoundCloud are CC licensed.

Licenses Provided

Provider API Technical info

Ability to filter by license is indicated in /tracks:
https://developers.soundcloud.com/docs/api/reference#tracks

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.
@mathemancer
Copy link
Contributor

It's not immediately apparent that SoundCloud offers a direct link to the audio file.

They do offer a stream_url and a download_url, but those seem to require using some of their front end components.

@kgodey kgodey added 🚧 status: blocked Blocked & therefore, not ready for work ✨ goal: improvement Improvement to an existing feature and removed blocked labels Sep 22, 2020
@cc-open-source-bot cc-open-source-bot added the 🏷 status: label work required Needs proper labelling before it can be worked on label Dec 2, 2020
@kgodey 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: blocked Blocked & therefore, not ready for work labels Dec 16, 2020
@kgodey kgodey closed this as completed Dec 16, 2020
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
Development

No branches or pull requests

4 participants