Closed He3chai2 closed 2 years ago
Soundcloud doesn't return tracks of specified artist when JavaScript is disabled.
I currently generate RSS feeds for 2187 SoundCloud artists with Five Filter's Feed Generator. Now I was about to migrate them to RSSHub. I see 289 RSS feeds with different problems for each:
Some didn't have any tracks uploaded anymore, example ( vmkmusic or tatsuro-yamashita ) Would it be possible to create an empty feed so that as soon as the artists start uploading music again, the feed fills up?
Some changed their username Is it possible to use their user id instead of their usernames?
# https://soundcloud.com/virtual-riot -> userid: 1207292
$ curl -s "https://api.soundcloud.com/users/1207292/tracks?client_id=95f22ed54a5c297b1c41f72d713623ef" | jq '.[] | .permalink_url' "https://soundcloud.com/virtual-riot/virtual-riot-bossfight-afterparty" "https://soundcloud.com/virtual-riot/insides" "https://soundcloud.com/virtual-riot/iteration-interlude" "https://soundcloud.com/virtual-riot/goat" "https://soundcloud.com/virtual-riot/virtual-riot-hysteria" "https://soundcloud.com/virtual-riot/flutter-feat-madi" "https://soundcloud.com/virtual-riot/virtual-riot-self-checkout-demo" "https://soundcloud.com/virtual-riot/4-producers-1-sample-pn35a-virtual-riot-remix-free-download" "https://soundcloud.com/virtual-riot/zedd-clarity-sad-virtual-riot-remix-free-christmas-download" "https://soundcloud.com/virtual-riot/serum-presets-for-preset-junkies-demo-track-1"
https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/users/1207292
* And a lot of them didn't serve track list without JavaScript
This seems to be new behavior from SoundCloud. For example [this SC artists](https://soundcloud.com/stickybuds/tracks) uploaded a new track 8 days ago. I have this track in my feed reader (items will be cached forever, if seen once). If I now check the feed url directly, I see no items anymore.
Maybe the API could help here too?
Looks like API is the way to go.
@TonyRL This route has some strange behavior:
$ curl -v https://rsshub.app/soundcloud/tracks/halvsan
* Trying 2606:4700:20::681a:d57:443...
* Connected to rsshub.app (2606:4700:20::681a:d57) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/cert.pem
* CApath: none
* (304) (OUT), TLS handshake, Client hello (1):
* (304) (IN), TLS handshake, Server hello (2):
* (304) (IN), TLS handshake, Unknown (8):
* (304) (IN), TLS handshake, Certificate (11):
* (304) (IN), TLS handshake, CERT verify (15):
* (304) (IN), TLS handshake, Finished (20):
* (304) (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / AEAD-AES256-GCM-SHA384
* ALPN, server accepted to use h2
* Server certificate:
* subject: C=US; ST=California; L=San Francisco; O=Cloudflare, Inc.; CN=sni.cloudflaressl.com
* start date: Jun 27 00:00:00 2021 GMT
* expire date: Jun 26 23:59:59 2022 GMT
* subjectAltName: host "rsshub.app" matched cert's "rsshub.app"
* issuer: C=US; O=Cloudflare, Inc.; CN=Cloudflare Inc ECC CA-3
* SSL certificate verify ok.
* Using HTTP2, server supports multiplexing
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x7fcf8100bc00)
> GET /soundcloud/tracks/halvsan HTTP/2
> Host: rsshub.app
> user-agent: curl/7.79.1
> accept: */*
>
* Connection state changed (MAX_CONCURRENT_STREAMS == 256)!
< HTTP/2 302
< date: Sun, 22 May 2022 01:55:30 GMT
< location: https://google.com/404
< cache-control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
< expires: Thu, 01 Jan 1970 00:00:01 GMT
< expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
< report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=kTfuXP9sNj05MhCoQgv6Bq6Q3mZmdSCHaxDDES0x%2FxgspGGVGsNTjLrewyn6eqKBtUxxbXvMPE6x3s0CY8DpWLOuvqCv4z0X8m3eEM9SC2DA5cpcwVGTHPNVFDkQslnP4w%2BtAcvUUVg%3D"}],"group":"cf-nel","max_age":604800}
< nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
< server: cloudflare
< cf-ray: 70f1ee1089487da7-LAX
<
* Connection #0 to host rsshub.app left intact
I would suggest disable this route for now.
I would suggest disable this route for now.
Cross checked with self-hosted from Heroku, Vercel and my home. All of them can provide a RSS feed. Looks like there’s something wrong with demo instance.
I would suggest disable this route for now.
Cross checked with self-hosted from Heroku, Vercel and my home. All of them can provide a RSS feed. Looks like there’s something wrong with demo instance.
If it is working then we shall close the issue, adding a tag for future reference
This is caused by some weird settings on Cloudflare and has been fixed now.
Involved route
https://docs.rsshub.app/en/multimedia.html#soundcloud-tracks
What is expected?
Get RSS feed for soundcloud tracks of specified artist
What is actually happening?
Error - Self-depoyed env:
Error - rsshub.app
Self-deployed information
Additional info (logs errors etc)
# Not Working examples: https://rsshub.app/soundcloud/tracks/upsahlmusic https://rsshub.app/soundcloud/tracks/vena-cava
# Working example: https://rsshub.app/soundcloud/tracks/halvsan