Metadados da série iBooks

13

No iBooks, na versão 10.10, os livros podem ter metadados de série, conforme mostrado na imagem.

Quais metadados eu preciso adicionar a um epub externo (ou seja, não da loja ibook) para que ele possa ser exibido como uma série?

metadados da série

Bilal Syed Hussain
fonte
Você costumava editar muitas dessas informações quando os livros faziam parte do iTunes. O título da série era um campo editável que foi colocado para apoiar programas de TV. Você ainda pode vê-lo ao editar metadados de programas de TV no iTunes na guia Vídeo (os nomes dos campos eram diferentes para livros). No momento, com os recursos limitados do iBooks (principalmente a falta de edição de metadados), parece que essas informações estão vinculadas aos metadados da loja do iBooks. Provavelmente, ainda está no banco de dados SQLite do iBooks, portanto, se alguém souber como bisbilhotar por lá, eu adoraria ouvir sobre isso.
Nick

Respostas:

16

Eu fiz isso, mas é um pouco complicado.

Resumo:

É necessário alterar o arquivo Books.plist em ~ / Library / Containers / com.apple.BKAgentService / Data / Documents / iBooks / Books para os livros que você deseja ter em uma série e também adicionar linhas no BKSeries - * banco de dados sqlite em ~ / Library / Containers / com.apple.iBooksX / Data / Documents / BKSeriesDatabase para eles e a série.

Aqui está como eu fiz isso:

O banco de dados possui 4 tabelas: ZBKSERIESCHECK , ZBKSERIESITEM , Z_PRIMARYKEY e Z_METADATA . Eu mudei apenas as três primeiras tabelas. A "série" é tratada como um livro nessas tabelas.

  1. Adicione os livros e as séries na tabela ZBKSERIESCHECK . A tabela possui 5 colunas.

    A tabela possui 5 colunas

    • Z_PK é a chave primária. Tem que ser um número seqüencial.
    • Z_ENT e Z_OPT Acabei de concluir com um "1".
    • ZDATECHECKED é apenas a data em que a linha é criada. No meu caso, foi atribuído automaticamente.
    • ZADAMID é um código único para o livro ou série.

    Esta é a tabela com os dados que adicionei.

    ID dos livros e séries

    O zAdamId que eu usei é do Caliber, então eu suponho que você possa usar qualquer número. Lembre-se de que esses números precisam ser diferentes das séries / livros que você comprou.

    A linha com o zAdamId "1" é minha série, os outros são os livros.

  2. Inclua os relacionamentos nos livros e séries na tabela ZBKSERIESITEM . Esta tabela possui 16 colunas.

    Mesa ZBKSERIESITEM

    • Z_PK , Z_ENT e Z_OPT não são os mesmos definidos na tabela anterior. Z_PK deve ser seqüencial e, Z_ENT e Z_OPT acabei de concluir com "2" e "1", respectivamente.
    • ZISCONTAINER define se um zAdamId é uma série ou não. "1" é verdadeiro, "0" é falso.
    • ZPOSITION define o número de um livro em uma série, começando com "0" para o primeiro livro.
    • ZADAMID é o mesmo definido na tabela anterior para o mesmo item.
    • ZAUTHOR é o autor da série / livros.
    • ZGENRE é o gênero da série / livros.
    • ZSEQUENCEDISPLAYNAME define como um livro é exibido como membro de uma série. Por exemplo, para o primeiro livro, você pode definir "Livro 1" ou "Volume 1" ou "Vol.1". Essa sequência será anexada ao nome do livro. Esta coluna deve estar vazia para a série.
    • ZSERIESADAMID é a série zAdamId do livro. Para a série, é o mesmo que ZADAMID .
    • ZSERIESTITLE é o nome da série.
    • ZSORTTITLE e ZTITLE é o nome do livro ou série.

    Conteúdo da tabela ZBKSERIESITEM

  3. Ajuste a tabela Z_PRIMARYKEY .

    Eu descobri que esta tabela tem apenas duas linhas. Um para cada uma das tabelas anteriores.

    Tabela Z_PRIMARYKEY

    Aqui você deve alterar a coluna Z_MAX para o valor MAX (*) do Z_PK em cada uma das tabelas anteriores. Por exemplo, no meu banco de dados, para a tabela ZBKSERIESCHECK ( BKSeriesCheck ), o MAX (*) da coluna Z_PK é "22".

  4. Salve as alterações.

  5. Abra o arquivo Books.plist . Procure cada um dos livros da série e adicione estas chaves:

    • seriesAdamId como Number com o valor de ZBKSERIESITEM ~ ZSERIESADAMID .
    • itemId como Number com o valor de ZBKSERIESITEM ~ ZADAMID .
    • seriesSequenceNumber como String com o valor de ZBKSERIESITEM ~ ZPOSITION + 1 . (Lembre-se de que na tabela começa com "0".)
    • seriesTitle como String com o valor de ZBKSERIESITEM ~ ZTITLE .

    Arquivo Books.plist

  6. Salve o arquivo. Feche o iBooks (se você não o fechou desde o início). Mate o processo com.apple.BKAgentService . Inicie o iBooks. Você deve poder ver sua série.

    Resultados

Notas

As colunas que não citei, apenas as deixei vazias e não afetaram o resultado final.

Eu acho que é difícil colocar todos os seus livros e séries corretamente quando você tem muitos deles. Espero ver um dia algo que faça tudo isso automaticamente.

Este é o meu primeiro post. Espero que todos achem útil.

foliva
fonte
2

Eu tenho uma solução:

  1. Vá para a loja do iBooks e faça o download das amostras dos livros com os quais você está tentando trabalhar.

  2. Altere a extensão de .epub para .zip.

  3. Extraia o zip e exclua a pasta chamada "OPS" (OEBPS para quadrinhos).

  4. Localize o e-book que você possui e altere de .epub para .zip.

  5. Extraia e localize OPS.

  6. Mova OPS para a pasta de e-book de exemplo.

  7. Selecione todos os arquivos na amostra e crie um .zip.

  8. Mude a extensão para epub.

  9. Faça o mesmo para cada livro da série.

  10. Arraste e solte no iTunes.

  11. Sincronize e pronto!

Tenha cuidado ao entrar na loja do iBook; se você vir o e-book que editou, ele terá um botão dizendo "atualizar". NÃO clique em atualizar, ou você terá que fazer isso novamente.

Muito mais fácil do que ter que editar o sqlite e funciona no Mac e no Windows.

Dadiocoleman
fonte
Isso funcionará para os e-books da SRMed?
user151019
Se estiver na loja do iBooks como uma amostra, então sim.
Dadiocoleman 27/03
1

Percebi que, no iBooks, tenho um livro ( Herança ) que o iBooks destaca como membro de uma série (no meu caso chamado 'Eragon' em vez de 'The Farseer Trilogy'). Para investigar isso, baixei o Herança e removi o DRM usando o Requiem (em uma máquina virtual antiga) para que eu pudesse pesquisar no código-fonte do livro.

Infelizmente, tenho más notícias. Usei Sigil para procurar a palavra 'Eragon'. A palavra 'Eragon' não aparece em nenhum lugar nos metadados do epub, indicando que isso não é possível; O iBook evidentemente mantém as informações da série separadas dos arquivos epub reais.

John Coxon
fonte
Que interessante, nota que eu ainda acho que armazenados localmente em algum lugar, talvez no banco de dados SQLite ibooks, desde quando eu adicionei 2 livros em outra série, eles foram agrupados quando não estiver conectado à internet
Bilal Syed Hussain
Quer dizer que você adicionou dois livros de uma fonte externa ou comprou dois livros pelo iBooks?
John Coxon
Trouxe-os em um computador diferente e depois transferi-los para um computador com ibooks, mas sem internet.
Bilal Syed Hussain
0

Eu mesmo tentei e descobri que a playlist na mesma pasta que armazena os epubs tem informações sobre a série de livros. Existem os metadados seriesTitle e seriesSequenceNumber definido. Mas, infelizmente, alterá-lo não faz Ibooks listar livros como séries. Também definir metadados no próprio e-book dizendo a série Title e seriesSequenceNumber não está funcionando. Então eu encontrei uma pasta em usr. Contêineres de biblioteca com.apple.IBooksX Data Documents BKSeriesDatabase, mas contém um Banco de Dados SQL. Talvez a informação esteja armazenada lá.

Adam Kay
fonte