Журнал LinuxFormat - перейти на главную

LXF169: Команд­ная стро­ка Beets

Материал из Linuxformat
(Различия между версиями)
Перейти к: навигация, поиск
(Beets: Ру­ли­те сво­ей му­зы­кой)
 
(не показаны 3 промежуточные версии 1 участника)
Строка 27: Строка 27:
  
 
pip uninstall packagename
 
pip uninstall packagename
 +
{{Врезка|right|Ширина=40%|Заголовок= За­гру­жа­ем тек­сты пе­сен|Содержание=
  
 +
С по­мо­щью пла­ги­на lyrics мож­но за­гру­зить тек­сты для ва­ших му­зыкаль­ных фай­лов, и его мож­но на­стро­ить так, что­бы тек­сты до­бав­ля­лись пря­мо к ме­та­дан­ным са­мого файла.
 +
 +
Сна­ча­ла подклю­чи­те пла­гин, приписав его в ~/.beetsconfig к стро­ке
 +
 +
plugins =
 +
 +
По­сле это­го Beets ав­то­ма­ти­че­­ски за­гру­зит тек­сты для всех тре­ков во вре­мя им­пор­та.
 +
 +
Ес­ли в ~/.beetsconfig за­дан па­ра­метр
 +
 +
import_write: yes
 +
 +
тек­сты еще и за­пи­шут­ся в ба­зу дан­ных, в про­тив­ном слу­чае Beets со­хранит тек­сты в собственной ба­зе.
 +
 +
В случае, если вам захочется от­клю­чить ав­то­ма­ти­че­скую за­груз­ку тек­стов во вре­мя им­пор­та, до­бавь­те в файл ~/.beetsconfig раз­дел из двух строчек, сле­дую­щего содержания:
 +
 +
[lyrics]
 +
 +
autofetch: no
 +
 +
Поч­ти у всех пла­ги­нов есть соб­ст­вен­ные па­ра­мет­ры, и у ка­ж­до­го из них дол­жен быть свой уникаль­ный за­го­ло­вок в фай­ле ~/.beetsconfig.
 +
 +
Для руч­ной за­груз­ки тек­стов пе­сен, ко­то­рые уже имеются в ба­зе дан­ных Beets, вы так­же можете на­пи­сать соб­ст­вен­ный за­прос query-foo.
 +
}}
 
Са­мая об­шир­ная за­да­ча при ра­бо­те с Beets – соз­дание его фай­ла на­строй­ки, ко­то­ро­го по умол­чанию не су­ще­ст­ву­ет. Его при­дет­ся соз­дать вруч­ную. Но пусть это вас не бес­по­ко­ит. По­на­до­бит­ся ми­ну­та или две, во вся­ком слу­чае, для на­ча­ла. От­крой­те свой лю­би­мый тек­сто­вый ре­дак­тор и вве­ди­те
 
Са­мая об­шир­ная за­да­ча при ра­бо­те с Beets – соз­дание его фай­ла на­строй­ки, ко­то­ро­го по умол­чанию не су­ще­ст­ву­ет. Его при­дет­ся соз­дать вруч­ную. Но пусть это вас не бес­по­ко­ит. По­на­до­бит­ся ми­ну­та или две, во вся­ком слу­чае, для на­ча­ла. От­крой­те свой лю­би­мый тек­сто­вый ре­дак­тор и вве­ди­те
  
Строка 60: Строка 85:
 
import_copy: no
 
import_copy: no
  
Па­ра­мет­ры на­строй­ки
+
===Па­ра­мет­ры на­строй­ки===
  
 
Пол­ный спи­сок па­ра­мет­ров слиш­ком об­ши­рен, что­бы при­во­дить его пол­но­стью, но мы об­су­дим несколь­ко важ­ных па­ра­мет­ров по хо­ду ста­тьи. В до­ку­мен­та­ции про­ек­та есть ин­фор­ма­ция о мно­гих па­ра­мет­рах, и мы на­стоя­тель­но со­ве­ту­ем сна­ча­ла про­честь ее.
 
Пол­ный спи­сок па­ра­мет­ров слиш­ком об­ши­рен, что­бы при­во­дить его пол­но­стью, но мы об­су­дим несколь­ко важ­ных па­ра­мет­ров по хо­ду ста­тьи. В до­ку­мен­та­ции про­ек­та есть ин­фор­ма­ция о мно­гих па­ра­мет­рах, и мы на­стоя­тель­но со­ве­ту­ем сна­ча­ла про­честь ее.
Строка 67: Строка 92:
  
 
Мы косну­лись им­пор­та фай­лов лишь наскоро, но это са­мый важ­ный ас­пект менед­же­ра ме­диа-биб­лио­те­ки, по­это­му займем­ся им попод­робнее.
 
Мы косну­лись им­пор­та фай­лов лишь наскоро, но это са­мый важ­ный ас­пект менед­же­ра ме­диа-биб­лио­те­ки, по­это­му займем­ся им попод­робнее.
 +
{{Врезка|right|Ширина=20%|Заголовок=Скорая помощь |Содержание=
  
 +
Ес­ли в клю­че­вых сло­вах в за­про­сах есть про­бе­лы, за­клю­чи­те их в ка­выч­ки или эк­ра­ни­руй­те:
 +
 +
beet ls pink\ floyd
 +
 +
или
 +
 +
beet ls “pink floyd”
 +
 +
> Из­ме­нить ме­та­дан­ные лю­бо­го фай­ла в биб­лио­те­ке мож­но ко­ман­дой
 +
 +
beet modify
 +
 +
Для вы­во­да спи­ска всех оп­ций из­ме­не­ния ме­та­дан­ных вы­пол­ни­те ко­ман­ду
 +
 +
beet ? modify
 +
}}
 
