8tracks

8tracks.com was an internet radio and social networking website revolving around the concept of streaming user-curated playlists consisting of at least 8 tracks.
It launched on 2008-08-08 and was going to shut down on 2019-12-31, but has since been acquired and restored. According to the shutdown announcement, it has 19.6 million users, 750k DJs, 3.5 million mixes, and 500k tags as of late December 2019.
== Shutdown announcement ==
On 2019-12-26, David Porter announced in a long blog post that the site was shutting down just five days later, on 2019-12-31:
To everything there is a season
8tracks has had a long run and its day in the sun. We’re sad to announce, however, that the company and its streaming service will wind down with the end of the decade, on December 31st, 2019.
<snip>
== Restoration ==
The site never went fully offline, and playlist data remained accessible. However, streaming of music was disabled, and the mobile apps were disabled and removed from their respective app stores. On April 19, 2020, it was announced that 8tracks had been acquired by a new company, BackBeat Inc., with plans to restore and improve the previous service, while making efforts to be more conservative with funds. Streaming had been re-enabled, the existing iOS app was to return to the App Store, and a new Android app was under development. However, the new company had still needed to renegotiate some music licenses. 
== Site structure ==
* There are mix sets, mixes, sets, tracks, songs, and possibly other things. The exact meaning of each hasn't been determined yet.
* The explore JSON endpoint is horribly broken, returning a totally different number of results as you paginate through, no results on later pages, and other issues. It is beyond useless for discovery. Total result counts are limited to 1000, regardless of how many items you request per page.
* Mixes have numeric IDs and can be discovered using https://8tracks.com/mixes/MIXID, which redirects to the mix page (using the username and mix slug).
* Adding a parameter format=jsonh returns JSON for many URLs (including the /mixes/MIXID one).
* Cover art and user avatar images are usually hosted on https://images.8tracks.com (in some cases the URL starts with http://8tracks.com/imgix_proxy/...)
* Some content (30 second song samples) has been found on http://cft.8tracks.com
Field 	Parameter Name	ID Number Range 	URL Example 	Redirects to 	JSON URL 	Note
Mix sets 	mix_sets 	 	https://8tracks.com/explore/SEARCH/OPTIONS 	 	https://8tracks.com/mix_sets/SEARCH:OPTIONS?page=100&per_page=10include=pagination%2Cmixes[likes_count%2Cuser%2Clength]%2Cdetails&format=jsonh 	Groups of mixes. SEARCH can be "all" or one or more tag names separated by "+" (spaces in tag names are replaced with underscores); in the JSON URL, tags are preceded with "tags:". OPTIONS can be "hot", "recent", or "popular" (default "hot"), optionally followed in the JSON URL by ":safe". (Including ":safe" returns slightly fewer reported total results.) Maximum JSON page size is 100. Cannot get more than 1000 total results here, regardless of page, page size, or offset.
Mixes 	mix_id 	1 to ~8.97m (highest known ~8962616). 	https://8tracks.com/mixes/MIXID 	JSON mix:web_path URL 	https://8tracks.com/mixes/MIXID?format=jsonh 	Mixes can be public, unlisted, or private. Attempting to access private mixes results in error "Oops! It looks like the mix you are trying to listen to is not currently available. In the meantime, check out these playlists." JSON contains URLs to both cover art and user avatar art. See JSON mix:cover_urls:original_imgix_url and mix:user:avatar_urls:original_imgix_url for high resolution image URL.
Mix Tracklists	 	same as mixes 	 	 	https://8tracks.com/mixes/MIXID/tracks_for_international.jsonh 	Contains the tracks in the mix. Sometimes the track count here does not match the track count shown in the web UI for the mix.
Users 	user_id 	1 to ~19.7m 	https://8tracks.com/users/USERID 	JSON user:web_path URL 	https://8tracks.com/users/USERID?format=jsonh 	See JSON user:avatar_urls:original_imgix_url for high resolution image URL.
Collections 	 	1 to ~90m (highest known=88624035, but most are automatically-generated "listen later" collections containing no mixes).	http://8tracks.com/collections/COLLECTIONID	JSON collection:web_path URL	https://8tracks.com/collections/COLLECTIONID?format=jsonh 	Pagination looks the same as mix_sets, but works past 1000 items.
Tracks 	track_id 	1 to ~346m (highest known=346609641) 	http://8tracks.com/tracks/NUMBER 	 	http://8tracks.com/tracks/NUMBER?format=jsonh 	Non-JSON URL shows more. For track_ids 46600641 and 346609641, result mentions Last.FM and includes a band image provided by Last.FM.
Songs 	 	1 to ~4.77m (highest known=4769309) 	http://8tracks.com/songs/NUMBER 	 	http://8tracks.com/songs/NUMBER?format=jsonh 	Related to tracks. These may be the building blocks used to create tracks. Non-JSON URL throws HTTP 302 and immediately redirects to a longer URL. 30 second samples are available here. E.g. http://8tracks.com/songs/4500000-serge-bulat-clouds-of-yesterday has sample http://cft.8tracks.com/tf/109/986/033/dQ9YRI.30s.m4a
Sets 	 	 	 	 	https://8tracks.com/sets/NUMBER/play?player=sm&include=track[faved%2Bannotation%2Bartist_details]&play_type=first_mix_start_click&mix_id=MIXID&smart_id=all%3Apopular%3Asafe&format=jsonh	Used for managing playback
== References ==