Saya mencoba untuk menulis aplikasi asli reaksi yang akan mengalirkan beberapa lagu dari Soundcloud. Sebagai tes, saya telah bermain dengan API menggunakan python, dan saya dapat membuat permintaan untuk menyelesaikan url, menarik daftar putar / trek, dan semua yang saya butuhkan.
Dengan itu, ketika membuat permintaan ke stream_url dari setiap lagu yang diberikan, saya mendapatkan kesalahan 401.
Url saat ini dalam pertanyaan adalah: https://api.soundcloud.com/tracks/699691660/stream?client_id=PGBAyVqBYXvDBjeaz3kSsHAMnr1fndq1
Saya sudah mencobanya tanpa? Client_id ..., saya sudah mencoba mengganti? dengan &, saya sudah mencoba mendapatkan client_id lain, saya sudah mencobanya dengan allow_redirects sebagai benar dan salah, tetapi sepertinya tidak ada yang berhasil. Bantuan apa pun akan sangat dihargai.
Properti yang dapat dialirkan dari setiap trek adalah Benar, sehingga seharusnya tidak menjadi masalah izin.
Edit:
Setelah melakukan sedikit riset, saya menemukan solusi semi-sukses. Titik akhir / stream API masih tidak berfungsi, tetapi jika Anda mengubah titik akhir tujuan Anda menjadi http://feeds.soundcloud.com/users/soundcloud:users : /sounds.rss, itu akan memberi Anda umpan RSS yang (sebagian besar) sama dengan apa yang Anda dapatkan dengan menggunakan trek atau playlist endpoint API.
Tautan yang terkandung di dalamnya dapat dialirkan.
sumber
Jawaban:
Oke, saya pikir saya telah menemukan solusi umum yang akan bekerja untuk kebanyakan orang. Saya berharap itu lebih mudah, tetapi ini adalah hal paling sederhana yang saya temukan.
Gunakan API untuk menarik trek dari pengguna. Anda dapat menggunakan linked_partitioning dan properti next_href untuk mengumpulkan semuanya karena ada batas maksimum 200 trek per panggilan.
Dengan menggunakan data yang ditarik di JSON, Anda dapat menggunakan kunci permalink_url untuk mendapatkan hal yang sama dengan yang Anda ketik di browser.
Buat permintaan ke permalink_url dan akses HTML. Anda perlu melakukan parsing, tetapi url yang Anda inginkan akan menjadi sesuatu yang efeknya:
" https://api-v2.soundcloud.com/media/soundcloud:tracks:488625309/c0d9b93d-4a34-4ccf-8e16-7a87cfaa9f79/stream/progressive "
Anda mungkin bisa menggunakan regex untuk menguraikan ini dengan mudah.
Buat permintaan untuk menambahkan url ini? Client_id = ... dan itu akan memberi Anda BELUM url lain di json kembalinya.
Dengan menggunakan url yang dikembalikan dari langkah sebelumnya, Anda dapat menautkan langsung ke yang ada di browser, dan itu akan membawa Anda ke konten trek Anda. Saya memeriksa VLC dengan memasukkan tautan dan itu mengalir dengan benar.
Semoga ini membantu beberapa dari Anda keluar dengan perkembangan Anda.
sumber
Karena saya memiliki masalah yang sama, jawaban dari @Default memotivasi saya untuk mencari solusi. Tapi saya tidak mengerti solusinya dengan
permalink_url
langkah 2 dan 3. Solusi yang lebih mudah adalah:api-v2
titik akhir seperti ini:client_id
sebagai parameter kueri dan Anda mendapatkan URL lain dengan itu Anda dapat melakukan streaming / unduh trekPerhatikan bahwa
api-v2
itu masih belum umum dan permintaan dari klien Anda mungkin akan diblokir oleh CORS.sumber
Seperti yang disebutkan oleh @ user208685 solusinya bisa sedikit lebih sederhana dengan menggunakan SoundCloud API v2:
Catatan : Tautan ini hanya berlaku untuk waktu terbatas dan dapat dibuat ulang dengan mengulangi langkah 3. hingga 5.
Contoh dalam
node
(dengannode-fetch
):Untuk solusi serupa di Python, periksa masalah GitHub ini: https://github.com/soundcloud/soundcloud-python/issues/87
sumber