Handle YouTube URLs in format watch?v=XXX&list=YYY

This commit is contained in:
Maksym Pavlenko
2017-10-23 16:52:21 -07:00
parent f68bf4a06f
commit 7c256fd58f
2 changed files with 8 additions and 1 deletions
+2 -1
View File
@@ -54,7 +54,8 @@ func parseYoutubeURL(parsed *url.URL) (kind api.LinkType, id string, err error)
path := parsed.EscapedPath()
// https://www.youtube.com/playlist?list=PLCB9F975ECF01953C
if strings.HasPrefix(path, "/playlist") {
// https://www.youtube.com/watch?v=rbCbho7aLYw&list=PLMpEfaKcGjpWEgNtdnsvLX6LzQL0UC0EM
if strings.HasPrefix(path, "/playlist") || strings.HasPrefix(path, "/watch") {
kind = api.Playlist
id = parsed.Query().Get("list")
+6
View File
@@ -14,6 +14,12 @@ func TestParseYoutubeURL_Playlist(t *testing.T) {
require.NoError(t, err)
require.Equal(t, api.Playlist, kind)
require.Equal(t, "PLCB9F975ECF01953C", id)
link, _ = url.ParseRequestURI("https://www.youtube.com/watch?v=rbCbho7aLYw&list=PLMpEfaKcGjpWEgNtdnsvLX6LzQL0UC0EM")
kind, id, err = parseYoutubeURL(link)
require.NoError(t, err)
require.Equal(t, api.Playlist, kind)
require.Equal(t, "PLMpEfaKcGjpWEgNtdnsvLX6LzQL0UC0EM", id)
}
func TestParseYoutubeURL_Channel(t *testing.T) {