2222

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

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

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

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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

Твиттер

GitHub


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


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


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


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


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


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

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

А откуда изначально берется музыка? Грузят пользователи? Ну тогда здравствуй, 10 версий одного трека, отличающихся частотой, обложкой, символом в названии или еще чем-то подобном.

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

План пока такой:


- пойманные альбомы формируют кэш-ленту ограниченных размеров (сейчас 50 000), она регулярно обновляется (вкладка Discover)

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

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

- в какой-то момент патефон плавно меняет пропорции рассылки альбомов: начинает рассылать реже из кэша, чаще из "любимых"

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


Есть альтернативные предложения или дополнения - смело предлагаейте.

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

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

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

@negamaxi целесообразнее будет добавить альтернативный шлюз для ipfs. Простой прокси просто не особо нужен - даст тот же самый эффект. Вот если говорить об какой-то обфускации - то да, тут есть смысл) но у автора роадмап такой, что криптосвистелки будут в самом конце.

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

А можно уточнить, что подразумевается под обфускацией?

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

Да просто прикрутить obfs4 и все. Хотя ладно, не просто)

А вообще подразумевается обфускация трафика - то есть маскировка его под что-то иное, например под https (как в случае с shadowsocks), или под шифрованный voip-трафик (идеальный вариант - типа это voip-конференция, а с разных ipfs-хостов тащить разный трафик с фиксированным битрейтом).

И необходимо это для того, чтобы обеспечить невозможность блокировки отдельных частей сети. Кроме того, это серьезно защищает от mitm/hijacking - чтобы кто-нибудь не встал посередине и не предъявил повестку в суд за нарушение авторских прав.

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

1) Используя local storage (или что там за альтернатива кукисам в браузере, забыл как зовется) в браузере, или просто небольшое количество памяти в отдельном приложении, можно вести небольшую базу с рейтингом пользователей и треков. Отдельные базы авторов можно подписывать асимметричным ключом. В целом, механизм можно использовать для хранения почти любой инфы о треках и тд.
2) Понадобится обфускация, иначе в той же Германии придется постоянно отбиваться от штрафов. Так что лучше подвинуть в роадмапе криптосвистелки на менее далекий срок. Это позволит взять большую аудиторию еще в период альфы. А также почти полностью исключить вероятность появления писем счастья - и не словить плохую репутацию.

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

Есть идея добавлять профили vk, soundcloud, яндекса и других. Удачно скачавшиеся треки добавляются в библиотеку и доступны другим.

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

Поддерживаю насчет прокси оратора выше. Я сейчас даже пользоваться сией софтиной не смогу, т.к. мой провайдер блокирует p2p соединения.
Хотя я вроде как легализовался в плане музыки, но все равно интересно)

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

Ну, часть можно через хеш решить, нет?

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества