public function from($mixed)
{
if (is_a($mixed, Song::class)) {
return $this->fromSong($mixed);
} elseif (is_a($mixed, Collection::class)) {
return $this->fromMultipleSongs($mixed);
} elseif (is_a($mixed, Album::class)) {
return $this->fromAlbum($mixed);
} elseif (is_a($mixed, Artist::class)) {
return $this->fromArtist($mixed);
} elseif (is_a($mixed, Playlist::class)) {
return $this->fromPlaylist($mixed);
} else {
throw new Exception('Unsupport download type.');
}
}