Почему приложения не могут удалять песни из Apple Music?
Фреймворк MusicKit от Apple, на котором построено каждое стороннее приложение для Apple Music, не имеет функции удаления песни из библиотеки или трека из плейлиста. Это не баг и не недосмотр, а осознанная граница. Apple разрешает приложениям читать библиотеку, добавлять в неё песни, создавать и заполнять плейлисты, ставить оценки вроде Нравится и Показывать меньше, и воспроизводить музыку. Она не разрешает ни одному стороннему приложению убрать, удалить или изменить то, что уже там есть. Это защищает тебя: баг в стороннем приложении не может тихо стереть годы твоей библиотеки. Это также значит, что каждое приложение, заявляющее о "чистке" или "организации" твоей музыки, на самом деле делает одни и те же три вещи: собирает песни в плейлист, регулирует оценки и ведёт свой собственный список того, что ты уже просмотрел. Само удаление всё ещё происходит в приложении Музыка от Apple, где ты подтверждаешь его сам.
Каждое приложение для "чистки библиотеки Apple Music" упирается в одну и ту же стену: у MusicKit, фреймворка, на котором построено каждое стороннее приложение, нет функции удаления. Это не особенность одного приложения, а ограничение, встроенное в сам API. Я столкнулся с этой стеной, создавая SongSweep, и она формирует всё, что делает приложение.
Это та страница, которую я хотел бы найти, когда начинал: что MusicKit реально позволяет делать приложению, почему Apple спроектировала это так, и что на самом деле означает "удаление", когда приложение заявляет, что предлагает его. Каким бы приложением для чистки ты ни пользовался, это объясняет, что происходит за свайпом.
Что реально может делать стороннее приложение в Apple Music?
MusicKit это фреймворк, который Apple даёт разработчикам для создания приложений вокруг Apple Music. Он намеренно узкий. Приложение может читать твою библиотеку (какие песни, альбомы и плейлисты у тебя есть), добавлять песни в библиотеку из каталога Apple Music, создавать новые плейлисты и добавлять в них песни, ставить оценку песне (Нравится или Показывать меньше) и воспроизводить песню тебе.
Это весь набор инструментов. Нет функции удаления, нет способа убрать песню из плейлиста после добавления, и ничего, что позволило бы приложению трогать метаданные вроде имени исполнителя или обложки альбома у трека, уже находящегося в библиотеке. Каждое приложение, которым ты пользовался для организации Apple Music, включая SongSweep, работает в рамках этих же разрешений.
| Действие | Разрешено приложениям | Что делает SongSweep |
|---|---|---|
| Читать твою библиотеку | Да | Показывает песни по месяцам, плейлистам, исполнителям или умным фильтрам |
| Добавить песню в библиотеку | Да | Не используется для чистки, зарезервировано для собственных функций приложения |
| Создать и заполнить плейлист | Да | Добавляет отсортированные песни в 'SongSweep - Sorted Out' |
| Поставить оценку (Нравится / Показывать меньше) | Да | Ставит Показывать меньше при сортировке, Нравится при нажатии на сердечко |
| Воспроизвести песню | Да | Проигрывает превью перед решением |
| Удалить песню из библиотеки | Нет | Не может, удаляешь вручную в приложении Музыка |
| Убрать песню из плейлиста | Нет | Не может убрать песни из 'Sorted Out' после добавления |
| Редактировать метаданные песни | Нет | Никогда не пытается |
Почему Apple спроектировала это именно так?
Это выглядит ограничивающим, пока не подумаешь об альтернативе. Если бы любое приложение из App Store могло удалять песни из твоей библиотеки, одно неудачное обновление или баг в процедуре сортировки могли бы стереть годы музыки, которую не вернуть. Apple держит эту кнопку в собственном приложении, где интерфейс, диалог подтверждения и поведение отмены находятся под её собственным контролем.
Это та же схема во всём iOS. Сторонние приложения могут читать твои фото и контакты, но только приложения Фото и Контакты позволяют массово удалить запись без прохождения через собственное подтверждение системы. Разрушительные действия остаются близко к данным, а не разбросаны по каждому приложению, которое их касается.
Для разработчика это слегка раздражает. Для тебя как пользователя это подстраховка, о которой не приходится думать, вплоть до дня, когда у стороннего приложения появится баг.
Так что же на самом деле делает каждое приложение для "чистки музыки"?
Учитывая эти ограничения, есть только один честный способ построить приложение для чистки библиотеки: собрать нежелательные песни в плейлист, который можно просмотреть, скорректировать оценку так, чтобы рекомендации Apple Music перестали их предлагать, и вести локальный список, чтобы приложение помнило, что ты уже решил.
Любое приложение, заявляющее что-то другое, либо описывает тот же механизм другими словами, либо просто очищает загрузки, что освобождает место, но оставляет песню в твоей библиотеке, а не удаляет её из библиотеки. Если скриншот показывает исчезновение песни после свайпа, присмотрись: она исчезла из вида этого приложения, а не из Apple Music.
Я предпочитаю рассказать точно, что происходит, чем позволить тебе предполагать, что кнопка "удалить" делает то, чего она делать не может.
Как SongSweep использует эти три разрешения?
Когда ты сортируешь песню в SongSweep, в фоне происходят три вещи. Песня добавляется в плейлист под названием 'SongSweep - Sorted Out'. Оценка Показывать меньше отправляется в Apple Music через API Apple Music, что говорит движку рекомендаций Apple показывать тебе меньше этой песни и похожих. И песня помечается как просмотренная внутри SongSweep, чтобы больше никогда не появиться в твоих сессиях свайпов.
Оставить работает иначе: свайп вправо ничего не меняет в Apple Music, он просто помечает песню как просмотренную, чтобы её больше не предлагали. Сохранить, свайп вверх, откладывает песню на потом. Ни одно из этих действий нельзя отменить постфактум, кроме Отмены на самом последнем свайпе, потому что ни одно из них не разрушительно, все они дополняющие: запись в плейлисте, оценка, локальный флаг.
Как реально удалить песни после этого?
После того как ты отсортировал партию песен, плейлист 'SongSweep - Sorted Out' это твой список для просмотра, а не корзина, которая опустошается сама. Удаление это осознанный шаг, который ты делаешь в самом приложении Музыка от Apple, именно там, где Apple хочет, чтобы это решение происходило.
Если хочешь очистить большую партию, не заходя в этот плейлист песня за песней, смотри статью как удалить песни Apple Music массово для самых быстрых путей на iPhone и Mac.
- Открой приложение Музыка и перейди в плейлист 'SongSweep - Sorted Out'
- На iPhone удерживай песню и нажми Удалить из медиатеки, по одной песне за раз
- На Mac выдели песни в плейлисте с Cmd или Shift, кликни правой кнопкой и выбери Удалить из медиатеки, затем подтверди
- Песни исчезают из твоей библиотеки, и любые скачанные файлы удаляются вместе с ними
На что обратить внимание, когда приложение заявляет об "удалении" песен
Ни одно приложение из App Store, включая SongSweep, не может удалить песню из твоей библиотеки Apple Music или убрать её из плейлиста без того, чтобы ты сам сделал последний шаг в приложении Музыка. Это жёсткое ограничение API Apple, а не отсутствующая функция.
Если ты пользуешься приложением и песня как будто исчезает из библиотеки после свайпа, посмотри, что реально произошло: почти всегда это означает, что песня была убрана из плейлиста, который это приложение создало и контролирует, а не из твоей библиотеки Apple Music. Проверь количество песен в библиотеке в приложении Музыка, прежде чем доверять такому заявлению.
Та же честность применима к искателям дубликатов, чистильщикам памяти или чему угодно, обещающему стирание библиотеки одним нажатием. Для полной картины того, что приложение для чистки может ответственно делать, начни со статьи как навести порядок в библиотеке Apple Music или вернись к SongSweep, чтобы попробовать поток свайпов самому.
Часто задаваемые вопросы
Может ли какое-нибудь приложение удалять песни из моей библиотеки Apple Music?
Нет. Фреймворк MusicKit от Apple не даёт ни одному стороннему приложению возможности удалить песню из библиотеки или убрать её из плейлиста. Этот шаг ты всегда делаешь сам в приложении Музыка.
Почему приложение может добавлять песни, но не удалять их?
Добавление песни или создание плейлиста дополняющее действие, оно ничего не может разрушить. Удаление разрушительно, и Apple держит эту способность внутри собственного приложения Музыка, чтобы багованное стороннее приложение не могло стереть твою библиотеку.
Удаляет ли "Показывать меньше" песню?
Нет, это лишь меняет то, что Apple Music тебе рекомендует. Песня остаётся ровно там, где была в библиотеке, Показывать меньше просто говорит алгоритму показывать тебе меньше её и похожей музыки.
Что произойдёт, если я никогда не удалю песни из своего плейлиста 'SongSweep - Sorted Out'?
Ничего плохого. Он остаётся обычным плейлистом в твоей библиотеке, к которому можно вернуться в любой момент. SongSweep не удаляет из него песни автоматически, так что он работает как постоянный список для просмотра, пока ты сам не удалишь песни в приложении Музыка.
Может ли Apple добавить API удаления для приложений в будущем?
Это возможно, Apple со временем обновляет MusicKit, но на момент написания функции удаления для сторонних приложений не существует. SongSweep воспользуется ей в тот день, когда она появится; до тех пор приложение Музыка единственное место для удаления песни.