Децентрализованный музыкальный проигрыватель

Всем привет. Хочу рассказать о проекте, над которым работаю в свободное время. Назвал я его «Патефон» и это полностью децентрализованный, распределённый, безсерверный, p2p музыкальный проигрыватель. Вот так выглядит актуальная версия программы:

Децентрализованный музыкальный проигрыватель P2P, Децентрализация, Музыка, Плеер, Халява, Open Source, Приложение, Длиннопост, Скриншот

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


Сами файлы композиций будут скачаны только в том случае, если вы добавите соответствующие треки в плейлист. Таким образом каждый участник сети хранит и раздаёт только ту музыку, которую слушает сам. При этом доступность и скорость скачивания музыки напрямую зависит от количества раздающих её пользователей (как в торрентах).


P2P-системы известны своей устойчивостью к цензуре, блокировкам и региональным ограничениям. «Патефон» не исключение, поэтому будет работать хоть за Великим Китайским Фаерволом, хоть в КНДР, хоть на Марсе (наверное, не проверял).


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


Всё описанное выше доступно в актуальной версии приложения. Дальше я расскажу о запланированных нововведениях.


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


Персональная фонотека - ещё одна из первостепенных задач. Пользователь сможет формировать коллекцию любимых альбомов. Такие альбомы будут загружаться на устройство пользователя в обязательном порядке и будут доступны для прослушивания в оффлайне. Также персональную фонотеку можно будет синхронизировать между устройствами при помощи Google Drive.


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


Кроме того, есть планы на «безголовую» версию приложения, которую можно будет запустить на домашнем медиасервере и подключаться к ней с остальных устройств через браузер. Если вы пользуетесь Plex, то знаете, насколько это удобно.


А теперь о недостатках:


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


- Каждый раз, когда вы расшарите альбом, он будет скопирован в специальную папку. Таким образом на каждый гигабайт опубликованной музыки будет занят ещё один гигабайт. Но это не навсегда.


- «Патефон» не обеспечивает анонимности пользователя. Не составит большого труда посмотреть, что вы раздаёте, и «вычислить вас по IP».


- Приложение всё ещё на ранней стадии развития, так что если словите баг - не удивляйтесь а смело репортите issue на GitHub.


- - - - - - - - - - - - - - -


Вот и всё. Если проект вас заинтересовал, то добро пожаловать на:


Сайт приложения

Твиттер

GitHub


Актуальные версии программы доступны как на сайте, так и на GitHub. Есть сборки для Mac, Linux и Windows.


- - - - - - - - - - - - - - -


Технические детали


«Патефон» использует современный протокол распределённого обмена данными IPFS («МежПланетарная Файловая Система»). Если вы смотрели «Кремниевую долину», то что-то очень похожее разрабатывают главные герои последние два сезона.


Само приложение написано на Electron.js — популярном кроссплатформенном фреймворке для создания десктопных приложений при помощи стандартных веб-технологий.


Спасибо за внимание! Отдельная благодарность @DEgITx за помощь в разработке и подготовке статьи к публикации.

Вы смотрите срез комментариев. Показать все
200
Автор поста оценил этот комментарий

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

раскрыть ветку (71)
49
Автор поста оценил этот комментарий

И я еще помню времена всяких там DC++ и "untitled album".
А вообще я вас поддерживаю, современные стрим сервисы весьма хороши. Мне очень нравится Deezer, работает в Ru и позволяет слушать музыку бесплатно (иногда крутит рекламу).

раскрыть ветку (18)
7
Автор поста оценил этот комментарий

DC++ кстати вполне себе жив. На любой крупной лан-пати будет DC++ сервер, так как иначе упорядочить шары сложно.

3
Автор поста оценил этот комментарий

Проблему untitled album можно решить простановкой тегов по cddb, например, нет?

раскрыть ветку (4)
1
Автор поста оценил этот комментарий

Можно конечно. Но изначально проблема появилась потому что всем было лень этим заниматься и пользаки риповали "прикольненькие диски" в два клика.
Мне сейчас даже диск вставить некуда. =)

раскрыть ветку (1)
Автор поста оценил этот комментарий

>> Мне сейчас даже диск вставить некуда. =) <<

Ну, кстати, да .. у самого уже лет 5 как нет ни одного CD-привода дома %>

Автор поста оценил этот комментарий

можно

но всем лень

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Я имею ввиду - при добавлении в общий доступ в представленном софте.

1
Автор поста оценил этот комментарий

А в этом дизере до сих пор, если заливаешь альбомы в фонотеку со своего компа, то он тупо их складывает в единый список треков, без каких-либо группировок по исполнителю/альбому/жанру?
То есть, вот есть Исполнитель1, у него Альбом1, доступный в дизере, и Альбом2, который я сам залил. Если открываешь страницу Исполнителя1, то там Альбом2 даже и не будет отображаться в списке альбомов. Если хочешь послушать Альбом2, то нужно идти на страницу личной фонотеки и там в огромном списке треков искать этот альбом.
Вообще, помню, что когда только решил попробовать музыкальные сервисы, мой выбор изначально пал на дизер. Сказать, что я разочаровался, значит ничего не сказать. Хорошо, что я после этого еще попробовал гугломузыку, счастливым пользователем которой я и являюсь уже два года.

раскрыть ветку (7)
1
Автор поста оценил этот комментарий

Спорить о вкусах фломастеров глупое занятие =), я лишь для примера привел дизер.
Но мы с вами совершенно точно сходимся во мнении что стриминговые сервисы в разы удобнее и доступнее чем заниматься музыкой в файлах.

Автор поста оценил этот комментарий
А зачем заливать альбом, если там и так все есть? Ну если это конечно не альбом который школьник на микрофон от ПК записал.
раскрыть ветку (5)
4
Автор поста оценил этот комментарий
Поищи в дизере рамштайн например и все поймешь.
ещё комментарии
Автор поста оценил этот комментарий

Мой опыт показывает, что примерно 30%-40% релизов нету в этих сервисах. При чем даже таких популярных исполнителей как Tool.

раскрыть ветку (2)
Автор поста оценил этот комментарий
А кто это?
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Да всего лишь культовая и самобытная прогрессив/альт-метал группа, трижды лауреаты грэмми, продавшая только в США 10 миллионов копий, выпускавшая альбомы, которые занимали первые места в чартах многих стран. А "новый альбом Tool" стал притчей во языцех и мемом в интернете.
Конечно, они не настолько известны и популярны, как Киркоров, но всё же...

2
Автор поста оценил этот комментарий

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

1
Автор поста оценил этот комментарий
Меня Deezer в последнее время подбешивает, стал предлагать мне русскую попсу, к такому я не нравился.
раскрыть ветку (2)
Автор поста оценил этот комментарий

Туда набежали наши соотечественники и быстро вывели в топ современный русский хип-хоп (или как там нынче это называется)?
В общем ставьте лайки трекам которые вам действительно нравятся и такого шлака будет просачиваться намного меньше.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Меньше, но равно он попадается.
26
Автор поста оценил этот комментарий

Радио в планах есть, как и анализ предпочтений пользователя. Это не сложно сделать.


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

раскрыть ветку (19)
49
Автор поста оценил этот комментарий

Надо замутить фильтры поиска - например, искать композиции только с битрейтом не ниже 256 кб/с, чтобы отсеять низкое качество. Также можно прикрутить популярность файла - чем у большего количества юзеров, тем выше в поиске.

раскрыть ветку (10)
18
Автор поста оценил этот комментарий

Было до 1.4 версии, пока убрал по техническим причинам. К тому же не защищает от апконвертов.

раскрыть ветку (5)
23
Автор поста оценил этот комментарий

Добавь жалобы на треки что бы удалять(скрывать) те на которые много жаловались. Так-же поможет от троллинга вроде встраивания скриммеров в середину песни.

ещё комментарии
1
Автор поста оценил этот комментарий

Про cddb хорошая идея. Можно идентифицированные треки показывать сверху. Или сделать галочку для удобства.

1
Автор поста оценил этот комментарий

тогда любители харда-блюза-джаза крупно отсосут :(

раскрыть ветку (3)
2
Автор поста оценил этот комментарий

Имеется в виду поиск конкретной композиции, в котором будет представлено много её вариантов в разном качестве.

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

Тогда придётся решать проблему "похожести" записи. Ну вот есть у тебя две разных .mp3. Как ты поймёшь, что это два одинаковых трека или два разных? Имя? Мета-данные? Туда можно заполнить всё, что угодно. Хеши, очевидно, разные. Пойди пойми программно, что это одна и та же песенка, только с разным битрейтом. Почитай статью, как вк решала эту проблему.

раскрыть ветку (1)
Автор поста оценил этот комментарий

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

11
Автор поста оценил этот комментарий
Ждём версию на Android ( если возможно)
21
Автор поста оценил этот комментарий
можно влиять на качество контента рейтингом, то есть если музыка в плохом качестве то ищущий снижает ей рейтинг и она понижается в выдаче.

Так же ещё можно добавить цифру при поиске сколько народу добавило альбом или трек в избранное, можно будет составлять свои чарт листы

раскрыть ветку (2)
32
DELETED
Автор поста оценил этот комментарий
Комментарий удален. Причина: данный аккаунт был удалён
раскрыть ветку (1)
9
Автор поста оценил этот комментарий
ну это если целенаправленно делать набеги на этот жанр, я имею введу, если я ищу песни КиШа и какой то альбом из выдачи будет не то или качество плохое то тогда минусить и конкретно эта версия альбома понизится в выдаче, а выше по выдаче будет этот же альбом но лучше качеством. А если кто то будет искать конкретно группы олдскульного рока то в той выдаче именно те группы будут первые.

Ваша схема будет работать если делать поиск конкретно по жанру музыки.

3
Автор поста оценил этот комментарий
ТС, у меня к тебе вопрос.
Я музыкальный псих. Меломан до мозга костей. В моем плейлисте около 6к треков и он постоянно дополняется. Очень хочется слушать его через облако, но не знаю ни одного подходящего сервиса. Дело в том, что плейлист сортирован по формату "номер трека" - "название песни" и при дополнении новые файлы должны встроится в сортировку, а не упасть в конец списка. Вручную формировать этот плэйлист в каком-нибудь Play Music это свихнуться окончательно можно. Тем более большинство сервисов (вроде Deezer) имеют ограничения по длине плэйлиста или по размеру фонотеки в принципе.
Сейчас меня спасет простое заливание музыки в папку на компе, копирование на телефон и прослушивание через aimp.
Понимаю, что запросы у меня пиздец, но я уже настолько привык к своему плэйлисту, что без него никак..
Твой сервис сможет то, что мне нужно? Или может, ты знаешь что-то другое? Или ещё кто-то мне подскажет?
раскрыть ветку (1)
4
Автор поста оценил этот комментарий

Я такой же. Проблему решил так: дома стоит комп аля домашний сервер, на нем хранилище на 5 Тб, медиатека упорядочена с помощью picard. Получаю доступ к ней с помощью plex media server. Внешний IP имею. То есть даже в машине и в другом городе я слушаю музыку расшариваемую из дома.

Автор поста оценил этот комментарий

А что до мобильной версии?

Автор поста оценил этот комментарий

на основании GENRE: untitled? :)

4
Автор поста оценил этот комментарий
В платных нет много того, что я слушаю, поэтому пришлось отказаться
раскрыть ветку (5)
4
Автор поста оценил этот комментарий

В этом плане меня устроил youtube music

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

И 160р всего в месяц

раскрыть ветку (4)
7
Автор поста оценил этот комментарий

160р как-то мало... 1080р там вообще нет в наличии?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

У меня от твоей шутки подкосились коленки и челюсть скатилась под стол. Продолжай

1
Автор поста оценил этот комментарий
Спасибо, не знал
Автор поста оценил этот комментарий
Согласен, сам перешел буквально месяц назад. Доволен
1
Автор поста оценил этот комментарий
ластик + твёрдый накопитель + облако,что б не потерять коллекцию.это бесплатно и практично.для упорядовачинивания тегов есть тыщи прог.делаю по такому методу,ни кому не в укор,мб кого прикольнёт такая система
1
DELETED
Автор поста оценил этот комментарий

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

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

3
Автор поста оценил этот комментарий

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

Именно! Я лет 20 бережно собирал и сортировал музыкальную библиотеку, несколько сот гигов. Думал собрал все на свой вкус, только следил за новинками.


Когда перешел на эпл-музыку, а потом и на расововерную православную яндекс.музыку - открыл для себя еще +80% новых интересных исполнителей, которых я нашел бы в обычном режиме лет через 120 (к выходу на пенсию).


А ведь до этого вообще не понимал смысла этих музыкальных сервисов. Теперь только так и слушаю - это удобно, быстро, на любом девайсе. И не только из-за "рекомендаций" и "радио". Услышал песню на улице/в фильме, спросил у Алисы "шо ето", послушал в я.музыке, послушал похожих. Каждый день что-то новое открываешь.

Из минусов только платность (в цену бутылки пива, в месяц) и отсутствие Раммштайна (приходится дедовским способом качать на торрентах и заливать в я.музыку).

По поводу качества многие сомневаются... Аудиофилы и прочие недалекие, которые дрочат на битрейт и лослеллс, конечно не оценят. Но я обычный человек, уважаю законы физики и психоакустики - поэтому не слышу разницу между хайрез лослелс и хорошим 320мп3 на своих бюджетных студиниках за 40к.


А вот сути вк-помойки до сих по не понимаю :D

Автор поста оценил этот комментарий

нужно ввести рейтинг выложенных записей штоле

1
Автор поста оценил этот комментарий

Подскажите радио на основании твоего вкуса. Я в этом году начал пользоваться Яндекс радио, удобная штука. А еще какие подобные есть?

раскрыть ветку (15)
5
Автор поста оценил этот комментарий

Вообще, насколько я знаю, именно радио и подборка музыки под твой вкус лучше всего как раз у Яндекса. Но похожие фичи есть в эпл мьюзик и гугл мьюзик. Они могут оказаться лучше из-за бОльшей библиотеки.

раскрыть ветку (6)
Автор поста оценил этот комментарий

почему лучше у яндекса? у них и библиотека меньше, и пользователей существенно меньше, чем в гугле и у яблок. на основании чего подборки строить?

раскрыть ветку (5)
2
Автор поста оценил этот комментарий

Вы вообще читали мой коммент?

Господин ниже в принципе уже ответил, но я еще раз напишу.

"подборка музыки под твой вкус лучше" значит, что предлагаемая Яндексом музыка больше всего соответствует вкусовым предпочтениям индивидуума, и не приходится полчаса листать, чтобы найти то, что тебе понравится. Эпл и гугл с этим справляются хуже, иногда подсовывая что-то совсем левое.

Про библиотеку я так же написал: из-за бОльшей библиотеки гугл и эпл можно считать лучше, чем яндекс.

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

раскрыть ветку (1)
Автор поста оценил этот комментарий

да, читал и я именно об этом: в моём случае с составлением подборок гугл справляется гораздо лучше, чем яндекс - разнообразнее, интереснее. по моему личному опыту. я вполне допускаю что у вас он может быть другим, если речь о жанрах, более популярных на территории РФ.

1
Автор поста оценил этот комментарий

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

раскрыть ветку (2)
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий

Да пускай всасывает, рекомендации даются каждому пользователю на основе его личных вкусов. Массовость охвата на качество рекомендаций не влияет.

3
Автор поста оценил этот комментарий

Я тоже Яндекс пользую очень нравится не помню случаев чтобы в режиме радио переключал песни дальше

5
Автор поста оценил этот комментарий

яндекс радио фигня. по крайней мере год назад полной фигней было: слишком мало у них пользователей, прям очень мало, в сравнении с конкурентами, логика работает хреново из-за этого. самое офигенное как по мне - в гугл музыке. я, по сути, на 90% из-за него и пользуюсь.

раскрыть ветку (3)
8
Автор поста оценил этот комментарий

Вот лайкнул я, например, группу Megadeath, Синатру и Надежду Бабкину. Яндекс при включении моего радио будет включать переменно Burzum, Армстронга и Кадышеву, а вот гугл так не умеет, он включает только какой-то один стиль.

раскрыть ветку (2)
Автор поста оценил этот комментарий

у гугла это тоже есть, кнопочка "мне повезет" строит именно такое радио.

раскрыть ветку (1)
Автор поста оценил этот комментарий

У меня включается случайная волна с одним случайным стилем.

2
Автор поста оценил этот комментарий

Насколько мне известно самой крутой в мире рекомендательной системой обладает Pandora Radio. Но мне очень нравятся рекомендации Яндекс. И чем больше слушаешь, тем лучше он изучает твой вкус.

1
DELETED
Автор поста оценил этот комментарий

Spotify давал раньше раз в неделю мне отличный плейлист, основанный на моих текущих песен. Каждую неделю по ~10 новых песен добавлял в плейлист. Сейчас, наверное, мой вкус закончился, и толкает какую-то охинею

Автор поста оценил этот комментарий

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

1
Автор поста оценил этот комментарий
По идее, теоретически (не знаю, не программист) можно прикрутить верификацию файла через системы распознавания песен типа "ок, гугл, что играет", если такие сервисы имеют api для сторонних программ. Не спасёт от плохого качества, но спасёт от фальшивок.
А рекомендации могут быть через api того же ластфм или его аналогов
Повторюсь, не программист, не знаю, насколько это легко реализуемо
раскрыть ветку (3)
4
Автор поста оценил этот комментарий

Есть такая база, musicbrainz называется. У них ещё прога есть Picard, которая автоматом теги проставляет.


Попробую, но боюсь за производительность.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Эх, ностальгия. У меня товарищ делал такую прогу с распознаванием музыки и автоматической генерацией каталога с картинками и альбомами на веб-сайте. Даже можно было в браузере слушать, подтягивая данные с клиентских торрент-клиентов, но у него всё работало через торрент. Успехов вашему творению! :)

Автор поста оценил этот комментарий
Это зовётся audio fingerprinting и уже сейчас на целине СПО есть куча решений как серверного так и приложений. Musicbrainz Picard и Beets (linux) в пример
ещё комментарии
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку