package arn import ( "errors" "regexp" ) var youtubeIDRegex = regexp.MustCompile(`youtu(?:.*\/v\/|.*v=|\.be\/)([A-Za-z0-9_-]{11})`) // GetYoutubeMedia returns an ExternalMedia object for the given Youtube link. func GetYoutubeMedia(url string) (*ExternalMedia, error) { matches := youtubeIDRegex.FindStringSubmatch(url) if len(matches) < 2 { return nil, errors.New("Invalid Youtube URL") } videoID := matches[1] media := &ExternalMedia{ Service: "Youtube", ServiceID: videoID, } return media, nil }