blob: aa41fa79a3dd84ddb79749ac9f5f6d605b7628d3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
package types
type SourceType string
const (
YouTube SourceType = "youtube"
Spotify SourceType = "spotify"
)
type MusicSearchResult struct {
Title string
Artist string
URL string
ID string
Duration string
Thumbnail string
SourceType SourceType
}
type SpotifySearchResponse struct {
Tracks struct {
Items []struct {
ID string `json:"id"`
Name string `json:"name"`
Artists []struct {
Name string `json:"name"`
} `json:"artists"`
Album struct {
Images []struct {
URL string `json:"url"`
} `json:"images"`
} `json:"album"`
DurationMs int `json:"duration_ms"`
ExternalUrls struct {
Spotify string `json:"spotify"`
} `json:"external_urls"`
} `json:"items"`
} `json:"tracks"`
}
type YouTubeSearchResponse struct {
Items []struct {
ID struct {
VideoID string `json:"videoId"`
} `json:"id"`
Snippet struct {
Title string `json:"title"`
ChannelTitle string `json:"channelTitle"`
Thumbnails struct {
Default struct {
URL string `json:"url"`
} `json:"default"`
High struct {
URL string `json:"url"`
} `json:"high"`
} `json:"thumbnails"`
} `json:"snippet"`
} `json:"items"`
}
|