Skip to content

Support SoundCloud HLS #273

@wb9688

Description

@wb9688

Some newer streams on SoundCloud only seem to have a MP3 and Opus HLS URL and no MP3 progressive URL. Here is an example JSON (just a random track from New & Hot):

{
  "comment_count": 337,
  "full_duration": 188656,
  "downloadable": false,
  "created_at": "2020-02-27T16:32:45Z",
  "description": null,
  "media": {
    "transcodings": [
      {
        "url": "https://api-v2.soundcloud.com/media/soundcloud:tracks:767454454/bbe7e1ab-3b8a-4b3e-863f-28f674b5c6aa/stream/hls",
        "preset": "mp3_0_1",
        "duration": 188656,
        "snipped": false,
        "format": {
          "protocol": "hls",
          "mime_type": "audio/mpeg"
        },
        "quality": "sq"
      },
      {
        "url": "https://api-v2.soundcloud.com/media/soundcloud:tracks:767454454/64568e31-dc65-456f-9bce-b70b7786aa8c/stream/hls",
        "preset": "opus_0_0",
        "duration": 188613,
        "snipped": false,
        "format": {
          "protocol": "hls",
          "mime_type": "audio/ogg; codecs=\"opus\""
        },
        "quality": "sq"
      }
    ]
  },
  "title": "No Sucker",
  "publisher_metadata": {
    "p_line_for_display": "℗ Quality Control Music/Motown Records; ℗ 2020 Quality Control Music, LLC, under exclusive license to UMG Recordings, Inc.",
    "artist": "Lil Baby, Moneybagg Yo",
    "isrc": "USUG12000051",
    "c_line": "2020 © 2020 Quality Control Music, LLC, under exclusive license to UMG Recordings, Inc.",
    "upc_or_ean": "00602508756467",
    "p_line": "Quality Control Music/Motown Records; ℗ 2020 Quality Control Music, LLC, under exclusive license to UMG Recordings, Inc.",
    "urn": "soundcloud:tracks:767454454",
    "explicit": true,
    "c_line_for_display": "© 2020 © 2020 Quality Control Music, LLC, under exclusive license to UMG Recordings, Inc.",
    "contains_music": true,
    "id": 767454454,
    "album_title": "My Turn",
    "release_title": "No Sucker"
  },
  "duration": 188656,
  "has_downloads_left": true,
  "artwork_url": "https://i1.sndcdn.com/artworks-ZGVqYXRIHZa0-0-large.jpg",
  "public": true,
  "streamable": true,
  "tag_list": "",
  "download_url": null,
  "genre": "Hip Hop",
  "id": 767454454,
  "reposts_count": 973,
  "state": "finished",
  "label_name": null,
  "last_modified": "2020-03-02T07:27:55Z",
  "commentable": true,
  "policy": "MONETIZE",
  "visuals": null,
  "kind": "track",
  "purchase_url": null,
  "sharing": "public",
  "uri": "https://api.soundcloud.com/tracks/767454454",
  "secret_token": null,
  "download_count": 0,
  "likes_count": 29796,
  "urn": "soundcloud:tracks:767454454",
  "license": "all-rights-reserved",
  "purchase_title": null,
  "display_date": "2020-02-28T05:00:00Z",
  "embeddable_by": "all",
  "release_date": "2020-02-28T00:00:00Z",
  "user_id": 300932089,
  "monetization_model": "AD_SUPPORTED",
  "waveform_url": "https://wave.sndcdn.com/Dm6SZyehWJNK_m.json",
  "permalink": "no-sucker",
  "permalink_url": "https://soundcloud.com/lil-baby-4pf/no-sucker",
  "user": {
    "avatar_url": "https://i1.sndcdn.com/avatars-000752893249-x8kvo7-large.jpg",
    "first_name": "Lil",
    "full_name": "Lil Baby",
    "id": 300932089,
    "kind": "user",
    "last_modified": "2020-02-28T06:06:12Z",
    "last_name": "Baby",
    "permalink": "lil-baby-4pf",
    "permalink_url": "https://soundcloud.com/lil-baby-4pf",
    "uri": "https://api.soundcloud.com/users/300932089",
    "urn": "soundcloud:users:300932089",
    "username": "Lil Baby",
    "verified": false,
    "city": null,
    "country_code": null
  },
  "playback_count": 525711
}

Currently we don't support these. I see that there's a getHlsUrl() function in NewPipeExtractor, but it returns a String, not a List<String>, so we couldn't return both URLs (yet). I was also wondering whether NewPipe already supports HLS. ExoPlayer does.

@TobiGr

Edit: HLS and DASH seem to be only supported for live streams in NewPipe.

Metadata

Metadata

Assignees

No one assigned

    Labels

    SoundCloudService, https://soundcloud.com/enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions