Metadane serii iBooks


13

W iBooks 10.10 książki mogą mieć metadane serii, jak pokazano na obrazku.

Jakie metadane muszę dodać do zewnętrznego pliku epub (tj. Nie ze sklepu ibook), aby mógł być wyświetlany jako seria?

metadane serii


Kiedyś książki były częścią iTunes, można było edytować wiele tych informacji. Tytuł serialu był polem do edycji, które zostało wprowadzone w celu obsługi programów telewizyjnych. Nadal możesz go zobaczyć podczas edycji metadanych programu telewizyjnego w iTunes na karcie Wideo (nazwy pól były różne dla książek). Obecnie, z ograniczonymi możliwościami iBooks (szczególnie brak edycji metadanych), wydaje się, że te informacje są powiązane z metadanymi z witryny sklepu iBooks. Prawdopodobnie wciąż jest w SQLite DB iBooks, więc jeśli ktoś wie, jak się tam bawić, chętnie o tym usłyszę.
Nick

Odpowiedzi:


16

Udało mi się, ale jest to dość trudne.

Streszczenie:

Musisz zmienić plik Books.plist w ~ / Library / Containers / com.apple.BKAgentService / Data / Documents / iBooks / Books dla książek, które chcesz mieć w serii, a także musisz dodać wiersze w BKSeries - *. baza danych sqlite na ~ / Library / Containers / com.apple.iBooksX / Data / Documents / BKSeriesDatabase dla nich i serii.

Oto jak to zrobiłem:

Baza danych zawiera 4 tabele: ZBKSERIESCHECK , ZBKSERIESITEM , Z_PRIMARYKEY i Z_METADATA . Zmieniłem tylko pierwsze trzy tabele. „Seria” w tych tabelach jest traktowana jak książka.

  1. Dodaj książki i serię do tabeli ZBKSERIESCHECK . Tabela ma 5 kolumn.

    Tabela ma 5 kolumn

    • Z_PK jest kluczem podstawowym. Musi to być kolejny numer.
    • Z_ENT i Z_OPT Właśnie skończyłem z „1”.
    • ZDATECHECKED to tylko data utworzenia wiersza. W moim przypadku został on przypisany automatycznie.
    • ZADAMID to unikalny kod dla książki lub serii.

    To jest tabela z danymi, które dodałem.

    ID książek i seriali

    ZAdamId, którego użyłem, pochodzi z Calibre, więc zakładam, że możesz użyć dowolnej liczby. Pamiętaj, że liczby te muszą się różnić od zakupionych serii / książek.

    Wiersz z zAdamId „1” to moja seria, pozostałe to książki.

  2. Dodaj relacje w książkach i seriach do tabeli ZBKSERIESITEM . Ta tabela ma 16 kolumn.

    Tabela ZBKSERIESITEM

    • Z_PK , Z_ENT i Z_OPT nie są tymi samymi, które zdefiniowano w poprzedniej tabeli. Z_PK musi być sekwencyjny, a Z_ENT i Z_OPT właśnie uzupełniłem odpowiednio „2” i „1”.
    • ZISCONTAINER określa, czy zAdamId jest serią, czy nie. „1” to prawda, „0” to fałsz.
    • ZPOSITION określa numer książki w serii, zaczynając od „0” dla pierwszej książki.
    • ZADAMID jest taki sam, jak zdefiniowano w poprzedniej tabeli dla tego samego elementu.
    • ZAUTHOR jest autorem serii / książek.
    • ZGENRE to gatunek serii / książek.
    • ZSEQUENCEDISPLAYNAME określa sposób wyświetlania książki jako członka serii. Na przykład dla pierwszej książki możesz zdefiniować „Book 1” lub „Tom 1” lub „Vol.1”. Ten ciąg będzie poprzedzony nazwą książki. Ta kolumna musi być pusta dla serii.
    • ZSERIESADAMID to seria zAdamId książki. W przypadku serii jest to to samo co ZADAMID .
    • ZSERIESTITLE to nazwa serii.
    • ZSORTTITLE i ZTITLE to nazwa książki lub serii.

    Tabela zawartości ZBKSERIESITEM

  3. Dostosuj tabelę Z_PRIMARYKEY .

    Odkryłem, że ta tabela ma tylko dwa rzędy. Jeden dla każdej z poprzednich tabel.

    Tabela Z_PRIMARYKEY

    Tutaj musisz zmienić kolumnę Z_MAX na wartość MAX (*) Z_PK w każdej z poprzednich tabel. Na przykład w moim DB dla tabeli ZBKSERIESCHECK ( BKSeriesCheck ) MAX (*) kolumny Z_PK wynosi „22”.

  4. Zapisz zmiany.

  5. Otwórz plik Books.plist . Poszukaj każdej książki z serii i dodaj następujące klucze:

    • seriesAdamId as Number o wartości ZBKSERIESITEM ~ ZSERIESADAMID .
    • itemId jako liczba o wartości ZBKSERIESITEM ~ ZADAMID .
    • seriesSequenceNumber as String o wartości ZBKSERIESITEM ~ ZPOSITION + 1 . (Pamiętaj, że w tabeli zaczyna się od „0”.)
    • seriesTitle as String o wartości ZBKSERIESITEM ~ ZTITLE .

    Plik Books.plist

  6. Zapisz plik. Zamknij iBooks (jeśli nie zamknąłeś go od początku). Zabij proces com.apple.BKAgentService . Uruchom iBooks. Powinieneś być w stanie zobaczyć swoją serię.

    Wyniki

Notatki

Te kolumny, których nie wymieniłem, zostawiłem je puste i nie wpłynęło to na wynik końcowy.

Myślę, że trudno jest właściwie umieścić wszystkie swoje książki i seriale, gdy masz ich dużo. Mam nadzieję, że pewnego dnia zobaczę coś, co zrobi to wszystko automatycznie.

To jest mój pierwszy post. Mam nadzieję, że wszystkim się przyda.


2

Mam rozwiązanie:

  1. Przejdź do sklepu iBooks i pobierz próbki książek, z którymi próbujesz pracować.

  2. Zmień rozszerzenie z .epub na .zip.

  3. Rozpakuj zip i usuń folder o nazwie „OPS” (OEBPS dla komiksów).

  4. Znajdź posiadany eBook i zmień go z .epub na .zip.

  5. Wyodrębnij go i zlokalizuj OPS.

  6. Przenieś OPS do przykładowego folderu ebook.

  7. Wybierz wszystkie pliki w próbce i utwórz plik .zip.

  8. Zmień rozszerzenie na epub.

  9. Zrób to samo dla każdej książki z serii.

  10. Przeciągnij i upuść w iTunes.

  11. Synchronizuj i gotowe!

Zachowaj ostrożność podczas wchodzenia do sklepu iBook, jeśli zobaczysz edytowanego ebooka, będzie on miał przycisk z napisem „aktualizacja”. NIE klikaj aktualizacji, bo będziesz musiał to zrobić od nowa.

O wiele łatwiejsze niż edytowanie sqlite i działa zarówno na Macu, jak i Windowsie.


Czy to zadziała w przypadku e-booków SRMed?
user151019

Jeśli jest w sklepie iBooks jako próbka, to tak.
Dadiocoleman

1

Zauważyłem, że w iBooks mam książkę ( Dziedziczenie ), którą iBooks podkreśla jako członek serii (w moim przypadku o nazwie „Eragon” zamiast „The Farseer Trilogy”). Aby to zbadać, pobrałem Dziedziczenie i usunąłem DRM za pomocą Requiem (na starej maszynie wirtualnej), aby móc się przejmować kodem źródłowym książki.

Niestety mam złe wieści. Użyłem Sigil do wyszukiwania słowa „Eragon”. Słowo „Eragon” nie pojawia się nigdzie w metadanych w epubie, co wskazuje, że nie jest to możliwe; iBook ewidentnie przechowuje informacje o seriach oddzielnie od rzeczywistych plików epub.


To ciekawe, zauważ, że nadal myślę, że jest przechowywany lokalnie gdzieś, być może w bazie danych ibooks sqlite, ponieważ kiedy dodałem 2 książki z innej serii, zostały one zgrupowane, gdy nie były połączone z Internetem
Bilal Syed Hussain

Masz na myśli, że dodałeś dwie książki ze źródła zewnętrznego, czy kupiłeś dwie książki za pośrednictwem iBooks?
John Coxon

Zabrałem je na inny komputer, a następnie przeniosłem na komputer z ibookami, ale bez internetu.
Bilal Syed Hussain

0

Sam spróbowałem i dowiedziałem się, że lista odtwarzania w tym samym folderze, w którym przechowywane są epuby, zawiera informacje o serii książek. Istnieją metadane seriesTitle i seriesSequenceNumber. Ale niestety zmiana go nie powoduje, że Ibooks wymieniają książki jako seriale. Także ustawienie Metadanych w samym e-booku, mówiąc, że seria Title i seriesSequenceNumber nie działa. Potem znalazłem folder w usr. Kontenery biblioteczne com.apple.IBooksX Dokumenty danych BKSeriesDatabase, ale zawiera bazę danych SQL. Może informacje są tam przechowywane.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.