Какое-то время у меня в голове была идея - создать приложение на Электроне. Это часть моей попытки создавать приложения с помощью JavaScript на любой платформе, которая каким-либо образом может быть реализована: в браузере (daa), мобильном устройстве (React Native), сервере (NodeJS) и настольном компьютере (Electron).

Что я сделал с этой идеей? Ничего такого! Должно быть больше мотивации, чтобы заставить меня что-то делать, а не просто изучать новую технологию.

Однажды ночью моя жена пожаловалась мне, что ей нужно скачать аудио с YouTube, но она не хочет скачивать их по отдельности, а загружает целый плейлист. Поэтому я сказал ей: «Нет проблем! зачем у вас в доме девелопер, если не для таких случаев »? И я сделал то, что сделал бы каждый разработчик ... поискал в Goggle. Возможно, в Интернете полно таких приложений, но я не мог найти того, что мне понравилось бы. Итак, я вспомнил свою идею и знал, что напишу ее сам.

Прежде всего, я установил для себя несколько правил:

  1. Никаких шаблонов! Вообще! Все должно быть с нуля.
  2. Совместимость с открытым исходным кодом (Не только с открытым исходным кодом, но и дружественная), все это.
    Руководства« Как внести свой вклад не будет. Делайте вклад, как хотите! »
  3. CI-CD (travis-ci и appveyor), поэтому commit запустит сборку и тесты, а release развернет артефакты (windows, mac и ubuntu) в releases.
  4. Приложение будет распространяться на Электронном рынке приложений.
  5. Сервер никоим образом не будет задействован, весь процесс будет в приложении, поэтому использование в приложении не будет отслеживаться (за исключением, конечно, сети для самого YouTube). Это важно: приложение не будет отслеживать никакую активность, ни Google Analytics, ни что-то еще, ни какое-либо кеширование на сервере.
  6. В конечном итоге стек будет включать:
    - React и MobX, не потому, что это было необходимо, а потому, что я хотел попрактиковаться (React) и изучить (MobX).
    - Библиотека тестов - Jest.
    - Конечно, TypeScript.
    - Webpack - Я использовал его раньше, но хотел научиться создавать его с нуля, а не просто использовать шаблон.
  7. Бесплатно - без рекламы.
  8. Архитектура будет максимально простой - небольшие компоненты, чтобы люди могли легко понять и изучить.
  9. Скачивание непубличных видеороликов запрещено!
  10. Продолжает делать это для удовольствия! Никакого давления.

Шаг 1 - Начало проекта

  1. Откройте репозиторий Github с именем, о котором я очень скоро пожалею - ✓.
  2. Прочтите и примените Быстрый старт Electron - ✓.

Без ничего, кроме Electron и JavaScript, и с помощью двух пакетов:

* Https://github.com/CodeDotJS/youtube-playlist.
* https://github.com/ytb2mp3/youtube-mp3-downloader.

"Исходный код"

Короче говоря, он извлекает идентификаторы видео (youtube-playlist) и добавляет запрос на загрузку и конвертирует их в mp3 в очередь (youtube-mp3-downloader).

В следующих эпизодах сериала я буду придерживаться 10 правил. Быть в курсе!