Backstage Blog

RSS logo

You're browsing posts of the category Announcements

Prometheus has come of age – a reflection on the development of an open-source project

July 19th, 2016 by Bjorn "Beorn" Rabenstein

On Monday this week, the Prometheus authors have released version 1.0.0 of the central component of the Prometheus monitoring and alerting system, the Prometheus server. (Other components will follow suit over the next months.) This is a major milestone for the project. Read more about it on the Prometheus blog, and check out the announcement of the CNCF, which has recently accepted Prometheus as a hosted project.

Read more…

Building radio stations at SoundCloud

July 5th, 2016 by Nicola Bortignon

Over the last 100 years we have dialed into radio stations at home, on the road, or in the office to access a curated mix of top hits delivered to us by our favorite DJ. With more and more of our daily activities taking place online, we find our source of music now comes from a mix of our mobile phones, our desktop computers and the radio - and is available to us whenever we need it. The amount of music available today is endless. The music scene has never been so vibrant. A proliferation of production tools at low cost and the ease at which an artist can share their sounds, gives everyone the opportunity to share their work at any time, with only a few clicks.

Keeping this in mind, we set out to determine: How can we bring a radio like experience to SoundCloud that would enable you to tune-in and lean back?

Read more…

Can a machine surprise you? We believe so.

June 21st, 2016 by Nicola Bortignon

With more than 125 million tracks from over 12 million creators heard each month on our platform, SoundCloud is uniquely positioned to offer listeners a full spectrum of music discovery.

Classic hits, the latest releases, gems from underground talent and the best of what’s up-and-coming – all in one place.

How can you make great content discoverable and available at ease? How can you create a unique experience for every single user?

Read more…

Playlist search returns only compact representations as of July 15, 2016

May 13th, 2016 by Max Jakob

We previously introduced new playlist representations. The compact representation returns only the playlist itself without any of the tracks. For most users, this is preferable – the compact representation significantly reduces the size of the JSON payload for large playlists and provides faster API response times.

Beginning July 15, 2016, all queries using the q parameter will only return this compact representation for playlists. Other playlist representations will no longer be available when using the q

Read more…

Introducing SoundCloud JavaScript SDK 3.0.0

October 1st, 2015 by Jan Monschke

We are happy to announce version 3.0.0 of our SoundCloud JavaScript SDK.

The new SDK improves stream security and content uploading functionality, and modernizes the technology stack.

Version 3 of the SoundCloud JavaScript SDK is a major update and is not backwards compatible. That said, the changes that you need to make your web app work with the new SDK are easy to implement. Please refer to Migrating to JavaScript SDK 3.0.0 to upgrade.

ECMAScript 2015 and CommonJS

The original version of the…

Read more…

Introducing Rate Limits

June 16th, 2015 by Dean Hudson

At SoundCloud, we’re building an ecosystem where creativity thrives. Developers are an important part of that ecosystem. We’re continually inspired by how you use the SoundCloud API to support creators and listeners in innovative ways.

But as the ecosystem has grown, we’re dealing with an increasing number of applications that abuse creator content by violating our developer Terms of Use. To help control this type of behaviour, we’re introducing a daily rate limit on API play requests.

Beginning…

Read more…

New playlist representations

June 8th, 2015 by Erik Michaels-Ober

Requests for playlists have always included the full track objects contained within. This representation may be convenient for playlists with ten or twenty tracks but can cause problems for playlists that contain hundreds or thousands of tracks. Requesting such large playlists could result in requests that take a long time to respond and that eventually timeout.

Today, we introduce two new representations for the /playlists resource: compact and id.

If you add representation=compact to a playlist request, the request will return only…

Read more…

Apple's June 1 64-bit deadline

May 18th, 2015 by Erik Michaels-Ober

In October 2014, Apple announced that all submissions to the App Store must include 64-bit support by June 1, 2015. The SoundCloud API for Cocoa contains 32-bit dependencies and will not be updated, because it has been discontinued. Anyone using the SoundCloud API for Cocoa will need to will need to migrate away from it if they wish to update their app after June 1.

To ease this transition we have built a sample app that demonstrates how to authorize a user via OAuth using only built-in…

Read more…

Linked partitioning to replace offset-based pagination

February 2nd, 2015 by Erik Michaels-Ober

The SoundCloud API will be dropping support for offset-based pagination on March 2, 2015, in favor of linked partitioning.

To page through a JSON response, pass the linked_partitioning=1 parameter along with your request and it will return a collection, along with a next_href property if there are additional results. To fetch the next page of results, simply follow that URI. If the response does not contain a next_href property, you have reached the end of the results.

You can read more about linked partitioning in the Pagination section of our HTTP API Guide

Read more…

Prometheus: Monitoring at SoundCloud

January 26th, 2015 by Julius Volz, Björn Rabenstein

In previous blog posts, we discussed how SoundCloud has been moving towards a microservice architecture. Soon we had hundreds of services, with many thousand instances running and changing at the same time. With our existing monitoring set-up, mostly based on StatsD and Graphite, we ran into a number of serious limitations. What we really needed was a system with the following features:

  • A multi-dimensional data model, so that data can be sliced and diced at will, along dimensions like instance, service, endpoint, and method.
  • Operational simplicity, so that you can spin up a monitoring server where and when you want, even on your local workstation, without setting up a distributed storage backend or reconfiguring the world.
  • Scalable data collection and decentralized architecture, so that you can reliably monitor the many instances of your services, and independent teams can set up independent monitoring servers.
  • Finally, a powerful query language that leverages the data model for meaningful alerting (including easy silencing) and graphing (for dashboards and for ad-hoc exploration).

All of these features existed in various systems. However, we could not identify a system that combined them all until a colleague started an ambitious pet project in 2012 that aimed to do so. Shortly thereafter, we decided to develop it into SoundCloud’s monitoring system: Prometheus was born.

Read more…