class Mixtape::YoutubePlaylist

Constants

URL

Public Class Methods

new(songs) click to toggle source
# File lib/mixtape/youtube_playlist.rb, line 6
def initialize(songs)
  @songs = songs
end

Public Instance Methods

url() click to toggle source
# File lib/mixtape/youtube_playlist.rb, line 10
def url
  #TODO deal with imposible searches in each source before sending them to youtube
  #, until then i'll use compact and return less songs
  ids = @songs.pmap do |song|
    video_id(song)
  end.compact
  playlist_url ids
end

Private Instance Methods

playlist_url(video_ids) click to toggle source
# File lib/mixtape/youtube_playlist.rb, line 30
def playlist_url(video_ids)
  multiple_ids_url = URL + "/watch_videos?video_ids="
  multiple_ids_url + video_ids.join(",")
end
video_id(search) click to toggle source
# File lib/mixtape/youtube_playlist.rb, line 21
def video_id(search)
  search_query = search.gsub(/\s+/, "+")
  search_url = URL + "/results?search_query=" + search_query
  youtube_metainspector = MetaInspector.new(search_url)
  links = youtube_metainspector.links.raw
  video_link = links.detect { |link| link =~ /watch/ }
  video_link.gsub("/watch?v=","") unless video_link.nil?
end