Веб-разработка

индекс
237,17

Каждому хостингу по аудиоплееру

Хорошие художники копируют, великие художники воруют.
Стив Джобс
Пабло Пикассо

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

У онлайн плееров две основные проблемы: нет музыки или плохой юзабилити(нет плейлистов, неудобный поиск, etc.). В простоплеере всё это было, поэтому при разработке ориентировался на него.

Основные возможности плеера
  • Поиск. Поиск ведется через вконтакте, соответственно всю музыку которую можно найти вконтакте, можно найти и здесь.
  • Простая авторизация. Авторизация необязательная и нужна только для доступа к своим плейлистам. Логин и регистрация не разъеденины, то есть во время авторизации проверяется наличие пользователя в базе, если такого нет — он создается. Пароль иметь необязательно.
  • Плейлисты. Плейлисты доступны только авторизированным на сайте пользователям. Нужны они для группирования вашей музыки.
  • Drag & Drop. Удобное управление плеером через drag & drop.
  • Социальная интеграция. Можно поделиться понравившемся (или не понравившемся) треком с друзями вконтакте, фейсбуке и твиттере.
  • Ссылка на трек. Также поделиться треком можно просто скопировав ссылку на него и отправив её любым доступным путём (jabber, icq, email).
  • Рекомендации. На основе прослушанной пользователями музыки формируется база рекомендаций, которая подскажет что еще можно послушать.

Есть даже преимущества
  • Децентрализация. Open Player каждый может установить на свой LAMP-хостинг без каких либо ограничений со стороны плеера.
  • Бесплатный и открытый. Проект польностью бесплатный как для пользователей так и для тех, кто хочет его установить себе. Распространяется «как есть». При необходимости его легко модифицировать под себя.

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

Рабочую версию можно испытать тут: music.bonart.org.ua.
Список публичных зеркал стал слишком большим и переместился на страницу проекта openplayer.

Инструкция по установке на свой хостинг также находится на странице проекта.

P.S. Это первая версия плеера, наверняка есть баги, если идея пойдет — буду развивать дальше.

UPD: Если кто установил себе плеер, не жадничайте, делитесь ссылкой:) (добавим в список зеркал)
UPD2: GitHub github.com/uavn/openplayer
+136
25 июля 2011, 10:28
210

комментарии (174)

+5
link0ln #
Нет ajax поисковых подсказок и как убавить звук в приложении?
+6
mr_avi #
К сожалению есть много того чего тут нет, мы обязательно учтем пожелания и реализуем их в следующей версии, если идея «пойдет»
+2
link0ln #
Да уже пошла, я вот слушаю и доволен :)
Вот что по моему мнению должно быть реализовано.
1. Громкость.
2. Поисковые подсказки.
3. Кнопку «Сделующие» нафик, сделать кнопку еще, по нажатии которой список будет дополняться таким же количеством песенок.
4. Возможность удалять песенки из текущего списка.
5. Вот от сюда music.bonart.org.ua перестало вообще что-либо играться.

Плейлисты реализованы удобно, тут вроде без нареканий.
+1
Elegar #
вы, главное, не делайте 15 бесплатных треков, когда идея пойдет :)
+1
mr_avi #
За счет открытости это и невозможно будет сделать, т.к. будет существовать больше одного зеркала, и при платном одном будет много других бесплатных
+2
nes #
Да, ajax подсказки здесь нужны. И еще хочется, чтобы группировались одинаковые композиции, а не так как сейчас.
Это просто мои пожелания.
Удачи Вам в вашем деле!
+2
toomturum #
Добавьте регулировку громкости, вместо вкыл выкл.
+3
mr_avi #
Спасибо, сделаем
+8
aimodify #
А что — мне нравится. Пусть пока не фонтан — но брызги точно есть.
+2
igla #
Надо бы поправить «Следующие →»
+2
kAIST #
Отличный проект, будем надеяться что будет развиваться. Не нашел на сайте куда слать донейты :(
Вопрос, и заодно пожелание: без MySQL можно обойтись? Хочется для себя поставить на vds, но очень не хочется запускать MySQL для этого. Хотя бы SQLite :) Я так понимаю, объемы данных не такие уж и большие…
+1
mr_avi #
Донейти прикрутим, не ожидал что пригодятся сегодня:)
Спасибо за отзыв
+2
mr_avi #
Без MySQL можно, используется PDO, сделаем в следующей версии
0
moresquitch #
И что, чтобы послушать музыку, обязательно нужно логин и пароль?
+2
mr_avi #
Послушать нет, для плейлистов да, но пароль не обязательно, можно просто логин. Пароль для параноиков:)
0
rossiysky #
Не хватает еще одной интересной идеи: возможность проигрывать локальные файлы, загруженные на сервер — см. music.yandex.ru. Есть ли возможность надстроить таким образом?
+1
mr_avi #
Пока нет, но сделать просто
0
rossiysky #
Будет супер-круто. Плюс подготовлю еще несколько идей ну и готов вложить в проект для поддержки.
0
pavelpromin #
Локальные файлы можно проигрывать и так
0
empr #
А вот нельзя ли сделать такую фичу, чтобы всякое говно из результатов поиска автоматически исключалось?
+3
mr_avi #
В какойто степени можно, будем стараться
+2
empr #
Вообще-то вопрос был риторическим, но если вы вселили надежду! :)
+5
kAIST #
Забыли о кнопочке «скачать» для каждого трека ;)
+3
mr_avi #
Думал раз плеер онлайн то и качать не обязательно, хотя она не помешает, прикрутим
+2
empr #
А идеально было бы скачивать плейлисты в архиве (фича присутствовала на почившем ныне audme.ru).
0
kAIST #
Так как это стоит на своем сервере, можно сделать подобные, но отключаемые фичи. Нагрузки на сервер можно не бояться, если использовать этот плеер только для себя, в отличии от публичных сервисов.
0
mr_avi #
Поудмаем над разными «сборками», с подключаемыми/отключаемыми фичами
0
kAIST #
Так зачем же «сборки», можно же в ini вынести, а еще круче, сделать как плагины. Глядишь и другие подтянутся к их написанию. Еще раз спасибо за проект.
0
Finom #
Для уменьшения нагрузки на сервер можно попробовать использовать это: jszip.stuartk.co.uk/
Хотя тут, скорее всего, будут проблемы с кроссдоменностью.
0
Evengard #
Не работает за ISA-сервером, который фильтрует контакт… Нельзя ли сделать нечто вроде прокси-части?
0
twixxer #
Готов поддержать немного финансово.
Надеюсь проект и останется бесплатным.
0
mr_avi #
Вечером будет кнопка donate, с этим конечно прогавили
+2
mr_avi #
Проект останется бесплатным за счет того, что он открыт. Каждый может установить у себя копию
0
Agent_Smith #
Так может выложить на github или аналоги, так и разработка быстрее пойдет.
+1
mr_avi #
Да, это запланировано на сегодняшний вечер:)
0
ChronoD #
Огромное спасибо за такую вещь. Надеюсь, что Open Player будет только развиваться. Удачи вам :)
0
mr_avi #
Спасибо, уже видим что идея пошла, будем развивать.
0
ChronoD #
Сегодня поставлю на свой VPS и возник такой вопрос, есть ли возможность как на простоплеере получать код для вставки аудиозаписи на другие сайты и если нет, то планируется ли такая фича?
0
mr_avi #
Пока что нет, но запланируем.
0
ChronoD #
Ещё раз большое спасибо :)
0
baltazor5000 #
Еще бы сделать что бы при наведении на трекбар (полоска между плей/стоп и вкл/выкл. звук) показывало сколько длиться трек и сколько осталось
0
mr_avi #
Обязательно будет, спасибо
0
phpcmsdev #
Спасибо вам отличный проект, успехов в развитие и реализации!

Хочу вставить свои пять копеек, разместите свой проект в открытый репозиторий, думаю многие поддержат проект не только материально, но и личным участием в развитии.
0
mr_avi #
Спасибо, наверное так и сделаем
0
zizop #
Отличная идея! Раз это Open Source, то думаю реализуются все интересные идеи, которые были в простоплеере и есть у сообщества. Вопрос такой, при поиске (искал «Offspring») пишет что ничего не найдено. Надо авторизоваться или это баг такой?
0
mr_avi #
Это изза перенагрузки на сервера, авторизация не обязательная, попробуйте на зеркалах
0
mr_avi #
Это изза перенагрузки на сервера, попробуйте на зеркалах, авторизация только для плейлистов
0
slipknot_LeX #
Запилите возможность смотреть битрейт композиции :)
0
mr_avi #
Если вконтакте её отдает запилим
НЛО прилетело и опубликовало эту надпись здесь
0
mr_avi #
Да щупайте на здоровье, все распространяется «как есть», цель этого всего создать хороший плеер для всех
0
INCWADRA #
Дома попробую, спасибо вам
0
seventh #
Верх мечтаний — авторизоваться через вконтакт, увидеть все свои аудиозаписи, а потом ещё и одним кликом их скачать :) Ну или хоть не одним, главное, чтобы видеть записи именно определённой учётки (иметь возможность скачать свою музыку).
0
mr_avi #
Хорошая идея, подумаем, спасибо.
0
INCWADRA #
Это совсем просто)
Где то даже скрипт валяется, надо поискать
0
seventh #
Интересно! Поищите, если не сложно — актуально для меня.
0
INCWADRA #
Ок, скину как найду
0
ademaro #
А на гитхаб не планируете выкладывать?
0
mr_avi #
Уже запланировали, надеюсь к вечеру зальем
+1
lega #
> Поиск: Eminem
> Похожие исполнители: Рубль Шнур, Жуки, Красная плесень, Машина Времени, Ленинград

Музыка не воспроизводится — ubuntu 10.10 x64, google chrome 12.0.742.124
0
mr_avi #
Похожие исоплнители будут более правильными с набиванием базы, пока что работает не совсем корректно:)

Сейчас должна воспроизводиться, хостинг немного задознулся, также зеркала должны работать исправно
0
lega #
Да, сейчас воспроизводится.
0
Dr_Zoidberg #
А на IIS можно поставить?
0
mr_avi #
К сожалению, не имел с ним дела, но думаю можно, только апачевые правила их .htaccess нужно переписать на IIS
0
link0ln #
В архиве не хватает папки assets, из-за которой куки не пишутся. поправьте.
0
mr_avi #
Спасибо, сейчас исправлю
0
Houston #
Открытость — это, конечно, супер, но мне audiotoria больше нравится и внешне и внутренне)
0
mr_avi #
Конкуренция это хорошо, аналоги тоже
0
int03e #
Можно такой-же, но видео плеер? С плейлистами :-)
+1
mr_avi #
Тоже об этом думали, пока что в более удалённых планах.
Между прочим есть аналог на Adobe AIR, где-то здесь на хабре публиковали, работает аналогично
0
int03e #
Спасибо, буду искать.
+1
Agent_Smith #
0
Britannic #
Архив битый скачивается… :(
0
mr_avi #
Сейчас перепроверю
0
mr_avi #
перезалил, пробуйте;)
0
Britannic #
Помогло, спасибо! Буду пробовать…
0
netmaniac #
<мечты>Еще бы интеграцию с локальным mpd </мечты>
0
mr_avi #
<реальность$gt; есть плагин для exaile </реальность$gt;
0
netmaniac #
<реальность>На серверах Xсов не держим, а mpd стримит в сеть</реальность>
0
mr_avi #
<осинение>Таки да, не сразу понял суть, в планах у нас пока такого нету, возможно когда-то появится:)</осинение>
0
netmaniac #
будем искать ждать
0
skobkin #
Печально, что надо держать в конфиге логин\пасс от ВКонтакте. Это приводит к тому, что если активность обнаружат и логин забанят, сервис перестанет работать. Хотя, «для себя» — нормально.
+1
mr_avi #
Да, но от этого никуда не деться. Возможно прикручу ротация нескольких аккаунтов, так будет менее «паливно»:)
0
Deranged #
Было бы неплохо, если бы можно было делиться своими плейлистами только для чтения в виде ссылки на плейлист, или на все плейлисты. Так же можно было бы сделать рейтинг публичных плейлистов.
0
mr_avi #
Спасибо, подумаем.
0
NeverFoldAQ #
Хм. эррор лог ругается на 27-ю строчку индекса.

