diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2022-07-26 22:23:37 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2022-07-26 22:23:37 +0200 |
| commit | 33fd4442dd8297d02d284e82cf09bbfec01c705a (patch) | |
| tree | be15f36161859c24971f62b3f89c4effe9c1e349 /youtube.go | |
| parent | 7e15ad1d8af4ee27f6c1d31e7b1608e2d751c402 (diff) | |
| download | WRMS-33fd4442dd8297d02d284e82cf09bbfec01c705a.tar.gz WRMS-33fd4442dd8297d02d284e82cf09bbfec01c705a.zip | |
add youtube backend
Diffstat (limited to 'youtube.go')
| -rw-r--r-- | youtube.go | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/youtube.go b/youtube.go new file mode 100644 index 0000000..a3f92d7 --- /dev/null +++ b/youtube.go @@ -0,0 +1,36 @@ +package main + +import ( + "fmt" + "github.com/AnjanaMadu/YTSearch" + "log" +) + +type YoutubeBackend struct{} + +func (youtube *YoutubeBackend) Play(song *Song, player *Player) { + player.PlayUri("https://youtube.com/watch?v=" + song.Uri) +} + +func (youtube *YoutubeBackend) Search(pattern string) []Song { + results, err := ytsearch.Search(pattern) + if err != nil { + log.Fatal("Youtube search failed with", err) + } + + songs := []Song{} + for i, result := range results { + if i == 10 { + break + } + + if result.VideoId == "" { + continue + } + + songs = append(songs, NewSong(result.Title, "", "youtube", result.VideoId)) + } + + log.Println(fmt.Sprintf("youtube found %d matching videos", len(songs))) + return songs +} |
