мне нужно использовать api Spotify, на котором мой клиент должен иметь приложение-аппликатор, которое будет подключаться к определенному имени от имени зарегистрированного пользователя и выберет все имена плейлистов и их песни в этом списке воспроизведения и создаст txt-файл этих плейлист, вот и все. пожалуйста, помогите мне, где я должен начать, мне нужно сделать это с помощью php.
благодаря
Как упоминалось в комментариях, существует много кода, окружающих использование неудачного не открытого источника libspotify. Приведенные примеры API, тщательно опуская способ перебора всех плейлистов.
Вы упомянули, что хотите что-то, что может подключиться к spotify (онлайн-API, безусловно, то, что Spotify хочет, чтобы все использовали), но я уверен, что то же самое можно сделать офлайн. Как вы сами сказали, файлы могут быть скопированы.
Находится в:
~ / .config / Spotify / Users / имя /
или
{USER_APP_DATA} / Spotify / Users / {USER_ID}
Возможно, вы уже можете сказать, что я не поклонник частных библиотек, ограничивающих доступ к тому, что я могу или не могу сделать. Поэтому я придумал простую программу, которая может печатать имена всех сохраненных плейлистов. Это достаточно полезно, потому что я обычно добавляю один альбом в список воспроизведения.
Я уверен, что он может быть развит дальше, чтобы включить отдельные треки.
#include <fstream> #include <iostream> #include <sstream> #include <vector> int main(int argc, char *argv[]) { std::vector<char> vbuf; unsigned int len; std::vector<char>::iterator bpos,dpos,epos; std::ifstream in("playlist.bnk", std::ios::in|std::ios::binary); if (in) { in.seekg(0,std::ios::end); len = in.tellg(); vbuf.resize(len); in.seekg(0,std::ios::beg); in.read(&vbuf[0],len); for(std::vector<char>::iterator it = vbuf.begin(); it != vbuf.end(); ++it) { if (*it == (char)0x02 && *(it+1) == (char)0x09) { bpos = it+3; } if (*it == (char)0xE2 && *(it+1) == (char)0x80 && *(it+2) == (char)0x93 && bpos != vbuf.end()) { dpos = it; } if (*it == (char)0x18 && *(it+1) == (char)0x01 && *(it+2) == (char)0x19 && dpos != vbuf.end()) { epos = it; } if (bpos != vbuf.end() && dpos != vbuf.end() && epos != vbuf.end()) { for(std::vector<char>::iterator it2 = bpos; it2 < dpos; ++it2) { std::cout << *it2; } for(std::vector<char>::iterator it2 = dpos; it2 < epos; ++it2) { std::cout << *it2; } std::cout << std::endl; bpos = vbuf.end(); dpos = vbuf.end(); epos = vbuf.end(); } } } }
Проблема была решена путем резервного копирования файла playlist.bnk. который содержит файлы для списков воспроизведения