Як я можу отримати тексти пісень для всієї музики та зберігати їх у файлах?


14

У мене є велика музична бібліотека (більшість з них .mp3& .m4a), і жодна з них не має пісень. Чи є програма чи плагін, які автоматично додають тексти пісень до всієї моєї музики шляхом запитів в Інтернеті?

Оскільки у мене зазвичай немає підключення до Інтернету, мені потрібна програма, яка автоматично додає всі тексти пісень до тегів музичних файлів, щоб я міг їх переглядати в режимі офлайн.


2
Як додати текст пісні? До кожного музичного файлу? Який формат має ваша музична колекція? Як ви маєте намір переглянути переглянуту пісню?
fossfreedom

Все, що я хочу, - це коли музичні файли (в основному .mp3 & .m4a) відтворюються в музичному плеєрі, і я натискаю кнопку "відобразити тексти пісень", вона повинна мати змогу відображати тексти пісень. (усі мої теги для музичних файлів правильні).
Бхарат

2
Цей коментар сильно відрізняється від початкового питання. Вам слід принаймні оновити питання, щоб воно відображало ваші нові цілі.
Луїс де Соуза

У Amarok та Clementine є можливість редагувати пісні, які ви знайдете. Я не пробував цього, але він повинен зберігати їх десь локально, а потім отримувати їх для вас. Робити це на основі пісні за піснею було б справді нудно, але, мабуть, спрацює.
Джо

Є приємне програмне забезпечення під назвою clementine. Спробуй це. Він підтримує різні текстові онлайн-бази даних. (Вилка старого Амарока 1 *).
ддммитренко

Відповіді:


5

Це напіввідповідь, оскільки я не знаю вашого оточення, і код, який я надаю, повинен слугувати лише прикладом - запуск його так, як не повинно завдати шкоди, але я не можу дати жодної гарантії.

Такі завдання можна вирішити за допомогою простих скриптів bash, наприклад, у наступному прикладі я використовую eyeD3 для вилучення виконавця та заголовка, потім вільне дзеркало вікілірики для отримання пісень, а потім eyeD3 знову для збереження нового тегу. Я закликаю кожного, хто буде використовувати цей код, шукати інший API-текст пісень, оскільки використання однієї і тієї ж послуги знову і знову може вважатися зловмисною.

#!/bin/bash

_TPL='http://makeitpersonal.co/lyrics?artist=<artist>&title=<title>'
_SRY="Sorry, We don't have lyrics for this song yet."

[ "$1" ] && _PATH="$1" || _PATH=$PWD

cd $_PATH

for _FILE in {*.mp3,*.m4a}; do
    if [[ -r $_FILE ]]; then
        _SONG=$(eyeD3 --no-color "$_FILE" | grep title)

        _ARTIST="${_SONG#*"artist: "}"
        _TITLE="${_SONG%"artist: "*}"
        _TITLE="${_TITLE#"title: "}"

        echo -n "$_ARTIST - $_TITLE"

        _ARTIST="${_ARTIST// /+}"
        _TITLE="${_TITLE// /+}"
        _URL="${_TPL//"<artist>"/$_ARTIST}"
        _URL="${_URL//"<title>"/$_TITLE}"

        _LYRICS=$(wget -qO- $_URL)

        if [ "$_LYRICS" != "$_SRY" ]; then
            eyeD3 --lyrics=eng:Lyrics:"$_LYRICS" "$_FILE" 1>/dev/null
        else
            echo "No lyrics found... skipping!"
        fi
    fi
done

cd $OLDPWD

Інструкції (запускайте команди в терміналі):

  1. встановити wgetта eyeD3видавшиsudo apt-get install wget eyed3
  2. зберегти вище код у файл, наприклад /home/user/lyrics_fetcher.sh
  3. додати дозвіл на запуск файлу: chmod u+x /home/user/lyrics_fetcher.sh
  4. запустіть файл (пам'ятайте цитати): /home/user/lyrics_fetcher.sh "path_to_my_album"
  5. Ви можете будь-коли зупинити виконання сценарію, натиснувши ctrl+c

Я перевірив цей код на альбомі "AM" від Arctic Monkeys, і це було солодко.

Якщо ви дійсно хочете отримати тексти пісень для всіх своїх альбомів одразу, ви можете запустити сценарій у циклі для кожного каталогу. Проте я б не використовував це як остаточне рішення - вікіліріки, і всі, хто підтримує це дзеркальним відображенням, - хороші хлопці, і ця відповідь є тут, щоб просувати мислення, а не зловживати.


Я зробив саме так, як ви сказали, зберег даний код як текст_fetcher.sh вдома, а потім запустив команду в точці 2 в терміналі. Потім запустив цю команду "./lyrics_fetcher.sh / home / bharat / Music / Linkin-park / ЖИТТЯ-РОБОТИ ", тепер більше немає результатів. Я повний початківець, будь ласка, допоможіть мені.
Бхарат

1. Ви запускаєте всі команди в терміналі? (має бути термінальний вихід) 2. У вас встановлені wget та eyeD3? Якщо ні, запустіть 'sudo apt-get install wget eyed3'
cprn

@Bharat, ти повинен був використати команду ./lyrics_fetcher.sh "/home/bharat/Music/Linkin-park/LIVING-THINGS"У теці, в якій знаходиться сценарій. Ви пропустили лапки.
Оголошення20000

1
@ Ads20000 Ці інструкції я додав пізніше, коли побачив, з якою проблемою зіткнувся Бхарат. Про нього повідомили.
cprn

Я отримав помилку (червоним кольором) під час запуску скрипту кодек "ascii" не може кодувати символи в положенні 25-26: порядковий не в діапазоні (128) ". Що це означає?
noir1993

3

Нещодавно я написав сценарій python для автоматичного вибору та тегування пісень до вашої музики. Перевірте це тут . Це завантажить текст у форматі txt та вбудує його у свій .mp3 файл

Демо-версія Youtube .


1
  • lrc.pl - це перламутровий сценарій, використовуючи текст лірики David Precious ' :: Fetcher для пакетного завантаження текстів у форматі MP3.

  • Спробуйте також плагін Amarok Ultimate Lyrics . Ultimate Lyrics - це налаштований сценарій, який отримує тексти пісень з багатьох сайтів.

  • Ще один варіант: розширення лірики для банші


Ви справді не відповіли на питання - чи можете ви масово завантажувати тексти пісень - і зберігати ці пісні в автономному режимі в самих музичних файлах?
fossfreedom

1

як любитель музики, я можу порекомендувати вам плеєр Guayadeque , швидкий і легкий та повнофункціональний плеєр, і якщо я не помиляюся, у нього є розширення пісні за замовчуванням, і є можливість вибирати більше, і що, я слухаю пісні прямо зараз, і це показує тексти пісень до кожної пісні, навіть біографії групи. Є можливість зберігання пісень до пісні вручну, але краще синхронізувати з Інтернетом, звичайно, у будь-якому випадку це ваш вибір.

sudo add-apt-repository ppa:anonbeat/guayadeque

sudo apt-get update

sudo apt-get install guayadeque-svn

Ви справді не відповіли на питання - чи можете ви масово завантажувати тексти пісень - і зберігати ці пісні в автономному режимі в самих музичних файлах?
fossfreedom

так, він має вбудований редактор для налаштування / опції редагування пісні та вставлення або написання текстів самостійно до пісні в програвачі.
JoKeR

@JohnnyD. "власноруч" - ОП означало робити це автоматично в партії, а не вручну по черзі.
cprn

@CyprianGuerra, можливо, я неправильно зрозумів, про що він питає :-)
JoKeR

1

beets - це інструмент командного рядка для організації музичної бібліотеки, який може автоматично отримувати тексти пісень, а також безліч інших речей. З веб-сайту:

Метою буряків є отримання вашої колекції музики правильно раз і назавжди. Він каталогізує вашу колекцію, автоматично покращуючи свої метадані, використовуючи базу даних MusicBrainz. Потім він надає букет інструментів для маніпулювання та доступу до вашої музики.

Зокрема, у ньому є плагін для текстів, який отримує тексти з Lyric Wiki, Lyrics.com, Musixmatch, Genius.com або користувацького API пошуку Google.

Спільнота навколо неї дуже активна. Перевір!


0

Mp3nity безкоштовний протягом 1,5 місяців (можливо). Тоді вам доведеться придбати преміум-версію. У ньому вбудовані твори для альбомів. Ви можете отримати тексти пісень для всіх своїх музичних файлів одночасно.


0

Я особисто використовую пошук текстових текстів: https://www.lyricfinder.org/

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


0

Я використовую lyrico , сценарій python для завантаження текстів і вбудовування їх у метатеги ID3 або ogg vorbis.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.