$app = strtolower( Lib\Request::get('app', 'index') )
+1
mr_avi #
PHP 5.3 нужен, у нас наверное ниже
0
NeverFoldAQ #
Ах. Да, не обратил внимание. У нас 5.2, к сожалению.
0
link0ln #
Поисковый фильтр надо фиксить на предмет символа '(кавычка), дает ошибку. Все же можно констатировать как ошибку в безопасности. + Потестить на другие виды уязвимостей.
0
mr_avi #
Да, это уже заметили, исправим
+2
artleg #
А я люблю player.vas3k.ru/ ( vas3k.ru/work/playaaa ) прекрасный плеер на питоне, и тоже может быть развёрнут на своём сервере. Кстати автор есть на хабре.
0
Frosty #
Реквестирую возможность указания точного времени в ссылке на трек, на манер ютубовского #t=2m15s
0
mr_avi #
интересное преджложение, попробуем реализовать (если наш флешмп3плеер позволит, если не позволит — будем думать)
0
Frosty #
Будет крайне позитивно, а то приходится использовать ютуб вместо вконтакта для «зацени соляк».
0
MaGIc2laNTern #
А ещё комментарии к конкретным моментам, как на SoundCloud. :)
0
apk #
В архиве нету файла .htaccess, еще хотелось бы убрать configs/app.ini из папки к которой имеет доступ apache
0
mr_avi #
хм, .htaccess сейчас верну, должен был был. С .htaccess-ом апач не получил бы доступа
0
apk #
иногда до апача не доходит, статику часто даже на хостингах отдает nginx
0
mr_avi #
Ну бекенд обычно либо апач либо phpcgi, так что апач не пустит. В nginx-е также можно запретить доступ в директорию.
0
Yani #
Хотел поставить, но у вас HTTP Error 500 (Internal Server Error): An unexpected condition was encountered while the server was attempting to fulfill the request.
0
mr_avi #
К сожалению мой хостинг не держив хабраэффекта, попробуйте чуть позже. Спасибо.
0
xdemon #
А медиатраффик идет через сервер или сразу клиенту отдается?