При им­пор­ти­ро­вании фай­лов в биб­лио­те­ку Beets по­пы­та­ет­ся най­ти ин­фор­ма­цию о фай­лах в Ин­тернете и по­лу­чить все­воз­мож­ные ме­та­дан­ные этих фай­лов.
 
При им­пор­ти­ро­вании фай­лов в биб­лио­те­ку Beets по­пы­та­ет­ся най­ти ин­фор­ма­цию о фай­лах в Ин­тернете и по­лу­чить все­воз­мож­ные ме­та­дан­ные этих фай­лов.
  
Строка 78: Строка 120:
 
beet import -A /path/to/music/files
 
beet import -A /path/to/music/files
  
Воз­мож­ность ав­то­до­бав­ления тэ­гов мо­жет про­сла­вить или опо­зо­рить Beets в бу­ду­щих ре­ли­зах. По­ка ею луч­ше не поль­зо­вать­ся, ес­ли у вас на дис­ке сотни тре­ков. В на­шем тес­те им­пор­ти­ро­вание вось­ми пе­сен с вклю­чен­ным ав­то­ма­ти­че­­ским до­бав­лением тэ­гов за­ня­ло несколь­ко ми­нут. Бо­лее то­го, эта воз­мож­ность ра­бо­та­ет толь­ко с аль­бо­ма­ми. То есть, ес­ли вся ва­ша му­зы­ка ле­жит в од­ном боль­шом ка­та­ло­ге, Beets, воз­мож­но, не сде­ла­ет мно­го­го для ка­ж­до­го из этих фай­лов. Од­на­ко ес­ли вы при­ло­жи­ли неко­то­рые уси­лия и раз­мес­ти­ли тре­ки в раз­ных ка­та­ло­гах, Beets со­чтет ка­ж­дый ка­та­лог аль­бо­мом и по­про­бу­ет най­ти ме­та­дан­ные для тре­ков. Ес­ли вы хо­ти­те толь­ко за­гру­зить ме­та­дан­ные, не при­ме­няя их к фай­лам, нуж­но восполь­зо­вать­ся клю­чом -W. Ко­ман­да
+
Воз­мож­ность ав­то­до­бав­ления тэ­гов мо­жет про­сла­вить или опо­зо­рить Beets в бу­ду­щих ре­ли­зах. По­ка ею луч­ше не поль­зо­вать­ся, ес­ли у вас на дис­ке сотни тре­ков. В на­шем тес­те им­пор­ти­ро­вание вось­ми пе­сен с вклю­чен­ным ав­то­ма­ти­че­­ским до­бав­лением тэ­гов за­ня­ло несколь­ко ми­нут. Бо­лее то­го, эта воз­мож­ность ра­бо­та­ет толь­ко с аль­бо­ма­ми. То есть, ес­ли вся ва­ша му­зы­ка ле­жит в од­ном боль­шом ка­та­ло­ге, Beets, воз­мож­но, не сде­ла­ет мно­го­го для ка­ж­до­го из этих фай­лов.  
 +
{{Врезка|left|Ширина=20%|Заголовок= Скорая помощь|Содержание=Для по­лу­че­ния крат­кой ста­ти­сти­ки про­ин­дек­си­ро­ван­ных фай­лов, та­кой как ко­ли­че­ст­во тре­ков, об­щее вре­мя вос­про­из­ве­де­ния и т. д., при­го­дит­ся ко­ман­да
 +
 
 +
beet stats
 +
}}
 +
Од­на­ко ес­ли вы при­ло­жи­ли неко­то­рые уси­лия и раз­мес­ти­ли тре­ки в раз­ных ка­та­ло­гах, Beets со­чтет ка­ж­дый ка­та­лог аль­бо­мом и по­про­бу­ет най­ти ме­та­дан­ные для тре­ков. Ес­ли вы хо­ти­те толь­ко за­гру­зить ме­та­дан­ные, не при­ме­няя их к фай­лам, нуж­но восполь­зо­вать­ся клю­чом -W. Ко­ман­да
  
 
beet import -W /path/to/files
 
beet import -W /path/to/files
Строка 101: Строка 148:
  
 
import_resume
 
import_resume
 
+
{{Врезка|left|Ширина=20%|Заголовок=Скорая помощь |Содержание= На­зна­че­ние па­ра­мет­ров в верх­нем и ниж­нем ре­ги­ст­ре в Beets раз­лич­но и яв­ля­ет­ся про­ти­во­по­лож­ным: на­при­мер, -w (за­пи­сы­вать) и -W (не за­пи­сы­вать), -p (вос­ста­нав­ли­вать) и -P (не вос­ста­нав­ли­вать).}}
 
в ~/.beetsconfig принима­ет три воз­мож­ных зна­чения: yes [да], no [нет] и ask [спро­сить]. Есть мно­же­ст­во дру­гих по­хо­жих па­ра­мет­ров, при­ме­няе­мых при им­пор­те фай­лов в Beets. Пол­ный спи­сок и крат­кое опи­сание всех па­ра­мет­ров мож­но по­лу­чить ко­ман­дой
 
в ~/.beetsconfig принима­ет три воз­мож­ных зна­чения: yes [да], no [нет] и ask [спро­сить]. Есть мно­же­ст­во дру­гих по­хо­жих па­ра­мет­ров, при­ме­няе­мых при им­пор­те фай­лов в Beets. Пол­ный спи­сок и крат­кое опи­сание всех па­ра­мет­ров мож­но по­лу­чить ко­ман­дой
  
 
beet ? Import
 
beet ? Import
  
Ра­бо­та с ав­то­ма­ти­че­ским тэг­ге­ром
+
===Ра­бо­та с ав­то­ма­ти­че­ским тэг­ге­ром===
  
 
Ес­ли фай­лов у вас немно­го или фай­лы тща­тель­но от­сор­ти­ро­ва­ны по раз­лич­ным ка­та­ло­гам, вы долж­ны по­про­бо­вать ав­то­ма­ти­че­­ский тэг­гер Beets в дей­ст­вии.
 
Ес­ли фай­лов у вас немно­го или фай­лы тща­тель­но от­сор­ти­ро­ва­ны по раз­лич­ным ка­та­ло­гам, вы долж­ны по­про­бо­вать ав­то­ма­ти­че­­ский тэг­гер Beets в дей­ст­вии.
  
 
Сде­лать так, что­бы у всех фай­лов бы­ли осмыс­лен­ные име­на, нель­зя, и вполне ес­те­ст­вен­но, ес­ли в имя фай­ла за­кра­дет­ся спец­сим­вол или у песни нет точ­но­го на­звания. Ес­ли это ка­са­ет­ся и ва­ших му­зыкаль­ных фай­лов, ав­то­тэг­гер не толь­ко за­гру­зит ме­та­дан­ные для фай­лов, но и по­пы­та­ет­ся пе­ре­име­но­вать фай­лы, за­од­но очи­стив их имена от лишних сим­во­лов.
 
Сде­лать так, что­бы у всех фай­лов бы­ли осмыс­лен­ные име­на, нель­зя, и вполне ес­те­ст­вен­но, ес­ли в имя фай­ла за­кра­дет­ся спец­сим­вол или у песни нет точ­но­го на­звания. Ес­ли это ка­са­ет­ся и ва­ших му­зыкаль­ных фай­лов, ав­то­тэг­гер не толь­ко за­гру­зит ме­та­дан­ные для фай­лов, но и по­пы­та­ет­ся пе­ре­име­но­вать фай­лы, за­од­но очи­стив их имена от лишних сим­во­лов.
 +
{{Врезка|left|Ширина=30%|Заголовок=Гра­фи­че­ский Beets |Содержание=
 +
В Beets так­же есть пла­гин web-gui, хо­тя он и на­хо­дит­ся на экс­пе­ри­мен­таль­ной ста­дии раз­ра­бот­ки. Что­бы его ак­ти­ви­ро­вать, до­бавь­те web к стро­ке
 +
 +
plugins =
 +
 +
в фай­ле ~/.beetsconfig.
 +
 +
Те­перь вы­пол­ни­те ко­ман­ду
 +
 +
beet web
 +
 +
и от­крой­те в брау­зе­ре http://localhost:8337, что­бы уви­деть гра­фи­че­ский ин­тер­фейс Beets. В тек­сто­вом по­ле в ле­вом верх­нем уг­лу мож­но вво­дить по­ис­ко­вые стро­ки. Для вос­про­из­ве­де­ния тре­ков из биб­лио­те­ки пла­гин ис­поль­зу­ет HTML5 Audio. Про­сто два­ж­ды щелк­ни­те на пес­не, и Beets вос­про­из­ве­дет ее для вас.
 +
 +
При же­ла­нии имя хос­та и порт мож­но за­дать ко­ман­дой
 +
 +
beet web [HOSTNAME] [PORT]
 +
 +
или прописать эту информацию в фай­ле на­строй­ки ~/.beetsconfig:
 +
 +
[web]
 +
 +
host=127.0.0.1
 +
 +
port=5555
  
 +
Уч­ти­те, что пла­гин еще в раз­ра­бот­ке и мо­жет не­ожи­дан­но «упасть».
 +
}}
 
Для по­лу­чения всей ин­фор­ма­ции о фай­лах Beets под­клю­ча­ет­ся к ба­зе дан­ных MusicBrainz. За­тем для ка­ж­до­го фай­ла в аль­бо­ме Beets по­про­сит под­твер­дить, что най­ден­ная ин­фор­ма­ция вер­на. Он вы­ве­дет спи­сок всех тре­ков, най­ден­ных в Ин­тернете, с ве­ро­ят­но­стью со­от­вет­ст­вия ка­ж­до­го в про­цен­тах.
 
Для по­лу­чения всей ин­фор­ма­ции о фай­лах Beets под­клю­ча­ет­ся к ба­зе дан­ных MusicBrainz. За­тем для ка­ж­до­го фай­ла в аль­бо­ме Beets по­про­сит под­твер­дить, что най­ден­ная ин­фор­ма­ция вер­на. Он вы­ве­дет спи­сок всех тре­ков, най­ден­ных в Ин­тернете, с ве­ро­ят­но­стью со­от­вет­ст­вия ка­ж­до­го в про­цен­тах.
  
Строка 166: Строка 239:
 
При на­жа­тии M Beets вы­ве­дет спи­сок дру­гих воз­мож­ных сов­па­дений. За­тем мож­но вы­брать трек из спи­ска, ес­ли най­ден вер­ный ва­ри­ант, или им­пор­ти­ро­вать тре­ки как есть. Ес­ли сов­па­дения не най­де­но, мож­но на­жать A для при­менения из­менений, и Beets пе­ре­име­ну­ет фай­лы.
 
При на­жа­тии M Beets вы­ве­дет спи­сок дру­гих воз­мож­ных сов­па­дений. За­тем мож­но вы­брать трек из спи­ска, ес­ли най­ден вер­ный ва­ри­ант, или им­пор­ти­ро­вать тре­ки как есть. Ес­ли сов­па­дения не най­де­но, мож­но на­жать A для при­менения из­менений, и Beets пе­ре­име­ну­ет фай­лы.
  
За­про­сы к биб­лио­те­ке
+
===За­про­сы к биб­лио­те­ке===
  
 
Не­воз­мож­но, да и неза­чем помнить все тре­ки/аль­бо­мы, ко­то­рые вы ин­дек­си­ро­ва­ли в биб­лио­те­ке Beets: к биб­лио­те­ке в любой момент можно лег­ко сде­лать за­прос ко­ман­дой list. На­при­мер, ко­ман­да
 
Не­воз­мож­но, да и неза­чем помнить все тре­ки/аль­бо­мы, ко­то­рые вы ин­дек­си­ро­ва­ли в биб­лио­те­ке Beets: к биб­лио­те­ке в любой момент можно лег­ко сде­лать за­прос ко­ман­дой list. На­при­мер, ко­ман­да
Строка 195: Строка 268:
  
 
beet remove infin
 
beet remove infin
 
+
{{Врезка|right|Ширина=20%|Заголовок=Скорая помощь |Содержание=
 +
Beets ра­бо­та­ет толь­ко с MusicBrainz, и ес­ли ис­пол­ни­те­ля/аль­бо­ма там нет, Beets не по­лу­чит ни­ка­ких ме­та­дан­ных. По­ду­май­те о том, что­бы са­мим до­ба­вить аль­бом в MusicBrainz.
 +
}}
 
За­тем Beets по­про­сит вас под­твер­дить, что вы хо­ти­те уда­лить все по­ка­зан­ные фай­лы, ко­то­рые со­от­вет­ст­ву­ют за­про­су. Что­бы уда­лить фай­лы и из биб­лио­те­ки, и с дис­ка, до­бавь­те к ко­ман­де remove па­ра­метр -d. Ко­ман­да
 
За­тем Beets по­про­сит вас под­твер­дить, что вы хо­ти­те уда­лить все по­ка­зан­ные фай­лы, ко­то­рые со­от­вет­ст­ву­ют за­про­су. Что­бы уда­лить фай­лы и из биб­лио­те­ки, и с дис­ка, до­бавь­те к ко­ман­де remove па­ра­метр -d. Ко­ман­да
  
Строка 202: Строка 277:
 
уда­лит из биб­лио­те­ки и с дис­ка все аль­бо­мы (па­ра­метр -a), в ко­то­рых есть сло­во ‘infi’.
 
уда­лит из биб­лио­те­ки и с дис­ка все аль­бо­мы (па­ра­метр -a), в ко­то­рых есть сло­во ‘infi’.
  
Модули рас­ши­рения Beets
+
===Модули рас­ши­рения Beets===
  
 
Ос­нов­ное на­зна­чение Beets – по­мочь вам упо­ря­до­чить му­зыкаль­ные фай­лы. Он не пы­та­ет­ся де­лать что-то еще. Тем не менее, как у лю­бой приличной про­грам­мы, у Beets существует до­ба­воч­ный спи­сок модулей-плагинов, рас­ши­ряю­щих его функ­цио­наль­ность.
 
Ос­нов­ное на­зна­чение Beets – по­мочь вам упо­ря­до­чить му­зыкаль­ные фай­лы. Он не пы­та­ет­ся де­лать что-то еще. Тем не менее, как у лю­бой приличной про­грам­мы, у Beets существует до­ба­воч­ный спи­сок модулей-плагинов, рас­ши­ряю­щих его функ­цио­наль­ность.

Текущая версия на 09:40, 14 ноября 2018

Ме­нед­жер ме­диа-биб­лио­тек: Ор­га­ни­зуй­те свою фо­но­те­ку из ко­манд­ной стро­ки

Содержание

[править] Beets: Ру­ли­те сво­ей му­зы­кой

Тех­на­ри-ме­ло­ма­ны ли­ку­ют. Фа­нат ко­манд­ной стро­ки Ша­шанк Шар­ма от­крыл ме­нед­жер фай­лов муль­ти­ме­диа для ко­манд­ной стро­ки.

(thumbnail)
Наш эксперт Ша­шанк Шар­ма бо­лее че­ты­рех лет пи­шет о сво­бод­ном ПО для раз­лич­ных из­да­ний вклю­чая Linux.com. Он со­ав­тор кни­ги «Fedora для на­чи­наю­щих».

Не­давние тек­тониче­­ские сдви­ги в по­пу­ляр­ных ра­бо­чих сто­лах при­ве­ли к то­му, что мно­гие лю­ди ме­ня­ют при­стра­стия, ра­бо­чие сре­ды и опе­ра­ци­он­ные сис­те­мы. А команд­ная стро­ка не спе­ша пых­тит се­бе в пол­ной уве­рен­но­сти, что бу­дет толь­ко при­вле­кать но­вых поль­зо­ва­те­лей, но никогда не по­те­ря­ет ста­рых. При­чи­на – от­час­ти в ог­ром­ном ко­ли­че­­ст­ве мощ­ных ути­лит, ко­то­рые она пре­достав­ля­ет.

Здесь мы об­су­дим Beets, менед­жер ме­диа-биб­лио­те­ки, умею­щий ис­прав­лять ме­та­дан­ные пе­сен, за­гру­жать об­лож­ки, тек­сты, чинить име­на фай­лов и др. В от­ли­чие от дру­гих ана­ло­гов из команд­ной стро­ки, Beets немно­го неук­люж – по крайней ме­ре, в на­звании. Все по­то­му, что он от­вер­га­ет тра­ди­ци­он­ное для команд­ной стро­ки сов­па­дение имени при­ло­жения с именем ко­ман­ды. Что­бы восполь­зо­вать­ся Beets, вы за­пускае­те не beets, а beet! Ус­та­но­вить Beets мож­но из менед­же­ра па­ке­тов ди­ст­ри­бу­ти­ва, но вер­сия ско­рее все­го бу­дет ста­рой. Про­ект ак­тив­но раз­ра­ба­ты­ва­ет­ся, и луч­ше за­гру­зить са­мую по­след­нюю вер­сию.

Не­за­ви­си­мо от ва­ше­го ди­ст­ри­бу­ти­ва, по­след­нюю вер­сию Beets удобнее все­го уста­но­вить с pip – это сис­те­ма управ­ления па­ке­та­ми, ис­поль­зуе­мая для уста­нов­ки па­ке­тов Python и управ­ления ими. Это не аль­тер­на­ти­ва yum и дру­гим по­доб­ным ути­ли­там. Ес­ли pip еще не уста­нов­лен в ва­шей сис­те­ме, уста­но­ви­те па­кет python-pip из про­грамм­ных ре­по­зи­то­ри­ев. Ко­ман­да

sudo apt-get install python-pip

или

su -c ‘yum install python-pip’

сде­ла­ет это, а так­же ус­та­но­вит за­ви­си­мо­сти, та­кие как python-setuptools и python-dev. За­тем ус­та­но­ви­те Beets ко­ман­дой

pip install beets

Pip за­гру­зит и ус­та­но­вит все не­об­хо­ди­мые за­ви­си­мо­сти. В даль­ней­шем мож­но об­но­вить Beets в лю­бой мо­мент, ко­ман­дой

pip install -U beets

Па­ра­метр -U ве­лит pip об­но­вить уста­нов­лен­ный па­кет. Ес­ли вы уста­нав­ли­ва­ли па­кет из менед­же­ра па­ке­тов ди­ст­ри­бу­ти­ва, не пы­тай­тесь об­но­вить его с pip. Ес­ли вы это сде­лае­те, то у вас бу­дет два от­дель­ных эк­зем­п­ля­ра од­но­го и то­го же па­ке­та. То же от­но­сит­ся к уда­лению па­ке­та. Ес­ли вы уста­нав­ли­ва­ли па­кет с pip, уда­ляй­те его ко­ман­дой

pip uninstall packagename

Са­мая об­шир­ная за­да­ча при ра­бо­те с Beets – соз­дание его фай­ла на­строй­ки, ко­то­ро­го по умол­чанию не су­ще­ст­ву­ет. Его при­дет­ся соз­дать вруч­ную. Но пусть это вас не бес­по­ко­ит. По­на­до­бит­ся ми­ну­та или две, во вся­ком слу­чае, для на­ча­ла. От­крой­те свой лю­би­мый тек­сто­вый ре­дак­тор и вве­ди­те

[beets]

directory: ~/Music

library: ~/beetsmusic.blb

Со­храните файл под именем .beetsconfig в сво­ем до­машнем ка­та­ло­ге. Это минималь­но необ­хо­ди­мое со­дер­жи­мое фай­ла ~/.beetsconfig. Файл биб­лио­те­ки уже есть в до­машнем ка­та­ло­ге поль­зо­ва­те­ля, но при же­лании его мож­но пе­ре­дислоцировать в дру­гое ме­стоположение.

В за­ви­си­мо­сти от на­строй­ки Beets, па­ра­метр directory вы­ше слу­жит од­ной из двух це­лей. Это ли­бо ка­та­лог, в ко­то­ром хра­нят­ся ва­ши му­зыкаль­ные фай­лы, ли­бо пустой ка­та­лог, ку­да вы собираетесь пе­ре­мес­тить свои фай­лы по­сле то­го, как их про­ин­дек­си­ру­ет Beets.

Ес­ли вы намерены толь­ко им­пор­ти­ро­вать фай­лы в биб­лио­те­ку Beets, со­хранив те­ку­щие струк­ту­ру ка­та­ло­гов и рас­по­ло­жение фай­лов, ука­жи­те в па­ра­мет­ре directory ка­та­лог со свои­ми му­зыкаль­ны­ми фай­ла­ми и вы­полните ко­ман­ду

beet import ~/Music

Она про­ин­дек­си­ру­ет все му­зыкаль­ные фай­лы из ука­зан­но­го ка­та­ло­га. В по­ряд­ке аль­тер­на­ти­вы пред­по­ло­жим, что ва­ши му­зыкаль­ные фай­лы хра­нят­ся в ка­та­ло­ге ~/Desktop/songs/, а вы хо­ти­те им­пор­ти­ро­вать и пе­ре­мес­тить их в ка­та­лог ~/Music. Тогда пре­ж­де все­го сде­лай­те так, что­бы па­ра­метр directory в фай­ле ~/.beetsconfig ука­зы­вал на пустой ка­та­лог. Так­же нуж­но до­ба­вить в конец фай­ла чет­вер­тую стро­ку:

import_move: yes

Она га­ран­ти­ру­ет, что при за­пус­ке ко­ман­ды

beet import ~/Desktop/songs

му­зы­каль­ные фай­лы из ка­та­ло­га songs бу­дут про­ин­дек­си­ро­ва­ны и пе­ре­ме­ще­ны в ка­та­лог ~/Music. Ес­ли не ука­зы­вать

import_move: yes

Beets ско­пи­ру­ет все про­ин­дек­си­ро­ван­ные фай­лы в пус­той ка­та­лог music. Ес­ли вы не хо­ти­те и ко­пи­ро­вать фай­лы, до­бавь­те в файл ~/.beetsconfig стро­ку

import_copy: no

[править] Па­ра­мет­ры на­строй­ки

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

Пусть оби­лие па­ра­мет­ров вас не пу­га­ет: на­чи­ная поль­зо­вать­ся Beets, всех их ука­зы­вать не нуж­но. На­строй­ки по умол­чанию удов­ле­тво­ря­ют боль­шин­ст­во поль­зо­ва­те­лей, по­это­му по­мес­тить три вы­ше­упо­мя­ну­тые стро­ки в ~/.beetsconfig бу­дет доста­точ­но для стар­та в Beets.

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

При им­пор­ти­ро­вании фай­лов в биб­лио­те­ку Beets по­пы­та­ет­ся най­ти ин­фор­ма­цию о фай­лах в Ин­тернете и по­лу­чить все­воз­мож­ные ме­та­дан­ные этих фай­лов.

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

beet import /path/to/music/files

вы­пол­ня­ет несколь­ко функ­ций. Она до­ба­вит фай­лы в биб­лио­те­ку, ско­пи­ру­ет фай­лы в ка­та­лог, ука­зан­ный в ~/.beetsconfig, и по­пы­та­ет­ся за­гру­зить и до­ба­вить в фай­лы ме­та­дан­ные и дру­гие тэ­ги. Ес­ли у вас боль­шая кол­лек­ция му­зы­ки, и вы не хо­ти­те до­бав­лять в них тэ­ги при им­пор­те в биб­лио­те­ку, ука­жи­те па­ра­метр -A, что­бы Beets не до­бав­лял тэ­ги ав­то­ма­ти­че­­ски:

beet import -A /path/to/music/files

Воз­мож­ность ав­то­до­бав­ления тэ­гов мо­жет про­сла­вить или опо­зо­рить Beets в бу­ду­щих ре­ли­зах. По­ка ею луч­ше не поль­зо­вать­ся, ес­ли у вас на дис­ке сотни тре­ков. В на­шем тес­те им­пор­ти­ро­вание вось­ми пе­сен с вклю­чен­ным ав­то­ма­ти­че­­ским до­бав­лением тэ­гов за­ня­ло несколь­ко ми­нут. Бо­лее то­го, эта воз­мож­ность ра­бо­та­ет толь­ко с аль­бо­ма­ми. То есть, ес­ли вся ва­ша му­зы­ка ле­жит в од­ном боль­шом ка­та­ло­ге, Beets, воз­мож­но, не сде­ла­ет мно­го­го для ка­ж­до­го из этих фай­лов.

Од­на­ко ес­ли вы при­ло­жи­ли неко­то­рые уси­лия и раз­мес­ти­ли тре­ки в раз­ных ка­та­ло­гах, Beets со­чтет ка­ж­дый ка­та­лог аль­бо­мом и по­про­бу­ет най­ти ме­та­дан­ные для тре­ков. Ес­ли вы хо­ти­те толь­ко за­гру­зить ме­та­дан­ные, не при­ме­няя их к фай­лам, нуж­но восполь­зо­вать­ся клю­чом -W. Ко­ман­да

beet import -W /path/to/files

ве­лит Beets за­гру­зить ме­та­дан­ные и со­хра­нить их в ба­зе дан­ных без за­пи­си в му­зы­каль­ные фай­лы. Вме­сто ис­поль­зо­ва­ния па­ра­мет­ра -W мож­но до­ба­вить па­ра­метр

import_write: yes

или

import_write: no

в файл ~/.beetsconfig. Еще од­на важ­ная воз­мож­ность при им­пор­те фай­лов – во­зоб­нов­ление, resume. Она ак­ти­ви­ру­ет­ся, ес­ли Beets об­на­ру­жит пре­рван­ный import. Им­порт мо­жет быть пре­рван поль­зо­ва­те­лем или в слу­чае ошиб­ки. Beets фик­си­ру­ет все пре­рван­ные им­пор­ты и при об­на­ру­жении неза­вер­шен­но­го им­пор­та спра­ши­вает у вас, что нуж­но сде­лать. Ес­ли вы хо­ти­те, что­бы все пре­рван­ные им­пор­ты всегда восста­нав­ли­ва­лись в ис­ход­ное со­стояние, мож­но до­ба­вить стро­ку

import_resume: yes

в файл ~/.beetsconfig или, ес­ли вам лень, вос­поль­зо­вать­ся па­ра­мет­ром -p. Ко­ман­да

beet import -p /path/to/files

вос­ста­но­вит все пре­рван­ные им­пор­ты, ес­ли это воз­мож­но. Стро­ка

import_resume

в ~/.beetsconfig принима­ет три воз­мож­ных зна­чения: yes [да], no [нет] и ask [спро­сить]. Есть мно­же­ст­во дру­гих по­хо­жих па­ра­мет­ров, при­ме­няе­мых при им­пор­те фай­лов в Beets. Пол­ный спи­сок и крат­кое опи­сание всех па­ра­мет­ров мож­но по­лу­чить ко­ман­дой

beet ? Import

[править] Ра­бо­та с ав­то­ма­ти­че­ским тэг­ге­ром

Ес­ли фай­лов у вас немно­го или фай­лы тща­тель­но от­сор­ти­ро­ва­ны по раз­лич­ным ка­та­ло­гам, вы долж­ны по­про­бо­вать ав­то­ма­ти­че­­ский тэг­гер Beets в дей­ст­вии.

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

Для по­лу­чения всей ин­фор­ма­ции о фай­лах Beets под­клю­ча­ет­ся к ба­зе дан­ных MusicBrainz. За­тем для ка­ж­до­го фай­ла в аль­бо­ме Beets по­про­сит под­твер­дить, что най­ден­ная ин­фор­ма­ция вер­на. Он вы­ве­дет спи­сок всех тре­ков, най­ден­ных в Ин­тернете, с ве­ро­ят­но­стью со­от­вет­ст­вия ка­ж­до­го в про­цен­тах.

