Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
multiprogramm committed Jul 30, 2023
2 parents ba6e11c + 2054291 commit 20abd0d
Showing 1 changed file with 103 additions and 8 deletions.
111 changes: 103 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,109 @@
# ListDownloader
**ListDownloader** — консольное приложение для выкачивания файлов по списку ссылок с переименованием скачанных файлов. Поддерживает следующие форматы списков для выкачивания:
- m3u/m3u8 с именованием треков;
<details><summary>Пример</summary>
<p>

**playlist.m3u:**
```
#EXTM3U
#EXTINF:-1,Чайковский - Симфония №4
https://example.com/123/456/789/1011.mp3
#EXTINF:-1,Smile.dk - Doki doki
https://example.net/s/333/444/0bba235f.mp3
#EXTINF:-1,Марина Лаврова - За поворотом
https://example.com/000/song.mp3
```
Файлы в папке **playlist** после вызова `ListDownloader.exe "playlist.m3u"`:
```
Чайковский - Симфония №4.mp3
Smile.dk - Doki doki.mp3
Марина Лаврова - За поворотом.mp3
```
</p>
</details>
Консольное приложение для выкачивания файлов по списку ссылок с переименованием. Поддерживает следующие форматы списков для выкачивания:
- m3u/m3u8 с именованием треков. Идеально подходит для выкачивания m3u-файла, который формирует браузерное расширение SaveFrom.Net, создавалось по большей части для этого сценария.
- txt файл со ссылками, причём в качестве имени берётся первая непустая строка-нессылка, предшествующая ссылке.
- txt файл с именами и ссылками: в качестве имени файла берётся первая непустая строка-нессылка, предшествующая ссылке.
<details><summary>Пример</summary>
<p>
**links.txt:**
```
Чайковский - Симфония №4
https://example.com/123/456/789/1011.mp3
Фотография Москвы
https://example.com/00000/000001/00001.jpg
ListDownloader_1.0.3
https://github.com/multiprogramm/ListDownloader/releases/download/1.0.3/ListDownloader.exe
```
Файлы в папке **links** после вызова `ListDownloader.exe "links.txt"`:
```
Чайковский - Симфония №4.mp3
Фотография Москвы.jpg
ListDownloader_1.0.3.exe
```
</p>
</details>
## Типичный сценарий использования:
```
## Типичный сценарий использования
```Batchfile
ListDownloader.exe "playlist.m3u"
```
## Подробная информация о параметрах:
```
ListDownloader.exe /help
Можно либо вызвать из командной строки, либо просто в проводнике открыть файл *playlist.m3u* с помощью программы **ListDownloader.exe**. Файлы будут скачиваться в папку, которая будет иметь такое же имя, как и файл списка, и будет находиться рядом с этим файлом. Т.е. в данном примере рядом с файлом *playlist.m3u* будет создана (если её нет) папка *playlist*, куда и будут сохраняться файлы.


## Зачем создавалась программа
Расширение браузера SaveFrom.Net нормально выкачивает одиночные треки, подставляя название в диалог «Сохранить как». Но вот с выкачиванием целого плейлиста есть небольшая проблема. После процесса скана ссылок можно получить m3u-плейлист, внутри которого есть и корректные имена треков, и ссылки на эти треки, но вот программы, которая выкачала бы композиции с корректными именами, сохранёнными в плейлисте, я не нашёл, поэтому и написал **ListDownloader**.


## Информация о параметрах
Полный вызов такой:
```Batchfile
ListDownloader.exe [Attributes] "PathToLinksFile"
```
, где:
- *PathToLinksFile* — путь к файлу, из которого нужно извлечь ссылки для скачки и соответствующие имена файлов.
- *[Attributes]* — необязательные один или несколько параметров, которые можно задать:

#### -threads *NUM*
Количество одновременно качаемых файлов.

По умолчанию: 2.



#### -num
У результирующих файлов в имени будет добавлен префикс-номер.

По умолчанию: выключено.



#### -encoding *ENCODING*
Кодировка, в которой читаем файл-список.

По умолчанию: **utf-8**.
Возможные значения этого ключа можно посмотреть [вот тут](https://docs.microsoft.com/en-us/dotnet/api/system.text.encoding?view=netframework-4.5.2#list-of-encodings) в столбце «Name». И нужно, чтобы в столбце «.NET Framework support» стояла галочка, либо кодировка дополнительно поддерживалась ОС.


#### -timeupd *NUM*
Пауза в миллисекундах между обновлениями консоли.

По умолчанию: 200.



#### -dir "*PATH_TO_DIR*"
Папка, в которую будут сохраняться файлы.

По умолчанию: папка рядом с файлом со ссылками, с таким же именем.



#### -help
Показать справку по параметрам

0 comments on commit 20abd0d

Please sign in to comment.