Алсо, хотелось бы интерфейс в стиле itunes/google music. Гораздо удобнее.
0
mr_avi #
Через сервер, т.к. вк генерит ссылки на файлы в зависимости от ип (В данном случае нашего сервера). Посмотрим в сторону аналогичных интерфейсов, спаисбо.
0
Yani #
prostopleer.com тоже через себя трафф пускает?
0
mr_avi #
Они, если я не ошибаюсь, к себе всё сначала выкачивают, и от себя уже раздают
0
Yani #
Ого, в плане абузов за контент это еще хуже :)
0
ProstoDesign #
А сильно нужно потрудиться, чтоб при добавлении трека в плей-лист он бы закачивался на свой сервер и не тягал больше из контакта?
0
mr_avi #
Нет, но идея плеера была в полной автономности и переносимости. Но можно сделать это опционально, наверняка так и будет.
0
ProstoDesign #
Опция была бы клевой, потому что с ней такой плей-лист будет автономен.
0
Alexsey #
Хорошая вещь, явно видно что сделано с оглядкой на простоплеер :)
0
mr_avi #
Не отрицаем:)
Цитата а начале поста нам об этом намекает
0
Alexsey #
Кстати вроде не репортили такой баг:
У вас в .htaccess доступ к asserts переадресуется обратно на index и ничего не играет соответственно. На 4 строке не хватает RewriteRule ^assets/(.*)$ assets/$1 [L]
0
Alexsey #
Еще хотелось бы видеть интеграцию с last.fm если можно, тогда вообще бы цены не было скрипту)
0
mr_avi #
Запланируем на будущие версии
0
mr_avi #
Действительно, эта строчка там была, но куда-то делась. Сейчас выложена правильная версия. Спасибо.
0
Alexsey #
И снова баг: плейлист не переходит на следующий трек если открыта другая вкладка в браузере, может быть уже конечно постили, не все читал
0
Luxar #
Добавьте в верхнюю полоску название текущего трека! Спасибо=)
+1
mr_avi #
Добавим, так же будет в title страницы
0
ChronoD #
Буквально только что заметил баг: при поиске например выдались файлы и в этом списке, если файл перетягиваешь на другую позицию, он всё равно сбрасывается на прежнюю. или так и задумано?
0
mr_avi #
Ну в плейлистах сортировка будет работать верно, при поиске сортировка в приципе не нужна, по этому он возвращается на место:)
0
ChronoD #
Да, в плейлистах сортировка верно работает. А при поиске меня просто сбило с толку, что таскать можно, а по списку перемещать нельзя :)
0
mr_avi #
Да, это лучше убрать:)
0
ChronoD #
А как же тогда в плейлист добавлять? Может лучше сделать возможность перетаскивать и менять позицию аудиозаписи в списке найденного?
0
mr_avi #
Ну мы еще подумаем что с этим делать
0
7paca #
А насколько реальна реализация возможности встраивания виджета с треком, как это сделано на простоплеере?
+2
mr_avi #
Вполне реальна, запланируем на следующую версию
+1
diamon #
была бы совсем не лишняя интеграция с last.fm
0
ChronoD #
А зачем такое счастье? Полный клон простоплеера делать?
0
killest #
а как же Google Plus?
Расшарить в Твиттере, ВКонтакте и Фейсбуке есть возможность, а трендовый G+ отутствует — нехорошо
0
ChronoD #
Мне кажется, что смысла в этом пока что нет, вот когда будет у них открытая регистрация, тогда и можно будет.
А как же одноклассники, мой мир, я.ру? Про них ведь тоже забыли
0
ChronoD #
Упс… Прошу прощения, последнюю строчку взял в но парсер съел.
0
ChronoD #
Да что ж такое… В общем там всё в атрибуте «сарказм» должно было быть, но немного не удалось :(
0
killest #
Наверное с моей стороны это была эгоистичная провокация, потому как G+ вытеснил для меня другие соцсети :)
0
ChronoD #
Да нет, скорее я неудачник и вовремя не получил инвайт :)
0
killest #
никогда не поздно
0
mr_avi #
Инвайтом могу поделиться на г+, стучитесь в хабрапочту если что
0
mr_avi #
Да, г+ прикрутим, что интересно что в обсуждении плеера на г+ народу оказалось больше чем вконтактике и фейсбуке
0
blabla #
Пользуюсь jplayer ( www.jplayer.org/ ). Он и видеоплеер впридачу.
0
ChronoD #
Выловил досадную опечатку:
image
0
mr_avi #
Выглядит ужасно, исправлю:)
0
ChronoD #
При медитации на трафик сервера, возник такой вопрос: Предположим, посетитель нашёл песню и прослушал её, т.е. песня скачалась на сервер, потом зашёл второй посетитель, нашёл эту же песню и начал её слушать, она снова скачивается на сервер или отдаётся уже ранее скачанная песня?
0
mr_avi #
Я замышлял изначально что после прослушивания песня удаляется, т.е. следующий её скачает заново. Сейчас нечто подобное. В приципе это можно отключить, в файле Ajax.php найти строчку unlink(чегото там), и просто удалить, так следующий посетитель не будет выкачивать ту же самую песню
0
ChronoD #
Хм… Только что странная штука возникла на одном из зеркал, которое держу на своём сервере. Слетели все таблицы в БД кроме таблицы stat, в которой накопилось около 6000 записей. С чем может быть связан такой дроп таблиц?
0
mr_avi #
Возможно недостаточная защита входящих данных привела в sql-инъекции, к сожалению это бета версия и такое могло случиться. Сейчас на гитхабе github.com/uavn/openplayer лежит свежая уже защищенная версия, обновитесь.
0
Zyava #
Выглядит многообещающе, пара багов:
1. http://op.hr00.ru/#!?q=the+who — на 1 месте «Beyonce — Girls». Это как он ищет вообще?
2. op.hr00.ru кажется поломался — поиск работает, но ни одну песню не может проиграть.
0
mr_avi #
1. А щет не он, ищет вконтакте:)
2. исправим

