1
0
mirror of https://github.com/mxpv/podsync.git synced 2024-05-11 05:55:04 +00:00

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

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")

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) {