Скачивание музыки из Вконтакте по альбомам — VKontakte Music Backuper

Vkontakte Music Backuper

Те, кому интересно конечное приложение для скачивания музыки из Вконтакте по альбомам, могут скачать его по ссылке. Для запуска требуется .Net Framework 3.5 — можно скачать с сайта Microsoft.com. Пользоваться очень просто — ввести электронную почту, пароль, авторизоваться. Если нужно, изменить ID пользователя для которого показан список аудио. Далее поставить галочки на альбомах, которые нужно скачать и нажать кнопку «скачать альбомы». Можно качать отдельные композиции. С теми же, кого интересуют буквы и реализация, продолжаем. Пользователи Linux и Mac Os могут воспользоваться приложением с помощью проекта Mono, в Ubuntu мне было достаточно выполнить полную установку Mono командой sudo apt-get install mono-complete. Далее можно запускать программу из консоли командой mono VkontakteMusicBackuper.exe либо обычным двойным кликом. Кроме того,можно воспользоваться сервисом Muzico.biz, чтобы слушать и скачивать и записи прямо с сайта.

Великая и могучая социальная сеть Вконтакте  давно приобрела славу хостинга аудио-записей. Судя по количеству людей, у которых список музыки составляют сотни и тысячи композиций, выкачивание музыки является довольно насущной проблемой.

Конечно же, ссылки на mp3-файлы доступны в исходном коде страницы. Кроме того, есть расширения в виде букмарклетов, такие как savefrom.net, которые отображают ссылку на скачивание прямо при воспроизведении музыки или видео. Существует очень удобное приложение для поиска и скачивания музыки из вконтакте под названием VKMusic. Хоть там и заявлена поддержка альбомов, те альбомы, что создает сам пользователь скачать нельзя.

Поэтому пишем свой велосипед. Знания о том на C# сделать скачивание файлов по http, парсить html  рано или поздно пригодятся. Правильнее было бы использовать Вконтакте API, но там все равно тоже нет возможности получения альбомов.

1. Авторизация

При авторизации пользователя в ответе возвращается ID пользователя, а так же remixsid — ключ, хранящийся в cookies браузера и передаваемый при последующих запросах к сайту. Повторяем авторизацию Вконтакте:

 public class VKUserInfo
  {
    public String SID { get; set; }
    public int UserID { get; set; }
  }

  public static class VKUtils
  {
    /// <summary> Авторизация к Vkontakte.ru с получением id и SID пользователя </summary>
    public static VKUserInfo LoginToVkontakte(String email, String password)
    {
      //создаем запрос
      HttpWebRequest wrGETURL = (HttpWebRequest)WebRequest.Create("http://vkontakte.ru/login.php?m=1&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;email=" + email + ";pass=" + password);

      //Запрещаем редирект
      wrGETURL.AllowAutoRedirect = false;
      //Выставляем таймаут
      wrGETURL.Timeout = 100000;

      //получаем весь ответ
      HttpWebResponse myHttpWebResponse = (HttpWebResponse)wrGETURL.GetResponse();

      //получаем Headers,пришедшие в ответе
      string headers = myHttpWebResponse.Headers.ToString();

      //записываем ответ в поток
      StreamReader myStreamReadermy = new StreamReader(myHttpWebResponse.GetResponseStream(), Encoding.GetEncoding(1251));
      //получаем строку с ответом
      string page = myStreamReadermy.ReadToEnd();

      //это регулярное выражение,которое выдирает из переменной headers(а ее мы получили выше) значение sid
      Regex sidregex = new Regex("sid=([a-z0-9]+); exp");
      Match ssid = sidregex.Match(headers);
      String sid = ssid.Groups[1].Value;

      //Получение ID пользователя
      int id = 0;
      String location = myHttpWebResponse.Headers["Location"];
      if ( (location != null ) &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp; (location.Length>3))
      {
        location = location.Substring(3);
        Int32.TryParse(location, out id);
      }

      VKUserInfo info = new VKUserInfo(){ SID =  sid, UserID  = id};
      return info;
    }
}

2.Получение списка аудио-записей

2.1 Прямой разбор HTML-страниц

Первая мысль была парсить непосредственно страницу с аудио. Все было бы хорошо, если бы повсеместно внедренное изобилие AJAX и просто JavaScript. При просмотре страницы с аудио есть список аудио-записей, хранящийся в объекте cur.audioList, по которому формируется вывод. Записи в этом объекте, конечно хранятся удобно по альбомам, но без интерпретации JavaScript способов получить такой же список я не знаю. Поэтому переходим к следующему пункту.