спасибо
0
alexrock #
А Вконтакте не вычисляет парсеров разве? И, например, при 500 запросах одновременных с одного IP не получит ли IP сервера бан?
0
ChronoD #
Ну не знаю… Моё зеркало почти с самого начала висит в топике в списке публичных зеркал, аудиозаписей было прослушано великое множество, но мой подставной аккаунт вконтакте, как и IP сервера не забанили. Единственная странность, которая возникла, так это при отправке личных сообщений выписывает, что я якобы отправил очень много личных сообщений и сегодня больше не могу отправить, но при этом аудиозаписи на сайте всё также бодренько проигрываются и заливаются на сервер.
0
mr_avi #
Да, три наших зеркала также по прежнему работают, и не думаю что вконтакте будет банить по ип.
0
ChronoD #
Но всё равно ротация аккаунтов не помешает :)
0
mr_avi #
Да, это сделаем
0
pepelsbey #
Вы бы хоть название Open Player погуглили, прежде чем называть:

openplayer.ru/
github.com/pepelsbey/openplayer
0
ChronoD #
Разве название так существенно? Только что погуглил, не похоже, чтобы Open Player, который был создан до этого (и которых, как я понял довольно много) поставил то, что название это трейдмарк.
0
pepelsbey #
Никакого трейдмарка или существенности нет, просто людей путать не хочется.
0
ChronoD #
Выловил ещё один баг, при добавлении в плейлист аудиозаписи в названии которой содержится апостроф, она не добавляется, вернее добавляется, но после перезагрузки страницы пропадает.
(В моём случае не получилось добавить трек: Les Lettres d'un Ange Mort — Герой милый скоро сдохнет)
0
mr_avi #
В версии плеера на гитхабе, это уже исправлено:)
0
ChronoD #
А всё, понятно, я когда обновлял, не загрузил новый дамп БД :)
0
mr_avi #
Хм, дамп вроди старый должен работать, попробуйте еще раз перезалить
0
ChronoD #
Перезалил, теперь всё нормально. Спасибо :)
+2
Crazybot #
Просьба прикрутить рекомендации от Last.fm. Тогда сервис будет идеален :)
0
skobkin #
И скробблинг…
0
Crazybot #
Ну скроблинг это думал само собой разумеется. Просто такие плееры очень редко прикручивают сразу поиск по рекомендациям прямо в клиенте. Даже вконтакте это делает только 1 приложение
0
skobkin #
Ну, программирование — вещь такая… Надо задачи четко ставить. Вот я и написал на всякий случай, чтобы автор имел в виду.
0
mr_avi #
Буду иметь в виду, спасибо
0
skobkin #
Надо добавить в README намек на то, что права на assets должны стоять 777.
Вот если бы директория называлась tmp или downloads, или хотя бы mp3, я бы и сам догадался. А так — у меня не заиграло и пришлось лезть читать лог апача.
0
mr_avi #
действительно так и есть, спасибо, будет
0
skobkin #
Почему-то у многих треков из названия остается только одно слово.
image
В данном случае, оригинал так и называется — «Дедушка Мо»
+1
mr_avi #
Проверил на music.bonart.org.ua, у меня там свежая версия плеера, баг уже исправлен, но не все зеркала обновились.
0
skobkin #
Да, я после этого зашел на гитхаб и нашел там закрытый тикет по этому багу.
Жалко этот скрипт не умеет обновляться :)
0
ChronoD #
У меня тут в твиттере попросили, чтобы я проставил на своём проекте на базе Openplayer хоть какую-то ссылку на источник, возник вопрос: Действительно нужно или можно обойтись без этих формальностей?
0
mr_avi #
С нашей стороны не обязательно, только по желанию. Наша цель чтобы плееров было больше и они становились лучше, для популяризации можете поставить ссылку на гитхаб, авось кто увидит и себе установить захочет.
0
ChronoD #
Хорошо, тогда как вкатаем новый дизайн, запилим ссылочку на гитхаб сразу :)

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