CDDB , сокращение от Compact Disc Database , представляет собой базу данных для программного обеспечения , позволяющую искать информацию об аудио CD ( компакт-дисках ) через Интернет . Это выполняется клиентом, который вычисляет (почти) уникальный идентификатор диска , а затем запрашивает базу данных. В результате клиент может отобразить имя исполнителя, название CD, список треков и некоторую дополнительную информацию. CDDB является лицензированной торговой маркой Gracenote , Inc. [1] [2]
База данных в основном используется медиаплеерами и программным обеспечением для копирования компакт-дисков . Если компакт-диск не распознается медиаплеером или CD -риппером, он может быть добавлен в базу данных, если пользователь заполнит имена и исполнителей и т. д. в медиаплеере, таком как iTunes или MusicMatch Jukebox .
Необходимость в CDDB является прямым следствием изначального дизайна CD, который был задуман как эволюция граммофонной пластинки и не рассматривал аудиодорожки как файлы данных, которые нужно идентифицировать и индексировать. Формат аудио CD не включает название диска или названия дорожек, поэтому для предоставления этой информации при использовании дисков с современными медиасистемами необходима дополнительная база данных. Более поздняя разработка под названием CD-Text является еще одним решением той же проблемы.
CDDB была изобретена Ти Каном примерно в конце 1993 года [3] как локальная база данных, которая поставлялась с его популярным приложением музыкального проигрывателя xmcd. История изменений приложения впервые упоминает аббревиатуру CDDB в версии 1.1, выпущенной 25 февраля 1994 года. Пользователи отправляли новые записи в базу данных по электронной почте Кану.
База данных быстро стала громоздкой, и Кан заручился помощью Стива Шерфа для создания сетевой версии базы данных, работающей как CDDB Inc. [4] в 1995 году. [5] Грэм Тоал предоставил хостинг для сервера CDDB и создал модель дохода от баннерной рекламы для оплаты хостинга. Оригинальное программное обеспечение, лежащее в основе CDDB, было выпущено под лицензией GNU General Public License , и многие люди отправляли информацию о CD, думая, что сервис также останется бесплатным.
Проект был в конечном итоге зарегистрирован как CDDB LLC в 1998 году [6] и вскоре был продан Каном, Шерфом и Тоалом производителю высокотехнологичной бытовой электроники Escient . В интервью 2006 года в Wired Шерф заявил, что Escient была единственной компанией, которая гарантировала бы непрерывное развитие сервиса ее основателями, а также защитила бы работу в атмосфере, когда многочисленные компании предлагали бы цену — и в одном случае пытались вымогать — приобрести и немедленно продать CDDB крупным игрокам, таким как Microsoft , которая хотела получить сервис распознавания компакт-дисков, но не хотела иметь дело напрямую с CDDB Inc. [7]
В 2000 году CDDB Inc. была переименована в Gracenote . [8] В объявлении 1999 года утверждалось, что доступ к сервису CDDB «останется на 100% бесплатным для разработчиков и потребителей программного обеспечения». [9] Тем не менее Gracenote перешла на проприетарную лицензию, что вызвало критику, что это эксплуатирует работу неоплачиваемых участников, и побудило запустить Freedb в 2001 году на основе последней свободно лицензированной версии CDDB. [10] [11] [12] В марте 2001 года Gracenote запретила всем нелицензированным приложениям (таким как Freedb) доступ к своей базе данных. Новые лицензии для CDDB1 (исходная версия CDDB) больше не были доступны, поскольку Gracenote хотела заставить программистов перейти на CDDB2, новую версию, несовместимую с CDDB1. [12] Freedb быстро стал популярнее Gracenote, [10] но к 2006 году был охарактеризован как «застойный», что Шерф (тогдашний главный архитектор Gracenote) воспринял как доказательство того, что «фокус и преданность делу, необходимые для роста CDDB, не могли быть найдены в усилиях сообщества». [11]
В июне 2008 года Sony Corporation of America завершила приобретение (полное владение) Gracenote, согласно новостной заметке на веб-сайте Gracenote. [13] Затем в 2014 году Tribune Media Services (TMS) приобрела Gracenote у Sony, [14] только для того, чтобы перепродать его Nielsen в декабре 2016 года. [15]
CDDB была разработана для решения задачи идентификации целых компакт-дисков, а не только отдельных треков. Процесс идентификации включает создание "discid", своего рода " отпечатка пальца " компакт-диска, созданного путем выполнения расчетов по информации о длительности трека, хранящейся в таблице содержания компакт-диска (см. следующий раздел для примера расчета). Этот diskid используется с базой данных Интернета, как правило, либо для загрузки названий треков для всего компакт-диска, либо для отправки названий треков для недавно идентифицированного компакт-диска.
Эта информация часто предоставляется конечными пользователями . [16] В iTunes , который использует Gracenote, пользователи называют треки CD, а затем используют опцию «Отправить названия треков» под заголовком «Дополнительно» на панели инструментов, чтобы отправить информацию о треках. [17]
Поскольку идентификация компакт-дисков основана на длине и порядке дорожек, CDDB не может идентифицировать плейлисты, в которых порядок дорожек был изменен, или компиляции дорожек с разных компакт-дисков. CDDB также не может различать разные компакт-диски с одинаковым количеством дорожек и одинаковой длиной дорожек.
CDDB1 идентифицирует компакт-диски с помощью 32-битного числа, обычно отображаемого как шестнадцатеричное число, содержащее 8 цифр: XXYYYYZZ. Первые две цифры (обозначенные как XX) представляют собой контрольную сумму, основанную на времени начала каждого трека на компакт-диске, mod 255. Следующие четыре цифры (YYYY) представляют собой общее время компакт-диска в секундах от начала первого трека до конца последнего трека. Последние две цифры (ZZ) представляют собой количество треков на компакт-диске.
Например, предположим, что компакт-диск содержит одну дорожку длительностью 3610 секунд.
Сначала вычисляется контрольная сумма XX путем суммирования времени начала трека по модулю 255. Поскольку компакт-диски имеют смещение в 2 секунды от начала данных диска, XX становится «02».
Во-вторых, общая продолжительность воспроизведения компакт-диска в 3610 секунд в шестнадцатеричном формате равна 0e1a, поэтому YYYY становится «0e1a».
Наконец, на этом CD есть один трек, поэтому ZZ становится «01».
Полный идентификатор диска CD-примера — «020e1a01». Любой CD, содержащий один трек длительностью 3610 секунд, начинающийся через 2 секунды от начала CD, будет иметь этот идентификатор диска. Чтобы различать разные CD, которые имеют одинаковый идентификатор диска, база данных CDDB1 организована в несколько категорий. Если возникает конфликт с разными выпусками CD, имеющими одинаковый идентификатор CDDB1, их можно поместить в другую категорию (например, классика, рок, блюз, фолк или разное).
Пример кода для расчета идентификаторов дисков CDDB1 на различных языках программирования доступен в Интернете, например, на Java . [18]
Изначально CDDB был ориентирован на поп/рок-музыку с типичной структурой исполнитель/альбом/песня. В их базе данных часто отсутствует адекватная информация о компакт-дисках с классической музыкой , в основном из-за ее структуры, в которой изначально отсутствовал стандартный способ хранения имен композиторов. [19] [20] В 2007 году Gracenote анонсировала улучшенный формат, Classical Music Initiative (CMI), который помещает всю дополнительную информацию в трехполевую структуру. Название классического трека теперь будет содержать композитора, например, « Vivaldi : The Four Seasons , Op. 8/1, 'Spring' — 1. Allegro». Поле исполнителя будет содержать всю информацию об ансамбле, дирижере и, возможно, солисте , например, « Joseph Silverstein , Seiji Ozawa , Boston Symphony Orchestra ». В 2007 году около 10 000 классических компакт-дисков были преобразованы в эту новую конвенцию. [21] [22]