2.2 Разбор специальных запросов

Выбираем вкладку «Сеть» в FireBug и открываем страницу с аудиозаписями. В глаза бросается POST запрос к адресу vk.com/audio c примерно таким содержимым (в конце id пользователя)

act=load_audios_silent&al=1&edit=0&gid=0&id=1

 public static String PostRequest(String url, Cookie sidCookie)
    {
      //создаем запрос
      HttpWebRequest wrPOSTURL = (HttpWebRequest)System.Net.WebRequest.Create(url);
      wrPOSTURL.Method = "Post";
      //wrGETURL.Headers.Add(cook.ToString());
      wrPOSTURL.Headers["Cookie"] = sidCookie.ToString();

      HttpWebResponse myHttpWebResponse = (HttpWebResponse)wrPOSTURL.GetResponse();

      StreamReader myStreamReadermy = new StreamReader(myHttpWebResponse.GetResponseStream(), Encoding.GetEncoding(1251));
      string page = myStreamReadermy.ReadToEnd();

      return page;
    }


В ответе есть кусок с примерно таким содержанием:
{«all»:[

[‘1′,’111975538′,’http://cs4606.vk.com/u86478002/audio/9a974e71ebce.mp3′,’177′,’2:57′,’The Daydream’,’Wedding Day’,’0′,’16634864′,’0′],
[‘1′,’111975520′,’http://cs4523.vk.com/u715254/audio/45f926acea24.mp3′,’263′,’4:23′,’Radio Monte Carlo (105.9 fm)’,’And I just want you’,’0′,’16634867′,’0′]
]}

Здесь первая единичка — id пользователя, числа 16634864 и 16634867 — идентификаторы альбомов, которые описаны после аудиозаписей.

По поводу альбомов есть один момент, который стоит упомянуть. По простоте душевной, думал, что можно одну и ту же песню класть в несколько альбомов. На самом же деле, при добавлении песни в альбом, она удаляется из предыдущего. Каждая песня хранится только в одном альбоме.

3. Скачивание mp3-файлов

Осталось сделать скачивание mp3-файлов из Вконтакте по уже полученным ссылкам. Очень простое решение без возобновления загрузки, при ошибке скачивания файла он просто пропускается. Ниже — обработчик DoWork для BackGroundWorker

 private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
    {

      try
      {
        List<song> current_list = songs_to_download.ToList();
        Song current = null;
        for (int i = 0; i < current_list.Count; i++)
        {
          try
          {
            current = current_list&#91;i&#93;;
            // the URL to download the file from
            string sUrlToReadFileFrom = current.DownloadURL;

            // the path to write the file to
            string sFilePathToWriteFileTo = MusicDownloader.GetPath(current, albums, txtDirOut.Text, cbAlbumCatalog.Checked, cbAuthorCatalogs.Checked, CbTranslit.Checked);


            // first, we need to get the exact size (in bytes) of the file we are downloading
            Uri url = new Uri(sUrlToReadFileFrom);
            System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
            //
            if (cook != null)
            {
              request.Headers&#91;"Cookie"&#93; = cook.ToString();
            }

            //
            System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();
            response.Close();
            // gets the size of the file in bytes
            Int64 iSize = response.ContentLength;

            // keeps track of the total bytes downloaded so we can update the progress bar
            Int64 iRunningByteTotal = 0;

            // use the webclient object to download the file
            using (System.Net.WebClient client = new System.Net.WebClient())
            {
              // open the file at the remote URL for reading
              using (System.IO.Stream streamRemote = client.OpenRead(new Uri(sUrlToReadFileFrom)))
              {
                // using the FileStream object, we can write the downloaded bytes to the file system
                using (Stream streamLocal = new FileStream(sFilePathToWriteFileTo, FileMode.Create, FileAccess.Write, FileShare.None))
                {
                  // loop the stream and get the file into the byte buffer
                  int iByteSize = 0;
                  byte&#91;&#93; byteBuffer = new byte&#91;iSize&#93;;
                  while ((iByteSize = streamRemote.Read(byteBuffer, 0, byteBuffer.Length)) > 0)
                  {
                    // write the bytes to the file system at the file path specified
                    streamLocal.Write(byteBuffer, 0, iByteSize);
                    streamLocal.Flush();//
                    iRunningByteTotal += iByteSize;

                    // calculate the progress out of a base "100"
                    double dIndex = (double)(iRunningByteTotal);
                    double dTotal = (double)byteBuffer.Length;
                    double dProgressPercentage = (dIndex / dTotal);
                    int iProgressPercentage = (int)(dProgressPercentage * 100);

                    // update the progress bar
                    int iTotalPercentage = (int)((double)i / current_list.Count * 100);
                    backgroundWorker1.ReportProgress(iTotalPercentage, new DownloadState()
                    {
                      SongName = current.FileNameForSave,
                      SongPercent = iProgressPercentage,
                      TotalCount = current_list.Count,
                      index = i
                    });
                  }

                  // clean up the file stream
                  streamLocal.Close();
                }

                // close the connection to the remote server
                streamRemote.Close();
              }
            }
          }
          catch (Exception exc)
          {
            AddLog("Файл "+ current.FileNameForSave + " Ошибка:" + exc.Message);
          }

        }
        backgroundWorker1.ReportProgress(100, new DownloadState() { SongName = "Скачивание завершено", SongPercent = 100 });
      }
      catch (Exception exc)
      {
        ShowException(exc);
        backgroundWorker1.ReportProgress(0, new DownloadState() { SongName = "Ошибка при скачивании", SongPercent = 0 });
      }
    }

4. Необходимые мелочи

Если сохранять файлы просто образуя путь по имени альбома, исполнителю и названию композиции, возникают следующие проблемы:

4.1. Устранение недопустимых символов в именах файлов

Не все символы одинаково полезны, поэтому при генерации имени файла, кавычки я заменяю на апострофы, а все остальные недопустимые символы — на символ подчеркивания.

4.2.Транслитерация имен файлов

Галочка в приложении по умолчанию отключена, но если кто-то не хочет, имена файлов могут транслитерироваться в латиницу.

4.3.Пропуск закачанных файлов

Если опция включена, то если есть файл на диске уже есть и его размер совпадает с размером файла на сервере, файл скачиваться еще раз не будет.

Заключение

Все, таким инструментом уже можно пользоваться. Конечно же, необходим полноценный менеджер загрузки, здесь нет поддержки proxy-серверов и много-много других кошерных вещей. Если приложение будет востребовано, можно и дописать, пока же этих возможностей хватает.

Следует помнить, что использование подобных инструментов приводит к нарушению пользовательского соглашения ВКонтакте.

Пункт 5.3.9(запрещается). использовать без специального на то разрешения Администрации Сайта автоматизированные скрипты (программы) для сбора информации на Сайте и(или) взаимодействия с Сайтом и его сервисами

Приятного прослушивания!

[audio:http://yahnev.ru/music/Radio%20MonteCarlo%20(105.9%20fm)%20-%20And%20I%20just%20want%20you.mp3]

Скачать исходный код приложения
Ссылки по теме:


Комментарии:

Скачивание музыки из Вконтакте по альбомам — VKontakte Music Backuper: 144 комментария

    1. Не знаток Mono, по идее здесь нет причин, которые могут помешать запуску под Mono, используется чистый .Net Framework. Mono Migration Analyzer не выдает ошибок. Исходники доступны, сам я вряд ли найду время экспериментировать с Linux. Вы уверены, что все правильно делаете? Другие программы .Net запускаются?

  1. жаль что нет функции докачки. прерывалось уже три раза, и приходится начинать заново. а у меня не безлимит, и это напряг. если был бы анализ, просмотрела прога что это уже скачено, и начала бы с места разрыва, межет перезаписав только файл на котором произошёл разрыв. было бы удобно.
    но, всё равно спасибо за прогу, полезная. но требует доработки.

  2. Пользовался программой нормально, а теперь перестала авторизовываться, может быть это связанно с изменением доменного имени?

    1. Скорость не низкая, а точно такая же, как и при скачивании из браузера(в один поток). Просто некоторые отдельно взятые файлы могут на какое-либо время пропадать, либо, действительно, скачиваться очень и очень медленно.

  3. Огромное спасибо, вы мне реально очень помогли своей программой.
    Мне как раз нужно было удалить страницу вконтакте, но хотелось забрать музыку с собой 🙂
    Буквально за пару кликов через гугл я нашел вашу программу и за 10 минут скачал все 192 любимые композиции. Реально.
    Большое спасибо.

  4. Наконец-то ее сделали!!! Очень необходимая программа для меня!!! Спасибо 🙂

  5. Ну же, умельцы, соберите под Linux, люди будут благодарны, нет не одной нативной проги =( А ставить wine — моветон.

    Автору респект за прогу и исходники.

    1. Программа успешно скачивает музыку с помощью Mono — всего лишь одна команда для установки(смотрите обновленное начало поста). Если вами движут только религиозные причины, то действительно стоит искать умельцев 🙂

  6. Спасибо большое, крутая прога, поставь кнопки соц. сетей, что бы тебя можно было лайкнуть, и комменты из ВК повесь.)

    1. Перепроверил, авторизация работает. Просто не поддерживаются альтернативные способы задания логина — можно вводить только e-mail.

  7. Спасибо Вам огромное! Давно искала такую программу, совершенно не хотелось скачивать две тысячи песен вручную. Выручили 🙂

  8. Видимо не выходит нормально авторизоваться пишет «авторизация выполнена id0»
    Что я мог сделать не так, и как это победить?
    P.S. дот нет установил. пробовал на хп и на вин7.

    1. Да, действительно, надо исправить процедуру проверки авторизации, при неправильном пароле выдает авторизацию с id 0.

      1. добавьте в описание программы ,пожалуйста, инфу о том, что пароль не должен содержать русских букв)

  9. Человечище, СПАСИБО! Рекламы у тебя на сайте не нашёл я бы неделю щелкал)). а пароль поменяю, мало ли)

  10. помогите пожалуйста, у меня выскакивает id 0, но в пароле у меня нет русских букв

    1. Наталья, в программе поддерживается только авторизация по e-mail, попробуйте ввести адрес почты, а не логин, программа работает, я проверил

    1. Это скорее не «баг, а фича» при обновлении программы сделаю опцию пропуска существующих файлов

    1. Вконтакте изменили авторизацию, сейчас программа исправлена, должно работать.

        1. В комментариях указывали на проблемы с русским паролем, возможно в этом дело

  11. сижу в линуксе через моно ввоожу логин и пасс и совтина вылетает как быть?

  12. А какая гарантия, что после того, как я авторизуюсь в Вашем приложении, с моей страницы не начнут отсылаться тонны спама?

    1. Специально для этого выложены исходники, те кто не доверяет, могут скачать бесплатную visual studio и скомпилировать программу, но судя по комментариям всех устраивает готовый вариант. Или всегда можно завести лишний аккаунт для таких целей.

  13. Спасибо, классная прога. А можно ли ее использовать скачивания музыки с других сайтов? И как?

  14. Отличная программа!
    А из групп, я так понял, музыку качать нельзя?
    Пробовал в боксу id пользователя скормить idгруппы, не прошло.

  15. Не удается авторизоваться! все сделала, как написано, ввожу e-mail, никаких русских букв нигде нет соответственно! в чем может быть беда?

    1. Проверил, программа работает. Попробуйте ввести пароль в блокноте или Microsoft Word , убедиться что вставленный пароль позволяет авторизоваться в браузере, а затем попробуйте вставить его в Vkontakte Music Backuper.

  16. спасибо за программу! напишите, пожалуйста, подробнее, как запкскать ее с помощью моно на Мак ОС. потому что через терминал мне пишет, что такой прогаммы у меня нет. «Cannot open assembly ‘VkontakteMusicBackuper.exe’: No such file or directory.»

    1. К сожалению, с Мак Осью нет возможности проверять, но должно работать с помощью установки Mono — в Ubuntu это делается командой sudo apt-get install mono-complete . Как установить Mono для Mac OS — думаю, стоит посмотреть на сайте проекта, возможно, что достаточно установить среду выполнения .

      1. Нет установить среду выполнения недостаточно, ибо провисает и выдает ошибки отрисовки интерфейса =(

  17. Не могу авторизоваться:(

    Пишет ошибку, видемо вк опять что-то изменили.
    «Длина не может быть меньше нуля
    Имя параметра: lenght»

    1. Разобрался кажется.
      У нас на работе фаерволл режет трафик от vk.com, но все работает через https.

      можно ли как-то реализовать работу программы через https:// ?

  18. Спасибо! Давно искал такую качалку. Хорошо бы добавить скачивание в несколько потоков.

  19. Не хочет работать, раньше все нормально было, а вот недавно хотел скачать пару альбомов, но не получилось(((
    Авторизацию проходит, а альбомы не отображает… есть только Unsorted и то пусто(

    1. затрудняюсь ответить, сейчас все работает. Если ввести ID друга такая же ситуация?

  20. Пожалуйста, добавьте поддержку https и логина по номеру телефона. Программа просто идеальна, но очень не хватает этих двух функций.

  21. Большое.
    Человеческое.
    СПАСИБО.

    Успехов Вам во всём, СЕЙЧАС прога очень спасает, когда в ВК начали удалять записи…

    1. Затруднясь сказать, в чем дело. Попробуйте авторизоваться по телефону, а не по e-mail(или наоборот), может быть в пароле есть какие-то символы не из латинских букв и цифр.

  22. Существует ли возможность скачивать альбомы сообществ, а не пользователей?

    1. Да, возможность есть, нужно просто копировать айди сообщества с дефисом до цифр.

  23. Заметил галочку для каталогов исполнителя только когда уже все закачалось, не очень актуально, особенно когда много исполнителей с одним треком, куда проще когда все сразу в одной папке, посему можно было бы прикрутить функцию сортировки по альбомам и наоборот, а вообще не задумывались о создании автоматической синхронизации ? Было бы просто супер!

    1. Программы с одной кнопкой, конечно, прекрасны, но как видите в данном случае наши пожелания расходятся :)я как правило включаю себе сортировку по исполнителям, но понимаю, что очень многим людям это будет лишним, и поэтому сделал галочку.

      Сейчас программа может пропускать уже скачанные файлы, поэтому особо проблем с синхронизацией не должно быть, можно просто запускать скачивание в один и тот же каталог. Или Вы хотите, чтобы она висела в трее и сама периодически докачивала новые записи?

      1. что-то вроде того, ведь есть же VK audio sync для андроида (правда не уверен, тот ли именно там функционал), не понимаю, почему нету аналога для десктопа ? То есть если я удаляю трек из контакта, он удаляется и локально и наоборот, такие запросы видел в интернете, но реализации не нашел.

        По теме: у меня в папке unsorted должно быть ~1700 треков, а скачано всего 612, много раз уже перезапускал, все равно прихожу — пишет скачивание завершено…

    1. Светлана, рядом с кнопкой скачивания альбомов есть кнопка «скачать выделенные композиции». В этом случае будут скачиваться те композиции, которые сейчас выделены в списке «аудио-записи» альбома. Чтобы выделить несколько композиций удерживайте клавишу Ctrl и кликайте левой кнопкой мыши на нужных строк. Если нужно выделить записи подряд кликните на первой записи, затем, удерживая Shift, кликните на последней.

  24. Так же, будьте добры ,подскажите, как скачать ту музыку,котоая не распределена по альбомам?

  25. Выражаю автору ОГРОМНЕЙШУЮ благодарность за великолепную программу! Использую сам и советую друзьям!

    Было бы здорово рационализировать переход по полям посредством нажатия кнопки TAB — сейчас переходы нелогичны, правильней после ввода логина и нажатия на таб — перейти в поле ввода пароля, далее — ID, далее — фокус на кнопку входа. Ну, и, соответственно, рационализировать таб в левой части программы.
    Это только пожелание, вдруг автор ещё поддерживает программу!
    Ещё раз спасибо!

  26. Пользовался программой пол года, но со вчерашнего дня работать перестала.
    Сначала грешил на фаервол, но и его отключение ничего не дало.
    Вот собственно сама ошибка:
    —————————————-
    System.Windows.Forms.resources
    Версия сборки: 2.0.0.0
    Версия Win32: 2.0.50727.5420 (Win7SP1.050727-5400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll
    —————————————-

    ************** Оперативная отладка (JIT) **************
    Для подключения оперативной (JIT) отладки файл .config данного
    приложения или компьютера (machine.config) должен иметь
    значение jitDebugging, установленное в секции system.windows.forms.
    Приложение также должно быть скомпилировано с включенной
    отладкой.

    Например:

    При включенной отладке JIT любое необрабатываемое исключение
    пересылается отладчику JIT, зарегистрированному на данном компьютере,
    вместо того чтобы обрабатываться данным диалоговым окном.

  27. Добрый вечер,очень полезная программка,но перестали отображаться альбомы,сейчас в списке альбомов есть только Unsorted но треков никаких нет. Что делать?

  28. Admin, когда авторизировался, альбом Unsorted пустой хотя там музыка была и я ранее уже её скачивал, В чем проблема ?(с правами админа пробывал )

  29. Будьте так добры, скажите ,пожалуйста, что не так?
    Вошла в программу, авторизацию выполнила, id ввела , а список аудио пуст*(

    1. Светлана, Вконтакте изменил отображение результатов аудио на сайте, необходима доработка программы.

  30. Безусловно, автору низкий поклон за создание нужной вещи!
    Но!
    Перестала программка работать… При авторизации показывает один альбом (он у меня пустой) с названием «Unsorted» и все.

    1. Необходимо изменить программу в соответствии с новым представлением сайта Вконтакте.

  31. Будьте так добры, скажите ,пожалуйста, ведутся ли работы по устранению неполадок(из-за представления сайта)? Если да то когда будет исправленная версия?

  32. Огромное спасибо! Классная прога, некоторое время назад пришлось отказаться от нее из-за проблем со входом, но теперь программа снова работает, еще раз спасибо автору за прогу. УРА ТОВАРИЩИ ПРОГА РАБОТАЕТ СНОВА!!! =)

  33. здравствуйте!

    ввожу почту, пароль, выдается сообщение «не удается авторизоваться».
    снова изменили процесс авторизации на сайте?

      1. странно. снова попробовал и получил то же сообщение.
        вводимые логинпароль точно правильные — копировал их.
        ОС win7.
        может развернутый лог можно получить? какие-то подробности проблемы авторизации

  34. Спасибо большое-большое за программу, очень помогает.
    Очень жду исправление авторизации.

  35. СПАСИБО ОГРОМНОЕ!!! нахваленная vkmusic не работает, а ваша программа супер! скачала 2000 аудиозаписей и счастлива)))

  36. Здравствуйте, не могли бы вы выложить исходный код последней версии или выслать мне на почту так как тот что здесь еще старый и не видит аудиозаписи… Буду очень благодарен!

  37. При вводе логина и пароля пишет «не дается авторезироваться»
    Ввожу все верно,раньше работала((

  38. у меня отображается только список моих ацдиозаписей, не могу сменить ID. Вставляю его в поле и ничего не происходит

  39. отличнвая программа, выручала много раз. но походу пора ее обновить: после логина, список песен получить не может((

    1. Да, Иван, исходник обновляется реже самой программы, на днях надеюсь обновить и программу и исходники.

  40. При включенной двухфакторной авторизации не принимает пароль приложения.

    1. Увы, поддержка двхухфакторной аутентификации не планируется. Как вариант — добавить ее самому к существующему исходному коду, либо пользоваться аккаунтом с простой аутентификацией.

  41. Добрый день! В первую очередь хочу поблагодарить за такую прекрасную и быструю программу! Есть только один вопрос, когда появляется «Ошибка:Слишком длинный путь или имя файла. Полное имя файла должно содержать меньше 260 знаков, а имя каталога — меньше 248 знаков.» Можно как-то сделать что бы фалы все равно скачивались, а лишние символы просто обрубались?

    1. Евгений, спасибо, полезный отзыв, надо будет сделать такую функцию в программе.

  42. Да, за программу спасибо автору.
    Вообще не наблюдалось ничего подобного из того, что здесь комментировали люди.
    Скорость превосходная вышла, примерно на один музыкальный трек было затрачено, как я прикинул, 5 секунд в среднем.
    Может у меня интернет соединение до чего хорошее.
    Менее чем за пол часа я скачал 750 аудио записей.
    Кулл!

  43. Нигде никогда не комментирую. Но решил оставить тут респект тебе создатель приложения. Это просто мега круто. +

  44. Заработало через какое-то время. Судя по всему, программа не умеет выводить капчу. Добавьте, пожалуйста, такую функцию. Спасибо!

  45. Не могу войти «не удалось авторизироваться» все правильно ввожу , несколько десятков раз пытался , если не трудно помогите решить проблему .

  46. По какой-то причине не получается авторизоваться. Хоть убей, но не могу понять в чем дело. Раньше все работало.

  47. Не авторизуется..
    + небольшая опечатка в тексте ошибки: если не авторизовавшись нажать, например, кнопку «обновить список» — выскакивает окно с текстом «снача авторизуйтесь!», но это уже, конечно, придирки =)

  48. Не авторизируется, уже давно не могу зайти в программу, подскажите в чём проблема !?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *