Getting description is easy, just use
var descriptionText: String? { get }
from MPMediaPlaylist
To get user defined image you have to use private API, here's an extension you can use to get image stored on disk, or get image's URL
:
extension MPMediaPlaylist {
/**
User selected image for playlist stored on disk.
*/
var userImage: UIImage? {
guard let catalog = value(forKey: "artworkCatalog") as? NSObject else {
return nil
}
let sel = NSSelectorFromString("bestImageFromDisk")
guard catalog.responds(to: sel),
let value = catalog.perform(sel)?.takeUnretainedValue(),
let image = value as? UIImage else {
return nil
}
return image
}
/**
URL for playlist's image.
*/
var imageUrl: URL? {
if let catalog = value(forKey: "artworkCatalog") as? NSObject,
let token = catalog.value(forKey: "token") as? NSObject,
let url = token.value(forKey: "availableArtworkToken") as? String {
return URL(string: "https://is2-ssl.mzstatic.com/image/thumb/\(url)/260x260cc.jpg")
}
return nil
}
}
As always, keep in mind that it can stop working anytime when Apple changes stuff under the hood or your app might get rejected from App Store.