go-kkbox
go-kkbox copied to clipboard
KKBOX Open API SDK for Golang.
go-kkbox
KKBOX Open API SDK for Golang.
Features
- [x] Tracks
- [x] /tracks/{track_id}
- [x] Albums
- [x] /albums/{album_id}
- [x] /albums/{album_id}/tracks
- [x] Artists
- [x] /artists/{artist_id}
- [x] /artists/{artist_id}/albums
- [x] /artists/{artist_id}/top-tracks
- [x] /artists/{artist_id}/related-artists
- [x] Shared Playlists
- [x] /shared-playlists/{playlist_id}
- [x] /shared-playlists/{playlist_id}/tracks
- [x] Featured Playlists
- [x] /featured-playlists
- [x] /featured-playlists/{playlist_id}
- [x] /featured-playlists/{playlist_id}/tracks
- [x] Featured Playlist Categories
- [x] /featured-playlist-categories
- [x] /featured-playlist-categories/{category_id}
- [x] /featured-playlist-categories/{category_id}/playlists
- [x] Mood Stations
- [x] /mood-stations
- [x] /mood-stations/{station_id}
- [x] Genre Stations
- [x] /genre-stations
- [x] /genre-stations/{station_id}
- [x] New Release Categories
- [x] /new-release-categories
- [x] /new-release-categories/{category_id}
- [x] /new-release-categories/{category_id}/albums
- [x] Search
- [x] /search
- [x] New Hits Playlists
- [x] /new-hits-playlists
- [x] /new-hits-playlists/{playlist_id}
- [x] /new-hits-playlists/{playlist_id}/tracks
- [x] Charts
- [x] /charts
- [x] /charts/{playlist_id}
- [x] /charts/{playlist_id}/tracks
Install
Install SDK library
$ go get -u github.com/appleboy/go-kkbox
Inital the KKBox client:
package main
import (
"log"
"os"
"github.com/appleboy/go-kkbox"
)
var clientID = os.Getenv("CLIENT_ID")
var clientSecret = os.Getenv("CLIENT_SECRET")
func main() {
if clientID == "" || clientSecret == "" {
log.Fatal("missing client id or secret")
}
k, err := kkbox.New(clientID, clientSecret)
if err != nil {
log.Fatal(err)
}
fmt.Println("====== kkbox client ======")
spew.Dump(k)
fmt.Println("====== kkbox end ======")
// fetch charts
charts, err := k.FetchCharts()
if err != nil {
fmt.Printf("%#v\n", err)
}
fmt.Printf("%#v\n", charts)
ranks, err := k.FetchChartPlayList("4nUZM-TY2aVxZ2xaA-")
if err != nil {
fmt.Printf("%#v\n", err)
}
spew.Dump(ranks)
tracks, err := k.FetchChartPlayListTrack("4nUZM-TY2aVxZ2xaA-", kkbox.Param{
PerPage: 1,
Page: 2,
Territory: "HK",
})
if err != nil {
fmt.Printf("%#v\n", err)
}
spew.Dump(tracks)
log.Println("length: ", len(tracks.Data))
}
Run program:
$ CLIENT_ID=xxx CLIENT_SECRET=xxx go run main.go