Ес­ли все фай­лы рас­пре­де­ле­ны по ка­та­ло­гам, у ав­то­тэг­ге­ра Beets не возникнет с ними про­блем, да­же ес­ли они глу­бо­ко уп­ря­та­ны в ка­та­ло­ги вро­де songs/hiphop/male/2000s/fanboy-artist-hero/. Beets так­же рас­по­зна­ет аль­бо­мы на несколь­ких дис­ках и по­ме­ча­ет их вме­сте как один ре­лиз. Для это­го он ищет клю­че­вые сло­ва, та­кие как ‘part’, ‘vol.’, ‘volume’, ‘CD’ и ‘disc’.

Для ка­ж­до­го най­ден­но­го ва­ри­ан­та Beets ото­бра­жа­ет про­цент со­от­вет­ст­вия. Со­от­вет­ст­вие в 100 % – точ­ное, и в этом слу­чае Beets при необ­хо­ди­мо­сти пе­ре­име­ну­ет файл ав­то­ма­ти­че­­ски. Ес­ли про­цент со­от­вет­ст­вия не слиш­ком вы­сок или со­от­вет­ст­вие имени фай­ла не пол­ное, а час­тич­ное, Beets по­про­сит вас под­твер­дить из­менения.

linuxlala@playground ~ $ beet import Music/Infinite_Livez/Cracks\ in\ the\ Great\ Lens/

/home/linuxlala/Music/Infinite_Livez/Cracks in the Great Lens

Finding tags for album “Infinite Livez - Cracks in the Great Lens”.

Candidates:

1. INFINITE - INFINITIZE [Woollim Entertainment, 2012] (36.5%)

2. INFINITE - OVER THE TOP [Woollim Entertainment, 2011] (35.1%) (partial match!)

3. Infinite Livez vs. Stade - Morgan Freeman’s Psychedelic [Big Dada, 2008] (33.2%) (partial match!)

4. Annie Lennox - Pavement Cracks (The Remixes) [BMG UK & Ireland, 2003] (29.8%)

5. Infinite Livez - Bush Meat [2004] (27.9%) (partial match!)

  1. selection (default 1), Skip, Use as-is, as Tracks, Enter search, enter Id, aBort?

В дан­ном слу­чае Beets не смог най­ти точ­но­го ис­полните­ля/аль­бом и пре­доста­вил спи­сок час­тич­ных со­от­вет­ст­вий. Мож­но ли­бо про­пустить им­порт это­го аль­бо­ма, на­жав S, ли­бо на­жать U, что­бы им­пор­ти­ро­вать тре­ки как они есть, с те­ку­щи­ми ме­та­дан­ны­ми. Ес­ли фай­лы не яв­ля­ют­ся ча­стью аль­бо­ма, на­жми­те T. За­тем Beets по­пы­та­ет­ся най­ти для них со­от­вет­ст­вие сре­ди синг­лов, а не аль­бо­мов. Так­же мож­но со­об­щить Beets ис­полните­ля и на­звание аль­бо­ма, по ко­то­рым он смо­жет най­ти ин­фор­ма­цию в ба­зе дан­ных в Ин­тернете. Ес­ли ни один из этих ва­ри­ан­тов вас не удов­ле­тво­ря­ет, на­жми­те B, что­бы не им­пор­ти­ро­вать этот аль­бом в вашу упорядоченную биб­лио­те­ку.

Иногда Beets не слиш­ком уве­рен в най­ден­ных ва­ри­ан­тах и пред­ла­га­ет по­ис­кать дру­гие:

linuxlala@playground ~ $ beet import Music/The\ Strangers/

/home/linuxlala/Music/The Strangers

Здесь тэ­ги

The Strangers - Live On WFMU’s Minor Music with Jesse

Krakow, 11-19-12

бы­ли из­ме­не­ны на

Strangers - Shine On You

(Similarity: 47.1%)

  • A Little Too Fast (3) -> Shine On You (1)
  • Missing track: Shine On You (Draper remix) (2)

[A]pply, More candidates, Skip, Use as-is, as Tracks, Enter search, enter Id, aBort?

При на­жа­тии M Beets вы­ве­дет спи­сок дру­гих воз­мож­ных сов­па­дений. За­тем мож­но вы­брать трек из спи­ска, ес­ли най­ден вер­ный ва­ри­ант, или им­пор­ти­ро­вать тре­ки как есть. Ес­ли сов­па­дения не най­де­но, мож­но на­жать A для при­менения из­менений, и Beets пе­ре­име­ну­ет фай­лы.

[править] За­про­сы к биб­лио­те­ке

Не­воз­мож­но, да и неза­чем помнить все тре­ки/аль­бо­мы, ко­то­рые вы ин­дек­си­ро­ва­ли в биб­лио­те­ке Beets: к биб­лио­те­ке в любой момент можно лег­ко сде­лать за­прос ко­ман­дой list. На­при­мер, ко­ман­да

beet ls desire

вы­ве­дет все песни со сло­вом ‘desire’ в имени фай­ла. Beets бу­дет ис­кать сло­во ‘desire’ в ме­та­дан­ных всех фай­лов и ото­бра­зит ре­зуль­та­ты, в ко­то­рых это сло­во есть в лю­бых ме­та­дан­ных, в на­звании, ис­полните­ле, на­звании аль­бо­ма и т. д.

