class AppleMusic::Song
Public Class Methods
find(id, **options)
click to toggle source
e.g. AppleMusic::Song.find(900032829)
developer.apple.com/documentation/applemusicapi/get_a_catalog_song
# File lib/apple_music/song.rb, line 9 def find(id, **options) storefront = Storefront.lookup(options.delete(:storefront)) response = AppleMusic.get("catalog/#{storefront}/songs/#{id}", options) Response.new(response.body).data.first end
get_collection_by_ids(ids, **options)
click to toggle source
e.g. AppleMusic::Song.get_collection_by_ids
([203709340, 201281527]) developer.apple.com/documentation/applemusicapi/get_multiple_catalog_songs_by_id
# File lib/apple_music/song.rb, line 29 def get_collection_by_ids(ids, **options) ids = ids.is_a?(Array) ? ids.join(',') : ids storefront = Storefront.lookup(options.delete(:storefront)) response = AppleMusic.get("catalog/#{storefront}/songs", options.merge(ids: ids)) Response.new(response.body).data end
get_collection_by_isrc(isrc, **options)
click to toggle source
e.g. AppleMusic::Song.get_collection_by_isrc
('NLH851300057') developer.apple.com/documentation/applemusicapi/get_multiple_catalog_songs_by_isrc
# File lib/apple_music/song.rb, line 38 def get_collection_by_isrc(isrc, **options) isrc = isrc.is_a?(Array) ? isrc.join(',') : isrc storefront = Storefront.lookup(options.delete(:storefront)) response = AppleMusic.get("catalog/#{storefront}/songs", options.merge('filter[isrc]': isrc)) Response.new(response.body).data end
get_relationship(id, relationship_type, **options)
click to toggle source
e.g. AppleMusic::Song.get_relationship
(900032829, :albums) developer.apple.com/documentation/applemusicapi/get_a_catalog_song_s_relationship_directly_by_name
# File lib/apple_music/song.rb, line 47 def get_relationship(id, relationship_type, **options) storefront = Storefront.lookup(options.delete(:storefront)) response = AppleMusic.get("catalog/#{storefront}/songs/#{id}/#{relationship_type}", options) Response.new(response.body).data end
list(**options)
click to toggle source
e.g. AppleMusic::Song.list
(ids: '203709340,201281527') e.g. AppleMusic::Song.list
(isrc: 'NLH851300057')
# File lib/apple_music/song.rb, line 17 def list(**options) if options[:ids] get_collection_by_ids(options.delete(:ids), options) elsif options[:isrc] get_collection_by_isrc(options.delete(:isrc), options) else raise ParameterMissing, 'required parameter :ids or :isrc is missing' end end
search(term, **options)
click to toggle source
# File lib/apple_music/song.rb, line 73 def search(term, **options) AppleMusic.search(**options.merge(term: term, types: :songs)).songs end