Ес­ли ука­зать несколь­ко слов, Beets ав­то­ма­ти­че­­ски объ­е­динит их ло­ги­че­­ским «и» и вы­ве­дет толь­ко те ре­зуль­та­ты, в ко­то­рых есть все ука­зан­ные сло­ва в лю­бом по­ряд­ке. То есть, од­но из слов мо­жет быть в имени ис­полните­ля, дру­гое – в на­звании аль­бо­ма, и т. д. Все сло­ва мо­гут быть в раз­ных по­лях. Ес­ли ре­зуль­та­тов слиш­ком мно­го, уточните за­прос, за­дав по­ле по­ис­ка. На­при­мер, ко­ман­да

beet ls artist:pink

по­ка­жет все ре­зуль­та­ты, в ко­то­рых имя ис­пол­ни­те­ля со­от­вет­ст­ву­ет ‘pink’. Точ­но так же мож­но за­да­вать па­ра­мет­ры аль­бо­мов па­ра­мет­ром -a с ко­ман­дой

beet ls

Спи­сок всех аль­бо­мов за­дан­но­го жан­ра вы­ве­дет ко­ман­да

beet ls -a genre:rap

В од­ном за­про­се мож­но объ­е­ди­нять не­сколь­ко по­лей, что­бы су­зить рамки поиска.

В по­ис­ко­вых за­про­сах мож­но ис­поль­зо­вать и не­сколь­ко по­лей, на­при­мер, year [год], genre [жанр], month [ме­сяц] и country [стра­на]. Ко­ман­да

beet fields

вы­ве­дет пол­ный спи­сок по­лей тре­ка и аль­бо­ма, ко­то­рые мож­но ис­поль­зо­вать в за­про­сах. Ана­ло­гич­ная струк­ту­ра за­про­са есть у ко­ман­ды remove, так что мож­но пи­сать слож­ные за­про­сы для уда­ления за­пи­сей из биб­лио­те­ки Beets. На­при­мер, ес­ли вы хо­ти­те уда­лить из биб­лио­те­ки фай­лы со сло­вом ‘infin’, ско­ман­дуй­те

beet remove infin

За­тем Beets по­про­сит вас под­твер­дить, что вы хо­ти­те уда­лить все по­ка­зан­ные фай­лы, ко­то­рые со­от­вет­ст­ву­ют за­про­су. Что­бы уда­лить фай­лы и из биб­лио­те­ки, и с дис­ка, до­бавь­те к ко­ман­де remove па­ра­метр -d. Ко­ман­да

beet remove -ad infi

уда­лит из биб­лио­те­ки и с дис­ка все аль­бо­мы (па­ра­метр -a), в ко­то­рых есть сло­во ‘infi’.

[править] Модули рас­ши­рения Beets

Ос­нов­ное на­зна­чение Beets – по­мочь вам упо­ря­до­чить му­зыкаль­ные фай­лы. Он не пы­та­ет­ся де­лать что-то еще. Тем не менее, как у лю­бой приличной про­грам­мы, у Beets существует до­ба­воч­ный спи­сок модулей-плагинов, рас­ши­ряю­щих его функ­цио­наль­ность.

Нет ниче­го пло­хо­го, ес­ли про­грам­ма для управ­ления му­зыкаль­ным ка­та­ло­гом за­од­но про­иг­ры­ва­ла бы му­зы­ку, да­же не имея всех воз­мож­но­стей пол­но­цен­но­го му­зыкаль­но­го плей­е­ра, и раз­ра­бот­чи­ки Beets, по­хо­же, с этим со­глас­ны. Beets по­став­ля­ет­ся вме­сте с BPD, а это, как мож­но до­га­дать­ся по на­званию, клон по­пу­ляр­но­го му­зыкаль­но­го про­иг­ры­ва­те­ля команд­ной стро­ки MPD. В нем нет всей функ­цио­наль­но­сти MPD, и вам не обя­за­тель­но про­иг­ры­вать му­зы­ку в BPD или упо­ря­до­чи­вать му­зыкаль­ные фай­лы с Beets. Са­ма до­ку­мен­та­ция про­ек­та ука­зы­ва­ет на CMUS, один из са­мых про­стых и мощ­ных му­зыкаль­ных про­иг­ры­ва­те­лей в команд­ной стро­ке, ко­то­рые толь­ко мож­но най­ти.

На са­мом де­ле, нам не уда­лось за­ста­вить BPD ра­бо­тать с Beets ни на од­ном из тес­то­вых ком­пь­ю­те­ров с раз­ны­ми ди­ст­ри­бу­ти­ва­ми! Сам про­цесс на­строй­ки BPD со­сто­ит из несколь­ких эта­пов, по­это­му луч­ше поль­зо­вать­ся CMUS или лю­бым кли­ен­том MPD.

По умол­чанию в Beets есть несколь­ко модулей расширения, но сна­ча­ла их нуж­но ак­ти­ви­ро­вать. Для ак­ти­ва­ции модуля зай­ди­те в файл ~/.beetsconfig и до­бавь­те стро­ку

plugins =

В этой стро­ке за­да­ет­ся раз­де­лен­ный про­бе­ла­ми спи­сок модулей, ко­то­рые нуж­но ак­ти­ви­ро­вать. Ска­жем, ес­ли вы хо­ти­те ак­ти­ви­ро­вать модули BPD, Info и Random, стро­ка бу­дет вы­гля­деть так:

plugins = bpd rdm info

По­сле ак­ти­ва­ции модуля в стро­ке

plugins =

в фай­ле ~/.beetsconfig вам ста­нет дос­туп­на его справ­ка, ко­то­рую мож­но по­лу­чить ко­ман­дой

beet ? pluginname

Так, для по­лу­че­ния справ­ки про модуль random ско­ман­дуй­те

beet ? Random

Персональные инструменты
купить
подписаться
Яндекс.Метрика