diff --git a/README.md b/README.md index 144fbaa..19c6d75 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,7 @@ Changing page prefix/postfix will create new pages and existing pages will need - Import and update separate pages. - Choose items to import based on progress filter (eg. finished, in progress) - Update existing items. Toggle update wtih audiobookshelfUpdateEnabled property per item to disable. +- Podcasts Import to a single page ## Documentation - [Templates](docs/templates.md) diff --git a/docs/templates.md b/docs/templates.md index 50fba6f..dd269cd 100644 --- a/docs/templates.md +++ b/docs/templates.md @@ -1,50 +1,50 @@ -# Standard template -Example template that can be used to render Audiobookshelf item. Only single block will be created from this template. +# Standard Book template +Example template that can be used to render Audiobookshelf Book item. Only single block will be created from this template. NOTE > Description field may contain a lot of text. ``` ### books/{{{title}}} - collapsed:: false - subtitle:: {{subtitle}} - progress:: {{{progress}}} - isFinished:: {{{isFinished}}} - duration:: {{{duration}}} - currentTime:: {{{currentTime}}} - {{!===== Authors =====}} - {{#authors.length}} - authors:: {{#authors}}[[{{{name}}}]]{{/authors}} - {{/authors.length}} - {{!===== Narrators =====}} - {{#narrators.length}} - narrators:: {{#narrators}}[[{{{.}}}]]{{/narrators}} - {{/narrators.length}} - {{!===== Genres =====}} - {{#genres.length}} - genres:: {{#genres}}[[{{{.}}}]]{{/genres}} - {{/genres.length}} - {{!===== Series =====}} - {{#series}} - series:: {{#series}}[[{{{name}}}]]{{/series}} - {{/series}} - source:: [Open in Audiobookshelf]({{{audiobookshelfUrl}}}) - asin:: {{{asin}}} - isbn:: {{{isbn}}} - {{!===== Tags =====}} - {{#tags.length}} - tags:: {{#tags}}[[{{{.}}}]] {{/tags}} - {{/tags.length}} - {{!===== Started Date =====}} - {{#startedDate}} - startedDate:: [[{{{startedDateParsed}}}]] - {{/startedDate}} - {{!===== Finished Date =====}} - {{#finishedDate}} - finishedDate:: [[{{{finishedDateParsed}}}]] - {{/finishedDate}} - - {{{description}}} +collapsed:: false +subtitle:: {{subtitle}} +progress:: {{{progress}}} +isFinished:: {{{isFinished}}} +duration:: {{{duration}}} +currentTime:: {{{currentTime}}} +{{!===== Authors =====}} +{{#authors.length}} +authors:: {{#authors}}[[{{{name}}}]]{{/authors}} +{{/authors.length}} +{{!===== Narrators =====}} +{{#narrators.length}} +narrators:: {{#narrators}}[[{{{.}}}]]{{/narrators}} +{{/narrators.length}} +{{!===== Genres =====}} +{{#genres.length}} +genres:: {{#genres}}[[{{{.}}}]]{{/genres}} +{{/genres.length}} +{{!===== Series =====}} +{{#series}} +series:: {{#series}}[[{{{name}}}]]{{/series}} +{{/series}} +source:: [Open in Audiobookshelf]({{{audiobookshelfUrl}}}) +asin:: {{{asin}}} +isbn:: {{{isbn}}} +{{!===== Tags =====}} +{{#tags.length}} +tags:: {{#tags}}[[{{{.}}}]] {{/tags}} +{{/tags.length}} +{{!===== Started Date =====}} +{{#startedDate}} +startedDate:: [[{{{startedDateParsed}}}]] +{{/startedDate}} +{{!===== Finished Date =====}} +{{#finishedDate}} +finishedDate:: [[{{{finishedDateParsed}}}]] +{{/finishedDate}} + +{{{description}}} ``` @@ -77,3 +77,68 @@ NOTE | tags | list[string] | Tags | | title | string | Item Title | +# Standard Podcast template +Example template that can be used to render Audiobookshelf *Podcast* item. Only single block will be created from this template. + +``` +### podcasts/{{{title}}}/{{{episodeTitle}}} +collapsed:: false +subtitle:: {{subtitle}} +progress:: {{{progress}}} +isFinished:: {{{isFinished}}} +duration:: {{{duration}}} +currentTime:: {{{currentTime}}} +author:: [[{{{author}}}]] +{{!===== Genres =====}} +{{#genres.length}} +genres:: {{#genres}}[[{{{.}}}]]{{/genres}} +{{/genres.length}} +source:: [Open in Audiobookshelf]({{{audiobookshelfUrl}}}) +{{!===== Tags =====}} +{{#tags.length}} +tags:: {{#tags}}[[{{{.}}}]] {{/tags}} +{{/tags.length}} +{{!===== Started Date =====}} +{{#startedDate}} +startedDate:: [[{{{startedDateParsed}}}]] +{{/startedDate}} +{{!===== Finished Date =====}} +{{#finishedDate}} +finishedDate:: [[{{{finishedDateParsed}}}]] +{{/finishedDate}} + +{{{description}}} +``` + +## Available variables + +| Variable Name | Type | Description | +|---------------|------|-------------| +| audiobookshelfUrl | string | URL to Audiobookshelf instance with item | +| author | string | Author | +| description | string | Podcast Description | +| duration | string | Duration human readable format| +| currentTime | string | Progress time human readable format| +| isFinished | boolean | Is it finished | +| explicit | boolean | Explicit | +| genres | list[string] | Genres | +| startedDate | string | Date started| +| startedDateParsed | string| Parsed started date| +| finishedDate | string | Date finished | +| finishedDateParsed | string | Parsed fineshed date| +| language | string | Language | +| progress | string | Progress percentage | +| releaseDate | string | Date released | +| tags | list[string] | Tags | +| title | string | Podcast Title | +| episodeTitle | string | Episode Title | +| episodeSubtitle| string | The subtitle of the podcast episode.| +| index | string | Episode Index | +| season | string | The season of the podcast episode, if known. | +| episode | string | The episode of the season of the podcast, if known.| +| episodeType | string | The type of episode that the podcast episode is. | +| episodeDescription | string | Episode Description | +| episodePubDate | string | When the podcast episode was published. | +| episodePublishedAt | number | The time (in ms since POSIX epoch) when the podcast episode was published.| +| episodeAddedAt | number | The time (in ms since POSIX epoch) when the podcast episode was added to the library. | +| episodeUpdatedAt | number | The time (in ms since POSIX epoch) when the podcast episode was last updated.| diff --git a/package.json b/package.json index dc0c5de..2a05925 100644 --- a/package.json +++ b/package.json @@ -9,27 +9,28 @@ "description": "Audiobookshelf Import", "license": "MIT", "dependencies": { + "@logseq/libs": "^0.0.14", "date-fns": "^2.28.0", "html-entities": "2.3.3", "mustache": "^4.2.0", - "pnpm": "^7.25.0" + "pnpm": "^7.25.1" }, "devDependencies": { - "@logseq/libs": "^0.0.14", - "logseq-dateutils": "^0.0.26", - "parcel": "^2.0.0", - "sweetalert": "^2.1.2", "@semantic-release/changelog": "6.0.1", "@semantic-release/exec": "6.0.3", "@semantic-release/git": "10.0.1", "@semantic-release/npm": "9.0.1", - "semantic-release": "^19.0.0", + "@types/jest": "^29.0.3", + "@types/mustache": "^4.2.2", "conventional-changelog-conventionalcommits": "5.0.0", - "prettier": "^2.8.3", "jest": "^29.0.3", - "ts-jest": "^29.0.5", "jest-fetch-mock": "^3.0.3", - "@types/jest": "^29.0.3", + "logseq-dateutils": "^0.0.26", + "parcel": "^2.0.0", + "prettier": "^2.8.3", + "semantic-release": "^19.0.0", + "sweetalert": "^2.1.2", + "ts-jest": "^29.0.5", "typescript": "^4.8.3" }, "browserslist": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fe391f8..313ea43 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,6 +7,7 @@ specifiers: '@semantic-release/git': 10.0.1 '@semantic-release/npm': 9.0.1 '@types/jest': ^29.0.3 + '@types/mustache': ^4.2.2 conventional-changelog-conventionalcommits: 5.0.0 date-fns: ^2.28.0 html-entities: 2.3.3 @@ -15,7 +16,7 @@ specifiers: logseq-dateutils: ^0.0.26 mustache: ^4.2.0 parcel: ^2.0.0 - pnpm: ^7.25.0 + pnpm: ^7.25.1 prettier: ^2.8.3 semantic-release: ^19.0.0 sweetalert: ^2.1.2 @@ -23,18 +24,19 @@ specifiers: typescript: ^4.8.3 dependencies: + '@logseq/libs': 0.0.14 date-fns: 2.29.3 html-entities: 2.3.3 mustache: 4.2.0 - pnpm: 7.25.0 + pnpm: 7.25.1 devDependencies: - '@logseq/libs': 0.0.14 '@semantic-release/changelog': 6.0.1_semantic-release@19.0.5 '@semantic-release/exec': 6.0.3_semantic-release@19.0.5 '@semantic-release/git': 10.0.1_semantic-release@19.0.5 '@semantic-release/npm': 9.0.1_semantic-release@19.0.5 '@types/jest': 29.2.5 + '@types/mustache': 4.2.2 conventional-changelog-conventionalcommits: 5.0.0 jest: 29.3.1 jest-fetch-mock: 3.0.3 @@ -740,7 +742,7 @@ packages: snake-case: 3.0.4 transitivePeerDependencies: - supports-color - dev: true + dev: false /@mischnic/json-sourcemap/0.1.0: resolution: {integrity: sha512-dQb3QnfNqmQNYA4nFSN/uLaByIic58gOXq4Y4XqLOWmOrw73KmJPt/HLyG0wvn1bnR6mBKs/Uwvkh+Hns1T0XA==} @@ -1841,6 +1843,10 @@ packages: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: true + /@types/mustache/4.2.2: + resolution: {integrity: sha512-MUSpfpW0yZbTgjekDbH0shMYBUD+X/uJJJMm9LXN1d5yjl5lCY1vN/eWKD6D1tOtjA6206K0zcIPnUaFMurdNA==} + dev: true + /@types/node/18.11.18: resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==} dev: true @@ -2419,7 +2425,7 @@ packages: /csstype/3.1.0: resolution: {integrity: sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==} - dev: true + dev: false /date-fns/2.29.3: resolution: {integrity: sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==} @@ -2440,7 +2446,6 @@ packages: optional: true dependencies: ms: 2.1.2 - dev: true /decamelize-keys/1.1.1: resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} @@ -2531,7 +2536,7 @@ packages: /dompurify/2.3.8: resolution: {integrity: sha512-eVhaWoVibIzqdGYjwsBWodIQIaXFSB+cKDf4cfxLMsK0xiud6SE+/WCVx/Xw/UwQsa4cS3T2eITcdtmTg2UKcw==} - dev: true + dev: false /domutils/2.8.0: resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} @@ -2546,7 +2551,7 @@ packages: dependencies: no-case: 3.0.4 tslib: 2.4.1 - dev: true + dev: false /dot-prop/5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} @@ -2634,7 +2639,7 @@ packages: /eventemitter3/4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - dev: true + dev: false /execa/5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} @@ -2669,7 +2674,7 @@ packages: /fast-deep-equal/3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true + dev: false /fast-glob/3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} @@ -3053,7 +3058,6 @@ packages: /inherits/2.0.3: resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} - dev: true /ini/1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} @@ -3872,7 +3876,7 @@ packages: /lodash-es/4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - dev: true + dev: false /lodash.capitalize/4.2.1: resolution: {integrity: sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==} @@ -3914,7 +3918,7 @@ packages: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: tslib: 2.4.1 - dev: true + dev: false /lru-cache/5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -4057,7 +4061,6 @@ packages: /ms/2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: true /msgpackr-extract/2.2.0: resolution: {integrity: sha512-0YcvWSv7ZOGl9Od6Y5iJ3XnPww8O7WLcpYMDwX+PAA/uXLDtyw94PJv9GLQV/nnp3cWlDhMoyKZIQLrx33sWog==} @@ -4103,7 +4106,7 @@ packages: dependencies: lower-case: 2.0.2 tslib: 2.4.1 - dev: true + dev: false /node-addon-api/3.2.1: resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} @@ -4482,7 +4485,7 @@ packages: dependencies: process: 0.11.10 util: 0.10.4 - dev: true + dev: false /picocolors/1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -4518,8 +4521,8 @@ packages: find-up: 4.1.0 dev: true - /pnpm/7.25.0: - resolution: {integrity: sha512-FGFQUON8kJ6ma39elJ8lyD8wPIfgp3opGJD9sX0TgIJk4zSr556qCgC8AN+3BFHe4yuRkEauf4JVLW2RKyyEcA==} + /pnpm/7.25.1: + resolution: {integrity: sha512-y/jlADVxyk+scBwI0ALRf8QoUMgrWyONnD1voZaPTBI+D+aIXXiFG9pMk3eLhvEfc0nK8KUnnbDDBTywd7WsMw==} engines: {node: '>=14.6'} hasBin: true dev: false @@ -4579,7 +4582,7 @@ packages: /process/0.11.10: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} - dev: true + dev: false /promise-polyfill/6.1.0: resolution: {integrity: sha512-g0LWaH0gFsxovsU7R5LrrhHhWAWiHRnh1GPrhXnPgYsDkIqjRYUYSZEsej/wtleDrz5xVSIDbeKfidztp2XHFQ==} @@ -4873,7 +4876,7 @@ packages: dependencies: dot-case: 3.0.4 tslib: 2.4.1 - dev: true + dev: false /source-map-support/0.5.13: resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} @@ -5215,7 +5218,6 @@ packages: /tslib/2.4.1: resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} - dev: true /type-detect/4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} @@ -5310,7 +5312,7 @@ packages: resolution: {integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==} dependencies: inherits: 2.0.3 - dev: true + dev: false /utility-types/3.10.0: resolution: {integrity: sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==} diff --git a/src/index.ts b/src/index.ts index e322ebb..a338ac4 100644 --- a/src/index.ts +++ b/src/index.ts @@ -6,23 +6,25 @@ import { PageEntity, } from "@logseq/libs/dist/LSPlugin"; -import { format } from "date-fns"; +//import { format } from "date-fns"; import { settingsSchema } from "./settings"; import { - Book, + loadUser, loadBooks, - Library, + loadPodcasts, loadLibraries, loadProgress, - decodeHTML, createFilter, abLog, - seconds_human_readable, updateStatus, + renderTemplate, + userMediaProgress, } from "./utils"; +import { Library, BookLibraryItem, PodcastLibraryItem } from "./schema"; + import { render } from "mustache"; // TODO handle HTML encoded entities in audiobookshelf items data @@ -32,7 +34,7 @@ interface Settings { serverUrl: string; serverToken: string; pageName: string; - importProgressFilters: []; + importProgressFilters: string[]; libraryNameList: string; singlePageModeEnabled: boolean; createPages: boolean; @@ -41,7 +43,9 @@ interface Settings { pageTitlePostfix: string; singlePageItemTemplate: string; multiPageItemTemplate: string; + singlePagePodcastItemTemplate: string; disabled: false; + debug: []; } interface AudiobookshelfBlock { @@ -53,12 +57,6 @@ const delay = (t = 100) => new Promise((r) => setTimeout(r, t)); let loading = false; let pluginId = "logseq-plugin-audiobookshelf-import"; -// @ts-ignore -const partial = - (func, ...args) => - (...rest) => - func(...args, ...rest); - /** * main entry * @param baseInfo @@ -166,7 +164,11 @@ async function updatePage(page: PageEntity, blocks: Array) { abLog("index", blocks[0].content.toString()); await logseq.Editor.updateBlock(_first!.uuid, blocks[0].content); updateStatus("Updated page: " + page.originalName); + } else { + abLog("index", "Blocks are identical"); } + } else { + abLog("index", "Update block not met"); } } else { logseq.UI.showMsg( @@ -192,11 +194,13 @@ const fetchAudiobookshelf = async (inBackground = false) => { singlePageModeEnabled, singlePageItemTemplate, multiPageItemTemplate, + singlePagePodcastItemTemplate, createPages, updatePages, pageTitlePrefix, pageTitlePostfix, pageName, + debug, } = logseq.settings as Settings; const preferredDateFormat = (await logseq.App.getUserConfigs()) @@ -288,7 +292,9 @@ const fetchAudiobookshelf = async (inBackground = false) => { let libraries: Library[] = []; let booksFilters: string[] = []; - let books: Book[] = []; + let books: BookLibraryItem[] = []; + let podcasts: PodcastLibraryItem[] = []; + let audiobookshelfUser = await loadUser(serverUrl, serverToken); // Creafe list of filters for (let filterName of importProgressFilters) { @@ -297,8 +303,9 @@ const fetchAudiobookshelf = async (inBackground = false) => { } // Variable to collect all books before writing to Logseq - let booksBatch: IBatchBlock[] = []; + let singlePageItemBatch: IBatchBlock[] = []; let singlePageStateBatch: IBatchBlock[] = []; + let multiPageItemBatch: IBatchBlock[] = []; // Create library names to filter let libraryNameListSanitized = libraryNameList.replace( @@ -315,114 +322,64 @@ const fetchAudiobookshelf = async (inBackground = false) => { libraries = await loadLibraries(serverUrl, serverToken, libraryFilter); // Iterate over libraries - for (let i = 0; i < libraries.length; i++) { - // Iterate over filters - for (let booksFilter of booksFilters) { - // Iterate over pages - for ( - let libraryPage = 0, libraryItemsTotal = 0, libraryPages = 0; - libraryPage <= libraryPages; - libraryPage++ - ) { - [books, libraryItemsTotal] = await loadBooks( - serverUrl, - serverToken, - libraryPage, - 100, - libraries[i].id, - booksFilter - ); - - libraryPages = Math.ceil(libraryItemsTotal / 100); - - for (const book of books) { - // Get Item Progress - // TODO handle podcasts - const itemProgress = await loadProgress( + for (let library of libraries) { + if (library.mediaType == "book") { + // Iterate over filters + for (let booksFilter of booksFilters) { + // Iterate over pages + for ( + let libraryPage = 0, libraryItemsTotal = 0, libraryPages = 0; + libraryPage <= libraryPages; + libraryPage++ + ) { + [books, libraryItemsTotal] = await loadBooks( serverUrl, serverToken, - book.id - ); - const itemStartedDate = format( - new Date(itemProgress.startedAt), - preferredDateFormat - ); - const itemFinishedDate = format( - new Date(itemProgress.finishedAt), - preferredDateFormat + libraryPage, + 25, + library.id, + booksFilter ); - abLog( - "index", - book.media.metadata.title + " started " + itemStartedDate - ); - const singlePageRenderedTemplate = render(singlePageItemTemplate, { - audiobookshelfUrl: `${serverUrl}/item/${book.id}`, - asin: book.media.metadata.asin, - authors: book.media.metadata.authors, - description: book.media.metadata.description, - duration: seconds_human_readable(itemProgress.duration), - currentTime: seconds_human_readable(itemProgress.currentTime), - isFinished: itemProgress.isFinished, - explicit: book.media.metadata.explicit, - genres: book.media.metadata.genres, - isbn: book.media.metadata.isbn, - startedDate: itemProgress.startedAt, - startedDateParsed: itemStartedDate, - finishedDate: itemProgress.finishedAt, - finishedDateParsed: itemFinishedDate, - language: book.media.metadata.language, - narrators: book.media.metadata.narrators, - progress: - (itemProgress.progress * 100).toFixed( - itemProgress.progress == 1 ? 0 : 2 - ) + "%", - publishedDate: book.media.metadata.publishedDate, - publishedYear: book.media.metadata.publishedYear, - publisher: book.media.metadata.publisher, - series: book.media.metadata.series, - subtitle: book.media.metadata.subtitle, - tags: book.media.tags, - title: book.media.metadata.title, - }); - - const multiPageRenderedTemplate = render(multiPageItemTemplate, { - audiobookshelfUrl: `${serverUrl}/item/${book.id}`, - asin: book.media.metadata.asin, - authors: book.media.metadata.authors, - description: book.media.metadata.description, - duration: seconds_human_readable(itemProgress.duration), - currentTime: seconds_human_readable(itemProgress.currentTime), - isFinished: itemProgress.isFinished, - explicit: book.media.metadata.explicit, - genres: book.media.metadata.genres, - isbn: book.media.metadata.isbn, - startedDate: itemProgress.startedAt, - startedDateParsed: itemStartedDate, - finishedDate: itemProgress.finishedAt, - finishedDateParsed: itemFinishedDate, - language: book.media.metadata.language, - narrators: book.media.metadata.narrators, - progress: - (itemProgress.progress * 100).toFixed( - itemProgress.progress == 1 ? 0 : 2 - ) + "%", - publishedDate: book.media.metadata.publishedDate, - publishedYear: book.media.metadata.publishedYear, - publisher: book.media.metadata.publisher, - series: book.media.metadata.series, - subtitle: book.media.metadata.subtitle, - tags: book.media.tags, - title: book.media.metadata.title, - }); - - //console.log(content) - - if (singlePageModeEnabled && singlePageStateTargetBlock) { - // update existing block if book is already in the state block - const existingBlocks = ( - await logseq.DB.datascriptQuery( - `[:find (pull ?b [*]) + libraryPages = Math.ceil(libraryItemsTotal / 25); + + for (const book of books) { + /* + const itemProgress = await loadProgress( + serverUrl, + serverToken, + book.id + ); + */ + const itemProgress = await userMediaProgress( + audiobookshelfUser, + book.id, + ); + + const singlePageRenderedTemplate = renderTemplate( + singlePageItemTemplate, + serverUrl, + preferredDateFormat, + "book", + itemProgress, + book + ); + const multiPageRenderedTemplate = renderTemplate( + multiPageItemTemplate, + serverUrl, + preferredDateFormat, + "book", + itemProgress, + book + ); + + //console.log(content) + + if (singlePageModeEnabled && singlePageStateTargetBlock) { + // update existing block if book is already in the state block + const existingBlocks = ( + await logseq.DB.datascriptQuery( + `[:find (pull ?b [*]) :where [?b :block/page ?p] [?p :block/original-name "${pageName}"] @@ -432,10 +389,10 @@ const fetchAudiobookshelf = async (inBackground = false) => { [(= ?s "${singlePageStateTargetBlock.uuid}")] [?b :block/content ?c] [(clojure.string/includes? ?c "${book.id}")]]` - ) - ).flat(); + ) + ).flat(); - /* + /* if (existingBlocks.length > 0) { isNewBook = false const existingBlock = existingBlocks[0] @@ -452,64 +409,144 @@ const fetchAudiobookshelf = async (inBackground = false) => { } */ - // If item wasn't imported - if (existingBlocks.length == 0) { - // Add to books block - booksBatch.unshift({ - content: singlePageRenderedTemplate, - }); - - // Add to state block - singlePageStateBatch.unshift({ - content: book.id + "." + book.media.metadata.title, - }); - } - } - - // Compute Audiobookshelf item page title - const pageTitle = - pageTitlePrefix + book.media.metadata.title + pageTitlePostfix; - // Process template if any - const renderedTitle = render(pageTitle, { - mediaType: book.mediaType, - }); - - // Test on one page - if (createPages == true) { - const page = await logseq.Editor.getPage(renderedTitle); - - const block: IBatchBlock = { - content: multiPageRenderedTemplate, - }; - - // Check if page exists - if (page !== null && updatePages) { - abLog("index", "Updating page " + renderedTitle); - const updated = await updatePage(page, [block]); - - if (updated) { - abLog( - "index", - "Updating page " + renderedTitle + " completed" - ); - } else { - console.info("Error updating page " + renderedTitle); + // If item wasn't imported + if (existingBlocks.length == 0) { + // Add to books block + singlePageItemBatch.unshift({ + content: singlePageRenderedTemplate, + }); + + // Add to state block + singlePageStateBatch.unshift({ + content: book.id + "." + book.media.metadata.title, + }); } - } else { - // new page - abLog("index", "Creating page " + renderedTitle); + } - const created = await createPage(renderedTitle, [block]); - if (created) { - console.info("Creating " + renderedTitle + " completed"); + // Compute Audiobookshelf item page title + const pageTitle = + pageTitlePrefix + book.media.metadata.title + pageTitlePostfix; + // Process template if any + const renderedTitle = render(pageTitle, { + mediaType: book.mediaType, + }); + + if (createPages == true) { + const page = await logseq.Editor.getPage(renderedTitle); + + const block: IBatchBlock = { + content: multiPageRenderedTemplate, + }; + + // Check if page exists + if (page !== null && updatePages) { + abLog("index", "Updating page " + renderedTitle); + updatePage(page, [block]); } else { - console.info("Error creating page " + renderedTitle); + // new page + abLog("index", "Creating page " + renderedTitle); + + const created = await createPage(renderedTitle, [block]); + if (created) { + console.info("Creating " + renderedTitle + " completed"); + } else { + console.info("Error creating page " + renderedTitle); + } + } // END New Page + } // END Page logic + } // END Books + } //END Pagination + } // END Filters + } // END Library = book + + if (library.mediaType == "podcast") { + + // Iterate over pages + for ( + let libraryPage = 0, libraryItemsTotal = 0, libraryPages = 0; + libraryPage <= libraryPages; + libraryPage++ + ) { + [podcasts, libraryItemsTotal] = await loadPodcasts( + serverUrl, + serverToken, + libraryPage, + 25, + library.id + ); + + libraryPages = Math.ceil(libraryItemsTotal / 25); + + for (const podcast of podcasts) { + console.log(podcast); + for (const episode of podcast.media.episodes) { + const itemProgress = await userMediaProgress( + audiobookshelfUser, + podcast.media.libraryItemId, + episode.id + ); + + // Continue with Podcast episodes that are either in progress or finished + if ( + (itemProgress.isFinished == true && + importProgressFilters.includes("finished")) || + (itemProgress.isFinished == false && + itemProgress.progress > 0 && + importProgressFilters.includes("in-progress")) + ) { + const singlePagePodcastRenderedTemplate = renderTemplate( + singlePagePodcastItemTemplate, + serverUrl, + preferredDateFormat, + "podcast", + itemProgress, + undefined, + podcast, + episode + ); + + abLog("index", singlePagePodcastRenderedTemplate); + + if (singlePageModeEnabled && singlePageStateTargetBlock) { + // update existing block if book is already in the state block + const existingBlocks = ( + await logseq.DB.datascriptQuery( + `[:find (pull ?b [*]) + :where + [?b :block/page ?p] + [?p :block/original-name "${pageName}"] + [?b :block/parent ?parent] + [?parent :block/uuid ?u] + [(str ?u) ?s] + [(= ?s "${singlePageStateTargetBlock.uuid}")] + [?b :block/content ?c] + [(clojure.string/includes? ?c "${episode.id}")]]` + ) + ).flat(); + + // If item wasn't imported + if (existingBlocks.length == 0) { + // Add to books block + singlePageItemBatch.unshift({ + content: singlePagePodcastRenderedTemplate, + }); + + // Add to state block + singlePageStateBatch.unshift({ + content: + episode.id + + "." + + podcast.media.metadata.title + + "." + + episode.title, + }); + } } - } // END New Page - } // END Page logic - } // END Books - } //END Pagination - } // END Filters + } // END Filter Podcasts in progress or finished + } // END Episode + } + } + } // END Library = Podcast } // END Libraries // Save books to single mode page @@ -533,10 +570,10 @@ const fetchAudiobookshelf = async (inBackground = false) => { ); } - booksBatch.length > 0 && + singlePageItemBatch.length > 0 && (await logseq.Editor.insertBatchBlock( singlePageImportTargetBlock.uuid, - booksBatch, + singlePageItemBatch, { before: true, sibling: false, @@ -550,7 +587,7 @@ const fetchAudiobookshelf = async (inBackground = false) => { singlePageImportTargetBlock.uuid, blockTitle )); - updateStatus("Audiobookshelf Import complete") + updateStatus("Audiobookshelf Import complete"); } }; diff --git a/src/schema.ts b/src/schema.ts new file mode 100644 index 0000000..9847d84 --- /dev/null +++ b/src/schema.ts @@ -0,0 +1,190 @@ +export interface Authorize { + user: User; + userDefaultLibraryId: string; +} +export interface User { + id: string; + username: string; + type: string; + mediaProgress: Progress[]; +} + +// Schema https://api.audiobookshelf.org/#library-item +export interface BookLibraryItems { + results: BookLibraryItem[]; + collapseseries: boolean; + total: number; + limit: number; + sortBy: string; + sortDesc: boolean; + mediaType: string; + minified: boolean; + include: string; +} + +export interface PodcastLibraryItems { + results: PodcastLibraryItem[]; + collapseseries: boolean; + total: number; + limit: number; + sortBy: string; + sortDesc: boolean; + mediaType: string; + minified: boolean; + include: string; +} + +export interface LibraryItem { + id: string; + ino: string; + libraryId: string; + folderId: string; + path: string; + relPath: string; + isFile: boolean; + mtimeMs: number; + ctimeMs: number; + birthtimeMs: number; + addedAt: number; + updatedAt: number; + isMissing: boolean; + isInvalid: boolean; + mediaType: string; + rssFeed: string | null; +} + +export interface BookLibraryItem extends LibraryItem { + mediaType: string; + media: BookMedia; +} + +export interface BookMedia { + libraryItemId: string; + coverPath: string; + metadata: BookMetadata; + tags: string[]; + missingParts: string[]; + ebookFile: string | null; +} + +export interface BookMetadata { + title: string; + subtitle: string | null; + asin: string; + authors: Authors[]; + description: string; + explicit: boolean; + genres: string[]; + isbn: string | null; + language: string | null; + narrators: string[]; + publishedDate: string | null; + publishedYear: string; + publisher: string; + series: Series[]; +} + +export interface PodcastLibraryItem extends LibraryItem { + id: string; + ino: string; + libraryId: string; + folderId: string; + path: string; + relPath: string; + isFile: boolean; + mtimeMs: number; + ctimeMs: number; + birthtimeMs: number; + addedAt: number; + updatedAt: number; + lastScan: number | null; + scanVersion: string | null; + isMissing: boolean; + isInvalid: boolean; + mediaType: string; + media: Podcast; + rssFeed: null | string; +} + +export interface Podcast { + libraryItemId: string; + tags: string[]; + metadata: PodcastMetadata; + autoDownloadEpisodes: boolean; + lastEpisodeCheck: number; + maxEpisodesToKeep: number; + maxNewEpisodesToDownload: number; + episodes: PodcastEpisode[]; +} + +export interface PodcastMetadata { + title: string; + author: string | null; + description: string | null; + releaseDate: string | null; + genres: string[]; + feedUrl: string | null; + imageUrl: string | null; + itunesPageUrl: string | null; + itunesId: number | null; + itunesArtistId: number | null; + explicit: boolean; + language: string | null; +} + +export interface PodcastEpisode { + libraryItemId: string; + id: string; + index: number; + season: string; + episode: string; + episodeType: string; + title: string; + subtitle: string; + description: string; + pubDate: string; + publishedAt: number; + addedAt: number; + updatedAt: number; +} + +export interface Authors { + id: string; + name: string; +} + +export interface Series { + id: string; + name: string; + sequence: number; +} + +export interface CollapsedSeries { + id: string; + name: string; + nameIgnorePrefix: string; + numBooks: number; +} + +export interface Libraries { + libraries: Library[]; +} +export interface Library { + id: string; + name: string; + mediaType: string; +} + +export interface Progress { + id: string; + libraryItemId: string; + episodeId: string; + duration: number; + progress: number; + currentTime: number; + isFinished: boolean; + hideFromContinueListening: boolean; + lastUpdate: number; + startedAt: number; + finishedAt: null | number; +} diff --git a/src/settings.ts b/src/settings.ts index 9d52eb8..5115041 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -190,6 +190,47 @@ startedDate:: [[{{{startedDateParsed}}}]] finishedDate:: [[{{{finishedDateParsed}}}]] {{/finishedDate}} +{{{description}}}`, + }, + { + key: "podcastSettingsHeading", + title: "🎙️ Podcasts Settings", + description: "", + type: "heading", + default: null, + }, + { + key: "singlePagePodcastItemTemplate", + type: "string", + inputAs: "textarea", + title: "Single Page Podcast Episode Template ", + description: "Enter the template to use for new podcast items.", + default: `### podcasts/{{{title}}}/{{{episodeTitle}}} +collapsed:: false +subtitle:: {{subtitle}} +progress:: {{{progress}}} +isFinished:: {{{isFinished}}} +duration:: {{{duration}}} +currentTime:: {{{currentTime}}} +author:: [[{{{author}}}]] +{{!===== Genres =====}} +{{#genres.length}} +genres:: {{#genres}}[[{{{.}}}]]{{/genres}} +{{/genres.length}} +source:: [Open in Audiobookshelf]({{{audiobookshelfUrl}}}) +{{!===== Tags =====}} +{{#tags.length}} +tags:: {{#tags}}[[{{{.}}}]] {{/tags}} +{{/tags.length}} +{{!===== Started Date =====}} +{{#startedDate}} +startedDate:: [[{{{startedDateParsed}}}]] +{{/startedDate}} +{{!===== Finished Date =====}} +{{#finishedDate}} +finishedDate:: [[{{{finishedDateParsed}}}]] +{{/finishedDate}} + {{{description}}}`, }, { diff --git a/src/utils.ts b/src/utils.ts index 4f33394..59c0df7 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,66 +1,17 @@ -// Schema https://github.com/advplyr/audiobookshelf/blob/master/docs/SampleBookLibraryItem.js -export interface Book { - id: string; - mediaType: string; - media: Media; -} - -export interface Media { - libraryItemId: string; - metadata: Metadata; - tags: []; -} - -export interface Metadata { - asin: string; - authors: Authors; - description: string; - explicit: boolean; - genres: []; - isbn: string; - language: string; - narrators: []; - publishedDate: string; - publishedYear: number; - publisher: string; - series: Series; - subtitle: string; - title: string; -} - -export interface Authors { - id: string; - name: string; -} - -export interface Series { - id: string; - name: string; - sequence: number; -} +import { + Authorize, + User, + BookLibraryItem, + Progress, + Library, + Libraries, + PodcastLibraryItem, + PodcastEpisode, +} from "./schema"; -export interface Libraries { - libraries: Library[]; -} -export interface Library { - id: string; - name: string; - mediaType: string; -} +import { format } from "date-fns"; -export interface Progress { - id: string; - libraryItemId: string; - episodeId: string; - duration: number; - progress: number; - currentTime: number; - isFinished: boolean; - hideFromContinueListening: boolean; - lastUpdate: number; - startedAt: number; - finishedAt: number; -} +import { render } from "mustache"; const requestHeaders = (bearerToken: string) => ({ Authorization: "Bearer " + bearerToken, @@ -68,6 +19,40 @@ const requestHeaders = (bearerToken: string) => ({ "Content-Type": "application/json", }); +export const loadUser = async ( + serverUrl: string, + bearerToken: string +): Promise => { + const res = await fetch(serverUrl + "/api/authorize", { + method: "post", + headers: requestHeaders(bearerToken), + }); + const authorize = (await res.json()) as Authorize; + return authorize.user; +}; + +export const userMediaProgress = async ( + user: User, + libraryItemId: string, + episodeId?: string +): Promise => { + for (let item of user.mediaProgress) { + // Match book + if (item.libraryItemId == libraryItemId && episodeId == undefined) { + return item as Progress; + } + // Match podcast episode + if ( + item.libraryItemId == libraryItemId && + episodeId != undefined && + item.episodeId == episodeId + ) { + return item as Progress; + } + } + return new ItemProgress(); +}; + // https://api.audiobookshelf.org/#get-a-library-39-s-items export const loadBooks = async ( serverUrl: string, @@ -75,8 +60,8 @@ export const loadBooks = async ( limit: number = 10, page: number = 0, library: string, - filter: string -): Promise<[Book[], number]> => { + filter?: string +): Promise<[BookLibraryItem[], number]> => { const url = serverUrl + "/api/libraries/" + @@ -97,6 +82,30 @@ export const loadBooks = async ( return [jsonRes.results, jsonRes.total]; }; +export const loadPodcasts = async ( + serverUrl: string, + bearerToken: string, + limit: number = 10, + page: number = 0, + library: string +): Promise<[PodcastLibraryItem[], number]> => { + const url = + serverUrl + + "/api/libraries/" + + library + + "/items?limit=" + + limit + + "&page=" + + page; + + const res = await fetch(url, { + headers: requestHeaders(bearerToken), + }); + + const jsonRes = await res.json(); + return [jsonRes.results, jsonRes.total]; +}; + export const loadLibraries = async ( serverUrl: string, bearerToken: string, @@ -116,24 +125,38 @@ export const loadLibraries = async ( return jsonRes.libraries; }; +class ItemProgress implements Progress { + id = ""; + libraryItemId = ""; + episodeId = ""; + duration = 0; + progress = 0; + currentTime = 0; + isFinished = false; + hideFromContinueListening = false; + lastUpdate = 0; + startedAt = 0; + finishedAt = null; +} + export const loadProgress = async ( serverUrl: string, bearerToken: string, libraryId: string, episodeId?: string ): Promise => { - const episodeUrl = episodeId == undefined ? "" : "/" + episodeId; - - const res = await fetch( - serverUrl + "/api/me/progress/" + libraryId + episodeUrl, - { - headers: requestHeaders(bearerToken), - } - ); - - const jsonRes = (await res.json()) as Progress; - - return jsonRes; + try { + const episodeUrl = episodeId == undefined ? "" : "/" + episodeId; + const res = await fetch( + serverUrl + "/api/me/progress/" + libraryId + episodeUrl, + { + headers: requestHeaders(bearerToken), + } + ); + return (await res.json()) as Progress; + } catch (e) { + return new ItemProgress(); + } }; export function decodeHTML(str: string) { @@ -185,3 +208,97 @@ export function seconds_human_readable(seconds: number) { export function updateStatus(msg: string) { logseq.UI.showMsg(msg); } + +export function renderTemplate( + template: string, + serverUrl: string, + preferredDateFormat: string, + itemType: string, + progress: Progress, + book?: BookLibraryItem, + podcast?: PodcastLibraryItem, + episode?: PodcastEpisode +) { + let result = ""; + + const itemStartedDate = + progress.startedAt > 0 + ? format(new Date(progress.startedAt), preferredDateFormat) + : ""; + + const itemFinishedDate = progress.finishedAt + ? format(new Date(progress.finishedAt), preferredDateFormat) + : ""; + + if (itemType == "book" && book) { + abLog("utils", book.media.metadata.title + " started " + itemStartedDate); + result = render(template, { + audiobookshelfUrl: `${serverUrl}/item/${book.id}`, + asin: book.media.metadata.asin, + authors: book.media.metadata.authors, + description: book.media.metadata.description, + duration: seconds_human_readable(progress.duration), + currentTime: seconds_human_readable(progress.currentTime), + isFinished: progress.isFinished, + explicit: book.media.metadata.explicit, + genres: book.media.metadata.genres, + isbn: book.media.metadata.isbn, + startedDate: progress.startedAt, + startedDateParsed: itemStartedDate, + finishedDate: progress.finishedAt, + finishedDateParsed: itemFinishedDate, + language: book.media.metadata.language, + narrators: book.media.metadata.narrators, + progress: + (progress.progress * 100).toFixed(progress.progress == 1 ? 0 : 2) + "%", + publishedDate: book.media.metadata.publishedDate, + publishedYear: book.media.metadata.publishedYear, + publisher: book.media.metadata.publisher, + series: book.media.metadata.series, + subtitle: book.media.metadata.subtitle, + tags: book.media.tags, + title: book.media.metadata.title, + }); + } + + if (itemType == "podcast" && podcast) { + abLog( + "utils", + podcast.media.metadata.title + " started " + itemStartedDate + ); + + result = render(template, { + audiobookshelfUrl: `${serverUrl}/item/${podcast.id}`, + author: podcast.media.metadata.author, + description: podcast.media.metadata.description, + duration: seconds_human_readable(progress.duration), + currentTime: seconds_human_readable(progress.currentTime), + isFinished: progress.isFinished, + explicit: podcast.media.metadata.explicit, + genres: podcast.media.metadata.genres, + startedDate: progress.startedAt, + startedDateParsed: itemStartedDate, + finishedDate: progress.finishedAt, + finishedDateParsed: itemFinishedDate, + language: podcast.media.metadata.language, + progress: + (progress.progress * 100).toFixed(progress.progress == 1 ? 0 : 2) + "%", + releaseDate: podcast.media.metadata.releaseDate, + tags: podcast.media.tags, + title: podcast.media.metadata.title, + index: episode?.index, + season: episode?.season, + episode: episode?.episode, + episodeType: episode?.episodeType, + episodeTitle: episode?.title, + episodeSubtitle: episode?.subtitle, + episodeDescription: episode?.description, + episdoePubDate: episode?.pubDate, + episodePublishedAt: episode?.publishedAt, + episodeAddedAt: episode?.addedAt, + episodeUpdatedAt: episode?.updatedAt, + }); + } + + return result; +} diff --git a/tests/__fixtures__/authorize.json b/tests/__fixtures__/authorize.json new file mode 100644 index 0000000..a4dc88f --- /dev/null +++ b/tests/__fixtures__/authorize.json @@ -0,0 +1,106 @@ +{ + "user": { + "id": "root", + "username": "root", + "type": "root", + "token": "exJhbGciOiJI6IkpXVCJ9.eyJ1c2Vyi5NDEyODc4fQ.ZraBFohS4Tg39NszY", + "mediaProgress": [ + { + "id": "li_bufnnmp4y5o2gbbxfm-ep_lh6ko39pumnrma3dhv", + "libraryItemId": "li_bufnnmp4y5o2gbbxfm", + "episodeId": "ep_lh6ko39pumnrma3dhv", + "duration": 1454.18449, + "progress": 0.434998929881311, + "currentTime": 632.568697, + "isFinished": false, + "hideFromContinueListening": false, + "lastUpdate": 1668586015691, + "startedAt": 1668120083771, + "finishedAt": null + }, + { + "id": "li_bufnnmp4y5o2gbbxfm-ep_lh6ko39pumnrma3dhv", + "libraryItemId": "li_bufnnmp4y5892ebbxfm", + "episodeId": null, + "duration": 1454.18449, + "progress": 0.42057298864465265, + "currentTime": 611.590717, + "isFinished": false, + "hideFromContinueListening": false, + "lastUpdate": 1668330152157, + "startedAt": 1668120083771, + "finishedAt": null + }, + { + "id": "li_bufnnmp4y5o2gbbxfm-ep_lh6ko39pumnrma3dhv", + "libraryItemId": "li_bufnnmp4y5o2gbbxfm", + "episodeId": "ep_rwi8o39pumnrma3dhv", + "duration": 1454.18449, + "progress": 1, + "currentTime": 611.590717, + "isFinished": true, + "hideFromContinueListening": false, + "lastUpdate": 1668330152157, + "startedAt": 1668120083771, + "finishedAt": 166812099879 + } + ], + "seriesHideFromContinueListening": [], + "bookmarks": [], + "isActive": true, + "isLocked": false, + "lastSeen": 1669010786013, + "createdAt": 1666543632566, + "permissions": { + "download": true, + "update": true, + "delete": true, + "upload": true, + "accessAllLibraries": true, + "accessAllTags": true, + "accessExplicitContent": true + }, + "librariesAccessible": [], + "itemTagsAccessible": [] + }, + "userDefaultLibraryId": "lib_c1u6t4p45c35rf0nzd", + "serverSettings": { + "id": "server-settings", + "scannerFindCovers": false, + "scannerCoverProvider": "audible", + "scannerParseSubtitle": false, + "scannerPreferAudioMetadata": false, + "scannerPreferOpfMetadata": false, + "scannerPreferMatchedMetadata": false, + "scannerDisableWatcher": true, + "scannerPreferOverdriveMediaMarker": false, + "scannerUseSingleThreadedProber": true, + "scannerMaxThreads": 0, + "scannerUseTone": false, + "storeCoverWithItem": false, + "storeMetadataWithItem": false, + "rateLimitLoginRequests": 10, + "rateLimitLoginWindow": 600000, + "backupSchedule": "30 1 * * *", + "backupsToKeep": 2, + "maxBackupSize": 1, + "backupMetadataCovers": true, + "loggerDailyLogsToKeep": 7, + "loggerScannerLogsToKeep": 2, + "homeBookshelfView": 1, + "bookshelfView": 1, + "sortingIgnorePrefix": false, + "sortingPrefixes": [ + "the", + "a" + ], + "chromecastEnabled": false, + "enableEReader": false, + "dateFormat": "MM/dd/yyyy", + "language": "en-us", + "logLevel": 2, + "version": "2.2.5" + }, + "Source": "docker" + } + \ No newline at end of file diff --git a/tests/__fixtures__/book.json b/tests/__fixtures__/book.json new file mode 100644 index 0000000..f266e31 --- /dev/null +++ b/tests/__fixtures__/book.json @@ -0,0 +1,67 @@ +{ + "results": [ + { + "id": "li_q9teoi4jste86wnk76", + "ino": "16253012", + "libraryId": "lib_kppofuog4odorydwgg", + "folderId": "fol_u7g1p5mz96d1hms0a2", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood", + "relPath": "Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood", + "isFile": false, + "mtimeMs": 1673790479068, + "ctimeMs": 1673790479068, + "birthtimeMs": 1673790440792, + "addedAt": 1673790447209, + "updatedAt": 1673790635882, + "isMissing": false, + "isInvalid": false, + "mediaType": "book", + "media": { + "metadata": { + "title": "Wizards First Rule", + "titleIgnorePrefix": "Wizards First Rule", + "subtitle": null, + "authors": ["Terry Goodkind"], + "narrators": ["Sam Tsoutsouvas"], + "series": { + "title": "Sword of Truth" + }, + "genres": [ + "Fantasy" + ], + "publishedYear": "2008", + "publishedDate": null, + "publisher": "Brilliance Audio", + "description": "The masterpiece that started Terry Goodkind's New York Times bestselling epic Sword of Truth In the aftermath of the brutal murder of his father, a mysterious woman, Kahlan Amnell, appears in Richard Cypher's forest sanctuary seeking help...and more. His world, his very beliefs, are shattered when ancient debts come due with thundering violence. In a dark age it takes courage to live, and more than mere courage to challenge those who hold dominion, Richard and Kahlan must take up that challenge or become the next victims. Beyond awaits a bewitching land where even the best of their hearts could betray them. Yet, Richard fears nothing so much as what secrets his sword might reveal about his own soul. Falling in love would destroy them - for reasons Richard can't imagine and Kahlan dare not say. In their darkest hour, hunted relentlessly, tormented by treachery and loss, Kahlan calls upon Richard to reach beyond his sword - to invoke within himself something more noble. Neither knows that the rules of battle have just changed...or that their time has run out. Wizard's First Rule is the beginning. One book. One Rule. Witness the birth of a legend.", + "isbn": null, + "asin": "B002V0QK4C", + "language": null, + "explicit": false + }, + "libraryItemId": "li_8gch9ve09orgn4fdz8", + "coverPath": "/audiobooks/Terry Goodkind/Sword of Truth/Wizards First Rule/cover.jpg", + "tags": [], + "numTracks": 2, + "numAudioFiles": 2, + "numChapters": 2, + "numMissingParts": 0, + "numInvalidAudioFiles": 0, + "duration": 12000.946, + "size": 96010240, + "ebookFileFormat": null + }, + "numFiles": 45, + "size": 307608196, + "rssFeed": null + } + ], + "total": 3, + "limit": 100, + "page": 0, + "sortBy": "media.metadata.title", + "sortDesc": false, + "mediaType": "book", + "minified": true, + "collapseseries": false, + "include": "rssfeed" +} \ No newline at end of file diff --git a/tests/__fixtures__/books_library_items.json b/tests/__fixtures__/books_library_items.json new file mode 100644 index 0000000..3f9fad4 --- /dev/null +++ b/tests/__fixtures__/books_library_items.json @@ -0,0 +1,11101 @@ +{ + "results": [ + { + "id": "li_q9teoi4jste86wnk76", + "ino": "16253012", + "libraryId": "lib_kppofuog4odorydwgg", + "folderId": "fol_u7g1p5mz96d1hms0a2", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood", + "relPath": "Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood", + "isFile": false, + "mtimeMs": 1673790479068, + "ctimeMs": 1673790479068, + "birthtimeMs": 1673790440792, + "addedAt": 1673790447209, + "updatedAt": 1673790635882, + "lastScan": 1673790499112, + "scanVersion": "2.2.12", + "isMissing": false, + "isInvalid": false, + "mediaType": "book", + "media": { + "libraryItemId": "li_q9teoi4jste86wnk76", + "metadata": { + "title": "Adventures of Huckleberry Finn: A Signature Performance by Elijah Wood", + "subtitle": null, + "authors": [ + { + "id": "aut_5vy9jrttvqrhoa2zc2", + "name": "Mark Twain" + } + ], + "narrators": [ + "Elijah Wood" + ], + "series": [ + { + "id": "ser_w9v0tjxophpndaqt9e", + "name": "Twain's Tom and Huck", + "sequence": "2" + } + ], + "genres": [ + "Literature & Fiction" + ], + "publishedYear": "2010", + "publishedDate": null, + "publisher": "Audible Studios", + "description": "Earphones Award Winner (AudioFile Magazine) Audible is pleased to announce the premiere of an exciting new series, Audible Signature Classics, featuring literature’s greatest stories, performed by accomplished stars handpicked for their ability to interpret each work in a new and refreshing way. The first book in the series is Mark Twain’s Adventures of Huckleberry Finn, performed by Elijah Wood. Ernest Hemingway said, “All modern American literature comes from one book by Mark Twain called Huckleberry Finn\". One hundred years after its author’s death, this classic remains remarkably modern and poignantly relevant. In this brand new edition, Elijah Wood reads Huck in a youthful voice that may be the closest interpretation to Twain’s original intent. His performance captures the excitement and confusion of adolescence and adventure. Best of all, the immediacy of Wood’s energetic reading sweeps listeners up and makes them feel as though they’re along for the ride, as Huck and Jim push their raft toward freedom. Stay tuned for more one-of-a-kind performances from actors Kenneth Branagh, David Hyde Pierce, Leelee Sobieski, and more, only from Audible Signature Classics.", + "isbn": null, + "asin": "B0040J17CW", + "language": "English", + "explicit": false + }, + "coverPath": "/metadata/items/li_q9teoi4jste86wnk76/cover.jpg", + "tags": [ + "Classics", + "Genre Fiction", + "Coming of Age", + "Literary Fiction" + ], + "audioFiles": [ + { + "index": 1, + "ino": "16253066", + "metadata": { + "filename": "01 - Introductions.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/01 - Introductions.mp3", + "relPath": "01 - Introductions.mp3", + "size": 750433, + "mtimeMs": 1673790458622, + "ctimeMs": 1673790458622, + "birthtimeMs": 1673790457795 + }, + "addedAt": 1673790464364, + "updatedAt": 1673790464364, + "trackNumFromMeta": 1, + "discNumFromMeta": null, + "trackNumFromFilename": 1, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 86.752653, + "bitRate": 63384, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Introductions", + "tagTrack": "01", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 2, + "ino": "16253068", + "metadata": { + "filename": "02 - Chapter 1.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/02 - Chapter 1.mp3", + "relPath": "02 - Chapter 1.mp3", + "size": 3749677, + "mtimeMs": 1673790464478, + "ctimeMs": 1673790464478, + "birthtimeMs": 1673790458622 + }, + "addedAt": 1673790464553, + "updatedAt": 1673790464553, + "trackNumFromMeta": 2, + "discNumFromMeta": null, + "trackNumFromFilename": 2, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 433.737143, + "bitRate": 67997, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 1", + "tagTrack": "02", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 3, + "ino": "16253089", + "metadata": { + "filename": "03 - Chapter 2.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/03 - Chapter 2.mp3", + "relPath": "03 - Chapter 2.mp3", + "size": 6323152, + "mtimeMs": 1673790471828, + "ctimeMs": 1673790471828, + "birthtimeMs": 1673790464478 + }, + "addedAt": 1673790478472, + "updatedAt": 1673790478472, + "trackNumFromMeta": 3, + "discNumFromMeta": null, + "trackNumFromFilename": 3, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 759.980408, + "bitRate": 65897, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 2", + "tagTrack": "03", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 4, + "ino": "16253046", + "metadata": { + "filename": "04 - Chapter 3.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/04 - Chapter 3.mp3", + "relPath": "04 - Chapter 3.mp3", + "size": 4556353, + "mtimeMs": 1673790471829, + "ctimeMs": 1673790471829, + "birthtimeMs": 1673790448580 + }, + "addedAt": 1673790464839, + "updatedAt": 1673790464839, + "trackNumFromMeta": 4, + "discNumFromMeta": null, + "trackNumFromFilename": 4, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 545.044898, + "bitRate": 65951, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 3", + "tagTrack": "04", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 5, + "ino": "16253088", + "metadata": { + "filename": "05 - Chapter 4.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/05 - Chapter 4.mp3", + "relPath": "05 - Chapter 4.mp3", + "size": 3924983, + "mtimeMs": 1673790468582, + "ctimeMs": 1673790468582, + "birthtimeMs": 1673790464373 + }, + "addedAt": 1673790478472, + "updatedAt": 1673790478472, + "trackNumFromMeta": 5, + "discNumFromMeta": null, + "trackNumFromFilename": 5, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 476.891429, + "bitRate": 64785, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 4", + "tagTrack": "05", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 6, + "ino": "16253014", + "metadata": { + "filename": "06 - Chapter 5.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/06 - Chapter 5.mp3", + "relPath": "06 - Chapter 5.mp3", + "size": 4666345, + "mtimeMs": 1673790475981, + "ctimeMs": 1673790475981, + "birthtimeMs": 1673790440851 + }, + "addedAt": 1673790452037, + "updatedAt": 1673790452037, + "trackNumFromMeta": 6, + "discNumFromMeta": null, + "trackNumFromFilename": 6, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 565.524898, + "bitRate": 65118, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 5", + "tagTrack": "06", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 7, + "ino": "16253038", + "metadata": { + "filename": "07 - Chapter 6.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/07 - Chapter 6.mp3", + "relPath": "07 - Chapter 6.mp3", + "size": 8224088, + "mtimeMs": 1673790456810, + "ctimeMs": 1673790456810, + "birthtimeMs": 1673790444848 + }, + "addedAt": 1673790452206, + "updatedAt": 1673790452206, + "trackNumFromMeta": 7, + "discNumFromMeta": null, + "trackNumFromFilename": 7, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 982.386939, + "bitRate": 66459, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 6", + "tagTrack": "07", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 8, + "ino": "16253028", + "metadata": { + "filename": "08 - Chapter 7.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/08 - Chapter 7.mp3", + "relPath": "08 - Chapter 7.mp3", + "size": 7089609, + "mtimeMs": 1673790464236, + "ctimeMs": 1673790464236, + "birthtimeMs": 1673790442776 + }, + "addedAt": 1673790452345, + "updatedAt": 1673790452345, + "trackNumFromMeta": 8, + "discNumFromMeta": null, + "trackNumFromFilename": 8, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 839.915102, + "bitRate": 66926, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 7", + "tagTrack": "08", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 9, + "ino": "16253018", + "metadata": { + "filename": "09 - Chapter 8.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/09 - Chapter 8.mp3", + "relPath": "09 - Chapter 8.mp3", + "size": 12512855, + "mtimeMs": 1673790465009, + "ctimeMs": 1673790465009, + "birthtimeMs": 1673790441626 + }, + "addedAt": 1673790451033, + "updatedAt": 1673790451033, + "trackNumFromMeta": 9, + "discNumFromMeta": null, + "trackNumFromFilename": 9, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1507.84, + "bitRate": 66054, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 8", + "tagTrack": "09", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 10, + "ino": "16253055", + "metadata": { + "filename": "10 - Chapter 9.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/10 - Chapter 9.mp3", + "relPath": "10 - Chapter 9.mp3", + "size": 4258990, + "mtimeMs": 1673790472022, + "ctimeMs": 1673790472022, + "birthtimeMs": 1673790455911 + }, + "addedAt": 1673790464723, + "updatedAt": 1673790464723, + "trackNumFromMeta": 10, + "discNumFromMeta": null, + "trackNumFromFilename": 10, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 507.010612, + "bitRate": 66206, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 9", + "tagTrack": "10", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 11, + "ino": "16253031", + "metadata": { + "filename": "11 - Chapter 10.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/11 - Chapter 10.mp3", + "relPath": "11 - Chapter 10.mp3", + "size": 3673715, + "mtimeMs": 1673790470281, + "ctimeMs": 1673790470281, + "birthtimeMs": 1673790443099 + }, + "addedAt": 1673790452100, + "updatedAt": 1673790452100, + "trackNumFromMeta": 11, + "discNumFromMeta": null, + "trackNumFromFilename": 11, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 426.13551, + "bitRate": 67784, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 10", + "tagTrack": "11", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 12, + "ino": "16253019", + "metadata": { + "filename": "12 - Chapter 11.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/12 - Chapter 11.mp3", + "relPath": "12 - Chapter 11.mp3", + "size": 7472411, + "mtimeMs": 1673790473863, + "ctimeMs": 1673790473863, + "birthtimeMs": 1673790441751 + }, + "addedAt": 1673790451611, + "updatedAt": 1673790451611, + "trackNumFromMeta": 12, + "discNumFromMeta": null, + "trackNumFromFilename": 12, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 912.64, + "bitRate": 64949, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 11", + "tagTrack": "12", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 13, + "ino": "16253016", + "metadata": { + "filename": "13 - Chapter 12.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/13 - Chapter 12.mp3", + "relPath": "13 - Chapter 12.mp3", + "size": 7523745, + "mtimeMs": 1673790475469, + "ctimeMs": 1673790475469, + "birthtimeMs": 1673790441318 + }, + "addedAt": 1673790451435, + "updatedAt": 1673790451435, + "trackNumFromMeta": 13, + "discNumFromMeta": null, + "trackNumFromFilename": 13, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 906.788571, + "bitRate": 65821, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 12", + "tagTrack": "13", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 14, + "ino": "16253050", + "metadata": { + "filename": "14 - Chapter 13.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/14 - Chapter 13.mp3", + "relPath": "14 - Chapter 13.mp3", + "size": 5465303, + "mtimeMs": 1673790459498, + "ctimeMs": 1673790459498, + "birthtimeMs": 1673790452390 + }, + "addedAt": 1673790464724, + "updatedAt": 1673790464724, + "trackNumFromMeta": 14, + "discNumFromMeta": null, + "trackNumFromFilename": 14, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 654.706939, + "bitRate": 66011, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 13", + "tagTrack": "14", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 15, + "ino": "16253054", + "metadata": { + "filename": "15 - Chapter 14.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/15 - Chapter 14.mp3", + "relPath": "15 - Chapter 14.mp3", + "size": 4392290, + "mtimeMs": 1673790460251, + "ctimeMs": 1673790460251, + "birthtimeMs": 1673790454343 + }, + "addedAt": 1673790464552, + "updatedAt": 1673790464552, + "trackNumFromMeta": 15, + "discNumFromMeta": null, + "trackNumFromFilename": 15, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 546.115918, + "bitRate": 63418, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 14", + "tagTrack": "15", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 16, + "ino": "16253026", + "metadata": { + "filename": "16 - Chapter 15.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/16 - Chapter 15.mp3", + "relPath": "16 - Chapter 15.mp3", + "size": 6597786, + "mtimeMs": 1673790455948, + "ctimeMs": 1673790455948, + "birthtimeMs": 1673790442616 + }, + "addedAt": 1673790452398, + "updatedAt": 1673790452398, + "trackNumFromMeta": 16, + "discNumFromMeta": null, + "trackNumFromFilename": 16, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 790.204082, + "bitRate": 66157, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 15", + "tagTrack": "16", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 17, + "ino": "16253029", + "metadata": { + "filename": "17 - Chapter 16.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/17 - Chapter 16.mp3", + "relPath": "17 - Chapter 16.mp3", + "size": 9351344, + "mtimeMs": 1673790445392, + "ctimeMs": 1673790445392, + "birthtimeMs": 1673790442960 + }, + "addedAt": 1673790451251, + "updatedAt": 1673790451251, + "trackNumFromMeta": 17, + "discNumFromMeta": null, + "trackNumFromFilename": 17, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1135.908571, + "bitRate": 65416, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 16", + "tagTrack": "17", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 18, + "ino": "16253035", + "metadata": { + "filename": "18 - Chapter 17.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/18 - Chapter 17.mp3", + "relPath": "18 - Chapter 17.mp3", + "size": 9528784, + "mtimeMs": 1673790477579, + "ctimeMs": 1673790477579, + "birthtimeMs": 1673790443800 + }, + "addedAt": 1673790451126, + "updatedAt": 1673790451126, + "trackNumFromMeta": 18, + "discNumFromMeta": null, + "trackNumFromFilename": 18, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1125.825306, + "bitRate": 67262, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 17", + "tagTrack": "18", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 19, + "ino": "16253013", + "metadata": { + "filename": "19 - Chapter 18.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/19 - Chapter 18.mp3", + "relPath": "19 - Chapter 18.mp3", + "size": 12775102, + "mtimeMs": 1673790474221, + "ctimeMs": 1673790474221, + "birthtimeMs": 1673790440792 + }, + "addedAt": 1673790451187, + "updatedAt": 1673790451187, + "trackNumFromMeta": 19, + "discNumFromMeta": null, + "trackNumFromFilename": 19, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1483.102041, + "bitRate": 68570, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 18", + "tagTrack": "19", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 20, + "ino": "16253043", + "metadata": { + "filename": "20 - Chapter 19.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/20 - Chapter 19.mp3", + "relPath": "20 - Chapter 19.mp3", + "size": 9696127, + "mtimeMs": 1673790474440, + "ctimeMs": 1673790474440, + "birthtimeMs": 1673790446185 + }, + "addedAt": 1673790451062, + "updatedAt": 1673790451062, + "trackNumFromMeta": 20, + "discNumFromMeta": null, + "trackNumFromFilename": 20, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1131.232653, + "bitRate": 68124, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 19", + "tagTrack": "20", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 21, + "ino": "16253045", + "metadata": { + "filename": "21 - Chapter 20.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/21 - Chapter 20.mp3", + "relPath": "21 - Chapter 20.mp3", + "size": 10052755, + "mtimeMs": 1673790458782, + "ctimeMs": 1673790458782, + "birthtimeMs": 1673790447421 + }, + "addedAt": 1673790464365, + "updatedAt": 1673790464365, + "trackNumFromMeta": 21, + "discNumFromMeta": null, + "trackNumFromFilename": 21, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1178.305306, + "bitRate": 67824, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 20", + "tagTrack": "21", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 22, + "ino": "16253040", + "metadata": { + "filename": "22 - Chapter 21.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/22 - Chapter 21.mp3", + "relPath": "22 - Chapter 21.mp3", + "size": 10836312, + "mtimeMs": 1673790469312, + "ctimeMs": 1673790469312, + "birthtimeMs": 1673790445441 + }, + "addedAt": 1673790451929, + "updatedAt": 1673790451929, + "trackNumFromMeta": 22, + "discNumFromMeta": null, + "trackNumFromFilename": 22, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1268.767347, + "bitRate": 67929, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 21", + "tagTrack": "22", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 23, + "ino": "16253017", + "metadata": { + "filename": "23 - Chapter 22.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/23 - Chapter 22.mp3", + "relPath": "23 - Chapter 22.mp3", + "size": 6218531, + "mtimeMs": 1673790474110, + "ctimeMs": 1673790474110, + "birthtimeMs": 1673790441447 + }, + "addedAt": 1673790451034, + "updatedAt": 1673790451048, + "trackNumFromMeta": 23, + "discNumFromMeta": null, + "trackNumFromFilename": 23, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 718.001633, + "bitRate": 68584, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 22", + "tagTrack": "23", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 24, + "ino": "16253041", + "metadata": { + "filename": "24 - Chapter 23.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/24 - Chapter 23.mp3", + "relPath": "24 - Chapter 23.mp3", + "size": 6837605, + "mtimeMs": 1673790474587, + "ctimeMs": 1673790474587, + "birthtimeMs": 1673790445441 + }, + "addedAt": 1673790452283, + "updatedAt": 1673790452283, + "trackNumFromMeta": 24, + "discNumFromMeta": null, + "trackNumFromFilename": 24, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 814.837551, + "bitRate": 66512, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 23", + "tagTrack": "24", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 25, + "ino": "16253025", + "metadata": { + "filename": "25 - Chapter 24.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/25 - Chapter 24.mp3", + "relPath": "25 - Chapter 24.mp3", + "size": 6772119, + "mtimeMs": 1673790456531, + "ctimeMs": 1673790456531, + "birthtimeMs": 1673790442493 + }, + "addedAt": 1673790452257, + "updatedAt": 1673790452257, + "trackNumFromMeta": 25, + "discNumFromMeta": null, + "trackNumFromFilename": 25, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 789.65551, + "bitRate": 67969, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 24", + "tagTrack": "25", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 26, + "ino": "16253037", + "metadata": { + "filename": "26 - Chapter 25.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/26 - Chapter 25.mp3", + "relPath": "26 - Chapter 25.mp3", + "size": 8979246, + "mtimeMs": 1673790471489, + "ctimeMs": 1673790471489, + "birthtimeMs": 1673790444259 + }, + "addedAt": 1673790452398, + "updatedAt": 1673790452398, + "trackNumFromMeta": 26, + "discNumFromMeta": null, + "trackNumFromFilename": 26, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1077.76, + "bitRate": 66183, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 25", + "tagTrack": "26", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 27, + "ino": "16253022", + "metadata": { + "filename": "27 - Chapter 26.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/27 - Chapter 26.mp3", + "relPath": "27 - Chapter 26.mp3", + "size": 8189531, + "mtimeMs": 1673790471023, + "ctimeMs": 1673790471023, + "birthtimeMs": 1673790442368 + }, + "addedAt": 1673790451103, + "updatedAt": 1673790451103, + "trackNumFromMeta": 27, + "discNumFromMeta": null, + "trackNumFromFilename": 27, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 996.780408, + "bitRate": 65222, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 26", + "tagTrack": "27", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 28, + "ino": "16253090", + "metadata": { + "filename": "28 - Chapter 27.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/28 - Chapter 27.mp3", + "relPath": "28 - Chapter 27.mp3", + "size": 7366113, + "mtimeMs": 1673790470795, + "ctimeMs": 1673790470795, + "birthtimeMs": 1673790464863 + }, + "addedAt": 1673790478472, + "updatedAt": 1673790478472, + "trackNumFromMeta": 28, + "discNumFromMeta": null, + "trackNumFromFilename": 28, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 861.727347, + "bitRate": 67799, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 27", + "tagTrack": "28", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 29, + "ino": "16253024", + "metadata": { + "filename": "29 - Chapter 28.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/29 - Chapter 28.mp3", + "relPath": "29 - Chapter 28.mp3", + "size": 9804517, + "mtimeMs": 1673790478280, + "ctimeMs": 1673790478280, + "birthtimeMs": 1673790442410 + }, + "addedAt": 1673790451804, + "updatedAt": 1673790451804, + "trackNumFromMeta": 29, + "discNumFromMeta": null, + "trackNumFromFilename": 29, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1192.463673, + "bitRate": 65353, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 28", + "tagTrack": "29", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 30, + "ino": "16253048", + "metadata": { + "filename": "30 - Chapter 29.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/30 - Chapter 29.mp3", + "relPath": "30 - Chapter 29.mp3", + "size": 10629556, + "mtimeMs": 1673790479073, + "ctimeMs": 1673790479073, + "birthtimeMs": 1673790449748 + }, + "addedAt": 1673790465162, + "updatedAt": 1673790465162, + "trackNumFromMeta": 30, + "discNumFromMeta": null, + "trackNumFromFilename": 30, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1280.992653, + "bitRate": 65989, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 29", + "tagTrack": "30", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 31, + "ino": "16253049", + "metadata": { + "filename": "31 - Chapter 30.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/31 - Chapter 30.mp3", + "relPath": "31 - Chapter 30.mp3", + "size": 3607656, + "mtimeMs": 1673790457036, + "ctimeMs": 1673790457036, + "birthtimeMs": 1673790450065 + }, + "addedAt": 1673790464723, + "updatedAt": 1673790464723, + "trackNumFromMeta": 31, + "discNumFromMeta": null, + "trackNumFromFilename": 31, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 448.313469, + "bitRate": 63252, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 30", + "tagTrack": "31", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 32, + "ino": "16253027", + "metadata": { + "filename": "32 - Chapter 31.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/32 - Chapter 31.mp3", + "relPath": "32 - Chapter 31.mp3", + "size": 9938923, + "mtimeMs": 1673790459895, + "ctimeMs": 1673790459895, + "birthtimeMs": 1673790442735 + }, + "addedAt": 1673790450996, + "updatedAt": 1673790450996, + "trackNumFromMeta": 32, + "discNumFromMeta": null, + "trackNumFromFilename": 32, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1219.84, + "bitRate": 64768, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 31", + "tagTrack": "32", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 33, + "ino": "16253034", + "metadata": { + "filename": "33 - Chapter 32.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/33 - Chapter 32.mp3", + "relPath": "33 - Chapter 32.mp3", + "size": 6581784, + "mtimeMs": 1673790451084, + "ctimeMs": 1673790451084, + "birthtimeMs": 1673790443725 + }, + "addedAt": 1673790450405, + "updatedAt": 1673790450405, + "trackNumFromMeta": 33, + "discNumFromMeta": null, + "trackNumFromFilename": 33, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 755.252245, + "bitRate": 69049, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 32", + "tagTrack": "33", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 34, + "ino": "16253023", + "metadata": { + "filename": "34 - Chapter 33.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/34 - Chapter 33.mp3", + "relPath": "34 - Chapter 33.mp3", + "size": 7476382, + "mtimeMs": 1673790452135, + "ctimeMs": 1673790452135, + "birthtimeMs": 1673790442398 + }, + "addedAt": 1673790451612, + "updatedAt": 1673790451612, + "trackNumFromMeta": 34, + "discNumFromMeta": null, + "trackNumFromFilename": 34, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 886.204082, + "bitRate": 66922, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 33", + "tagTrack": "34", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 35, + "ino": "16253047", + "metadata": { + "filename": "35 - Chapter 34.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/35 - Chapter 34.mp3", + "relPath": "35 - Chapter 34.mp3", + "size": 5959761, + "mtimeMs": 1673790450811, + "ctimeMs": 1673790450811, + "birthtimeMs": 1673790449233 + }, + "addedAt": 1673790464540, + "updatedAt": 1673790464540, + "trackNumFromMeta": 35, + "discNumFromMeta": null, + "trackNumFromFilename": 35, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 709.12, + "bitRate": 66524, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 34", + "tagTrack": "35", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 36, + "ino": "16253033", + "metadata": { + "filename": "36 - Chapter 35.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/36 - Chapter 35.mp3", + "relPath": "36 - Chapter 35.mp3", + "size": 7002715, + "mtimeMs": 1673790475254, + "ctimeMs": 1673790475254, + "birthtimeMs": 1673790443502 + }, + "addedAt": 1673790451125, + "updatedAt": 1673790451125, + "trackNumFromMeta": 36, + "discNumFromMeta": null, + "trackNumFromFilename": 36, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 840.411429, + "bitRate": 66059, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 35", + "tagTrack": "36", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 37, + "ino": "16253036", + "metadata": { + "filename": "37 - Chapter 36.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/37 - Chapter 36.mp3", + "relPath": "37 - Chapter 36.mp3", + "size": 5707641, + "mtimeMs": 1673790473041, + "ctimeMs": 1673790473041, + "birthtimeMs": 1673790444045 + }, + "addedAt": 1673790450760, + "updatedAt": 1673790450760, + "trackNumFromMeta": 37, + "discNumFromMeta": null, + "trackNumFromFilename": 37, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 668.577959, + "bitRate": 67541, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 36", + "tagTrack": "37", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 38, + "ino": "16253039", + "metadata": { + "filename": "38 - Chapter 37.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/38 - Chapter 37.mp3", + "relPath": "38 - Chapter 37.mp3", + "size": 6747923, + "mtimeMs": 1673790446256, + "ctimeMs": 1673790446256, + "birthtimeMs": 1673790445397 + }, + "addedAt": 1673790451063, + "updatedAt": 1673790451063, + "trackNumFromMeta": 38, + "discNumFromMeta": null, + "trackNumFromFilename": 38, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 802.507755, + "bitRate": 66639, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 37", + "tagTrack": "38", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 39, + "ino": "16253044", + "metadata": { + "filename": "39 - Chapter 38.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/39 - Chapter 38.mp3", + "relPath": "39 - Chapter 38.mp3", + "size": 6858967, + "mtimeMs": 1673790467713, + "ctimeMs": 1673790467713, + "birthtimeMs": 1673790446256 + }, + "addedAt": 1673790450657, + "updatedAt": 1673790450657, + "trackNumFromMeta": 39, + "discNumFromMeta": null, + "trackNumFromFilename": 39, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 833.593469, + "bitRate": 65220, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 38", + "tagTrack": "39", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 40, + "ino": "16253021", + "metadata": { + "filename": "40 - Chapter 39.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/40 - Chapter 39.mp3", + "relPath": "40 - Chapter 39.mp3", + "size": 5779057, + "mtimeMs": 1673790472327, + "ctimeMs": 1673790472327, + "birthtimeMs": 1673790442112 + }, + "addedAt": 1673790452506, + "updatedAt": 1673790452506, + "trackNumFromMeta": 40, + "discNumFromMeta": null, + "trackNumFromFilename": 40, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 650.475102, + "bitRate": 70299, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 39", + "tagTrack": "40", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 41, + "ino": "16253032", + "metadata": { + "filename": "41 - Chapter 40.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/41 - Chapter 40.mp3", + "relPath": "41 - Chapter 40.mp3", + "size": 6032349, + "mtimeMs": 1673790458185, + "ctimeMs": 1673790458185, + "birthtimeMs": 1673790443266 + }, + "addedAt": 1673790451848, + "updatedAt": 1673790451848, + "trackNumFromMeta": 41, + "discNumFromMeta": null, + "trackNumFromFilename": 41, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 708.440816, + "bitRate": 67407, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 40", + "tagTrack": "41", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 42, + "ino": "16253030", + "metadata": { + "filename": "42 - Chapter 41.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/42 - Chapter 41.mp3", + "relPath": "42 - Chapter 41.mp3", + "size": 7225563, + "mtimeMs": 1673790459918, + "ctimeMs": 1673790459918, + "birthtimeMs": 1673790442979 + }, + "addedAt": 1673790451676, + "updatedAt": 1673790451676, + "trackNumFromMeta": 42, + "discNumFromMeta": null, + "trackNumFromFilename": 42, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 865.724082, + "bitRate": 66187, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 41", + "tagTrack": "42", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 43, + "ino": "16253042", + "metadata": { + "filename": "43 - Chapter 42.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/43 - Chapter 42.mp3", + "relPath": "43 - Chapter 42.mp3", + "size": 8198821, + "mtimeMs": 1673790474885, + "ctimeMs": 1673790474885, + "birthtimeMs": 1673790445522 + }, + "addedAt": 1673790451485, + "updatedAt": 1673790451485, + "trackNumFromMeta": 43, + "discNumFromMeta": null, + "trackNumFromFilename": 43, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 977.632653, + "bitRate": 66575, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 42", + "tagTrack": "43", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 44, + "ino": "16253020", + "metadata": { + "filename": "44 - Chapter 43.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/44 - Chapter 43.mp3", + "relPath": "44 - Chapter 43.mp3", + "size": 2210819, + "mtimeMs": 1673790479068, + "ctimeMs": 1673790479068, + "birthtimeMs": 1673790441858 + }, + "addedAt": 1673790452429, + "updatedAt": 1673790452429, + "trackNumFromMeta": 44, + "discNumFromMeta": null, + "trackNumFromFilename": 44, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 258.533878, + "bitRate": 66459, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "Adventures of Huckleberry Finn", + "tagArtist": "Mark Twain", + "tagGenre": "Audiobook", + "tagTitle": "Chapter 43", + "tagTrack": "44", + "tagAlbumArtist": "Mark Twain", + "tagDate": "1884", + "tagComment": "Read by Elijah Wood; Audible Studios, 2010", + "tagEncoder": "LAME 32bits version 3.99.5 (http://lame.sf.net)" + }, + "mimeType": "audio/mpeg" + } + ], + "chapters": [ + { + "id": 0, + "start": 0, + "end": 86.752653, + "title": "01 - Introductions" + }, + { + "id": 1, + "start": 86.752653, + "end": 520.489796, + "title": "02 - Chapter 1" + }, + { + "id": 2, + "start": 520.489796, + "end": 1280.470204, + "title": "03 - Chapter 2" + }, + { + "id": 3, + "start": 1280.470204, + "end": 1825.5151019999998, + "title": "04 - Chapter 3" + }, + { + "id": 4, + "start": 1825.5151019999998, + "end": 2302.4065309999996, + "title": "05 - Chapter 4" + }, + { + "id": 5, + "start": 2302.4065309999996, + "end": 2867.9314289999998, + "title": "06 - Chapter 5" + }, + { + "id": 6, + "start": 2867.9314289999998, + "end": 3850.3183679999997, + "title": "07 - Chapter 6" + }, + { + "id": 7, + "start": 3850.3183679999997, + "end": 4690.23347, + "title": "08 - Chapter 7" + }, + { + "id": 8, + "start": 4690.23347, + "end": 6198.07347, + "title": "09 - Chapter 8" + }, + { + "id": 9, + "start": 6198.07347, + "end": 6705.084082, + "title": "10 - Chapter 9" + }, + { + "id": 10, + "start": 6705.084082, + "end": 7131.219592, + "title": "11 - Chapter 10" + }, + { + "id": 11, + "start": 7131.219592, + "end": 8043.859592000001, + "title": "12 - Chapter 11" + }, + { + "id": 12, + "start": 8043.859592000001, + "end": 8950.648163000002, + "title": "13 - Chapter 12" + }, + { + "id": 13, + "start": 8950.648163000002, + "end": 9605.355102000001, + "title": "14 - Chapter 13" + }, + { + "id": 14, + "start": 9605.355102000001, + "end": 10151.47102, + "title": "15 - Chapter 14" + }, + { + "id": 15, + "start": 10151.47102, + "end": 10941.675102000001, + "title": "16 - Chapter 15" + }, + { + "id": 16, + "start": 10941.675102000001, + "end": 12077.583673000001, + "title": "17 - Chapter 16" + }, + { + "id": 17, + "start": 12077.583673000001, + "end": 13203.408979000002, + "title": "18 - Chapter 17" + }, + { + "id": 18, + "start": 13203.408979000002, + "end": 14686.511020000002, + "title": "19 - Chapter 18" + }, + { + "id": 19, + "start": 14686.511020000002, + "end": 15817.743673, + "title": "20 - Chapter 19" + }, + { + "id": 20, + "start": 15817.743673, + "end": 16996.048979, + "title": "21 - Chapter 20" + }, + { + "id": 21, + "start": 16996.048979, + "end": 18264.816326, + "title": "22 - Chapter 21" + }, + { + "id": 22, + "start": 18264.816326, + "end": 18982.817959, + "title": "23 - Chapter 22" + }, + { + "id": 23, + "start": 18982.817959, + "end": 19797.65551, + "title": "24 - Chapter 23" + }, + { + "id": 24, + "start": 19797.65551, + "end": 20587.31102, + "title": "25 - Chapter 24" + }, + { + "id": 25, + "start": 20587.31102, + "end": 21665.07102, + "title": "26 - Chapter 25" + }, + { + "id": 26, + "start": 21665.07102, + "end": 22661.851427999998, + "title": "27 - Chapter 26" + }, + { + "id": 27, + "start": 22661.851427999998, + "end": 23523.578774999998, + "title": "28 - Chapter 27" + }, + { + "id": 28, + "start": 23523.578774999998, + "end": 24716.042447999997, + "title": "29 - Chapter 28" + }, + { + "id": 29, + "start": 24716.042447999997, + "end": 25997.035100999998, + "title": "30 - Chapter 29" + }, + { + "id": 30, + "start": 25997.035100999998, + "end": 26445.34857, + "title": "31 - Chapter 30" + }, + { + "id": 31, + "start": 26445.34857, + "end": 27665.18857, + "title": "32 - Chapter 31" + }, + { + "id": 32, + "start": 27665.18857, + "end": 28420.440814999998, + "title": "33 - Chapter 32" + }, + { + "id": 33, + "start": 28420.440814999998, + "end": 29306.644897, + "title": "34 - Chapter 33" + }, + { + "id": 34, + "start": 29306.644897, + "end": 30015.764896999997, + "title": "35 - Chapter 34" + }, + { + "id": 35, + "start": 30015.764896999997, + "end": 30856.176325999997, + "title": "36 - Chapter 35" + }, + { + "id": 36, + "start": 30856.176325999997, + "end": 31524.754284999995, + "title": "37 - Chapter 36" + }, + { + "id": 37, + "start": 31524.754284999995, + "end": 32327.262039999994, + "title": "38 - Chapter 37" + }, + { + "id": 38, + "start": 32327.262039999994, + "end": 33160.85550899999, + "title": "39 - Chapter 38" + }, + { + "id": 39, + "start": 33160.85550899999, + "end": 33811.33061099999, + "title": "40 - Chapter 39" + }, + { + "id": 40, + "start": 33811.33061099999, + "end": 34519.77142699999, + "title": "41 - Chapter 40" + }, + { + "id": 41, + "start": 34519.77142699999, + "end": 35385.49550899999, + "title": "42 - Chapter 41" + }, + { + "id": 42, + "start": 35385.49550899999, + "end": 36363.12816199999, + "title": "43 - Chapter 42" + }, + { + "id": 43, + "start": 36363.12816199999, + "end": 36621.662039999996, + "title": "44 - Chapter 43" + } + ], + "missingParts": [], + "ebookFile": null + }, + "libraryFiles": [ + { + "ino": "16253014", + "metadata": { + "filename": "06 - Chapter 5.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/06 - Chapter 5.mp3", + "relPath": "06 - Chapter 5.mp3", + "size": 4666345, + "mtimeMs": 1673790475981, + "ctimeMs": 1673790475981, + "birthtimeMs": 1673790440851 + }, + "addedAt": 1673790447184, + "updatedAt": 1673790447184, + "fileType": "audio" + }, + { + "ino": "16253038", + "metadata": { + "filename": "07 - Chapter 6.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/07 - Chapter 6.mp3", + "relPath": "07 - Chapter 6.mp3", + "size": 8224088, + "mtimeMs": 1673790456810, + "ctimeMs": 1673790456810, + "birthtimeMs": 1673790444848 + }, + "addedAt": 1673790447185, + "updatedAt": 1673790447185, + "fileType": "audio" + }, + { + "ino": "16253028", + "metadata": { + "filename": "08 - Chapter 7.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/08 - Chapter 7.mp3", + "relPath": "08 - Chapter 7.mp3", + "size": 7089609, + "mtimeMs": 1673790464236, + "ctimeMs": 1673790464236, + "birthtimeMs": 1673790442776 + }, + "addedAt": 1673790447185, + "updatedAt": 1673790447185, + "fileType": "audio" + }, + { + "ino": "16253018", + "metadata": { + "filename": "09 - Chapter 8.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/09 - Chapter 8.mp3", + "relPath": "09 - Chapter 8.mp3", + "size": 12512855, + "mtimeMs": 1673790465009, + "ctimeMs": 1673790465009, + "birthtimeMs": 1673790441626 + }, + "addedAt": 1673790447185, + "updatedAt": 1673790447185, + "fileType": "audio" + }, + { + "ino": "16253031", + "metadata": { + "filename": "11 - Chapter 10.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/11 - Chapter 10.mp3", + "relPath": "11 - Chapter 10.mp3", + "size": 3673715, + "mtimeMs": 1673790470281, + "ctimeMs": 1673790470281, + "birthtimeMs": 1673790443099 + }, + "addedAt": 1673790447190, + "updatedAt": 1673790447190, + "fileType": "audio" + }, + { + "ino": "16253019", + "metadata": { + "filename": "12 - Chapter 11.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/12 - Chapter 11.mp3", + "relPath": "12 - Chapter 11.mp3", + "size": 7472411, + "mtimeMs": 1673790473863, + "ctimeMs": 1673790473863, + "birthtimeMs": 1673790441751 + }, + "addedAt": 1673790447190, + "updatedAt": 1673790447190, + "fileType": "audio" + }, + { + "ino": "16253016", + "metadata": { + "filename": "13 - Chapter 12.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/13 - Chapter 12.mp3", + "relPath": "13 - Chapter 12.mp3", + "size": 7523745, + "mtimeMs": 1673790475469, + "ctimeMs": 1673790475469, + "birthtimeMs": 1673790441318 + }, + "addedAt": 1673790447191, + "updatedAt": 1673790447191, + "fileType": "audio" + }, + { + "ino": "16253026", + "metadata": { + "filename": "16 - Chapter 15.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/16 - Chapter 15.mp3", + "relPath": "16 - Chapter 15.mp3", + "size": 6597786, + "mtimeMs": 1673790455948, + "ctimeMs": 1673790455948, + "birthtimeMs": 1673790442616 + }, + "addedAt": 1673790447191, + "updatedAt": 1673790447191, + "fileType": "audio" + }, + { + "ino": "16253029", + "metadata": { + "filename": "17 - Chapter 16.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/17 - Chapter 16.mp3", + "relPath": "17 - Chapter 16.mp3", + "size": 9351344, + "mtimeMs": 1673790445392, + "ctimeMs": 1673790445392, + "birthtimeMs": 1673790442960 + }, + "addedAt": 1673790447191, + "updatedAt": 1673790447191, + "fileType": "audio" + }, + { + "ino": "16253035", + "metadata": { + "filename": "18 - Chapter 17.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/18 - Chapter 17.mp3", + "relPath": "18 - Chapter 17.mp3", + "size": 9528784, + "mtimeMs": 1673790477579, + "ctimeMs": 1673790477579, + "birthtimeMs": 1673790443800 + }, + "addedAt": 1673790447193, + "updatedAt": 1673790447193, + "fileType": "audio" + }, + { + "ino": "16253013", + "metadata": { + "filename": "19 - Chapter 18.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/19 - Chapter 18.mp3", + "relPath": "19 - Chapter 18.mp3", + "size": 12775102, + "mtimeMs": 1673790474221, + "ctimeMs": 1673790474221, + "birthtimeMs": 1673790440792 + }, + "addedAt": 1673790447193, + "updatedAt": 1673790447193, + "fileType": "audio" + }, + { + "ino": "16253043", + "metadata": { + "filename": "20 - Chapter 19.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/20 - Chapter 19.mp3", + "relPath": "20 - Chapter 19.mp3", + "size": 9696127, + "mtimeMs": 1673790474440, + "ctimeMs": 1673790474440, + "birthtimeMs": 1673790446185 + }, + "addedAt": 1673790447194, + "updatedAt": 1673790447194, + "fileType": "audio" + }, + { + "ino": "16253040", + "metadata": { + "filename": "22 - Chapter 21.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/22 - Chapter 21.mp3", + "relPath": "22 - Chapter 21.mp3", + "size": 10836312, + "mtimeMs": 1673790469312, + "ctimeMs": 1673790469312, + "birthtimeMs": 1673790445441 + }, + "addedAt": 1673790447194, + "updatedAt": 1673790447194, + "fileType": "audio" + }, + { + "ino": "16253017", + "metadata": { + "filename": "23 - Chapter 22.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/23 - Chapter 22.mp3", + "relPath": "23 - Chapter 22.mp3", + "size": 6218531, + "mtimeMs": 1673790474110, + "ctimeMs": 1673790474110, + "birthtimeMs": 1673790441447 + }, + "addedAt": 1673790447194, + "updatedAt": 1673790447194, + "fileType": "audio" + }, + { + "ino": "16253041", + "metadata": { + "filename": "24 - Chapter 23.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/24 - Chapter 23.mp3", + "relPath": "24 - Chapter 23.mp3", + "size": 6837605, + "mtimeMs": 1673790474587, + "ctimeMs": 1673790474587, + "birthtimeMs": 1673790445441 + }, + "addedAt": 1673790447194, + "updatedAt": 1673790447194, + "fileType": "audio" + }, + { + "ino": "16253025", + "metadata": { + "filename": "25 - Chapter 24.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/25 - Chapter 24.mp3", + "relPath": "25 - Chapter 24.mp3", + "size": 6772119, + "mtimeMs": 1673790456531, + "ctimeMs": 1673790456531, + "birthtimeMs": 1673790442493 + }, + "addedAt": 1673790447195, + "updatedAt": 1673790447195, + "fileType": "audio" + }, + { + "ino": "16253037", + "metadata": { + "filename": "26 - Chapter 25.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/26 - Chapter 25.mp3", + "relPath": "26 - Chapter 25.mp3", + "size": 8979246, + "mtimeMs": 1673790471489, + "ctimeMs": 1673790471489, + "birthtimeMs": 1673790444259 + }, + "addedAt": 1673790447195, + "updatedAt": 1673790447195, + "fileType": "audio" + }, + { + "ino": "16253022", + "metadata": { + "filename": "27 - Chapter 26.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/27 - Chapter 26.mp3", + "relPath": "27 - Chapter 26.mp3", + "size": 8189531, + "mtimeMs": 1673790471023, + "ctimeMs": 1673790471023, + "birthtimeMs": 1673790442368 + }, + "addedAt": 1673790447195, + "updatedAt": 1673790447195, + "fileType": "audio" + }, + { + "ino": "16253024", + "metadata": { + "filename": "29 - Chapter 28.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/29 - Chapter 28.mp3", + "relPath": "29 - Chapter 28.mp3", + "size": 9804517, + "mtimeMs": 1673790478280, + "ctimeMs": 1673790478280, + "birthtimeMs": 1673790442410 + }, + "addedAt": 1673790447204, + "updatedAt": 1673790447204, + "fileType": "audio" + }, + { + "ino": "16253027", + "metadata": { + "filename": "32 - Chapter 31.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/32 - Chapter 31.mp3", + "relPath": "32 - Chapter 31.mp3", + "size": 9938923, + "mtimeMs": 1673790459895, + "ctimeMs": 1673790459895, + "birthtimeMs": 1673790442735 + }, + "addedAt": 1673790447204, + "updatedAt": 1673790447204, + "fileType": "audio" + }, + { + "ino": "16253034", + "metadata": { + "filename": "33 - Chapter 32.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/33 - Chapter 32.mp3", + "relPath": "33 - Chapter 32.mp3", + "size": 6581784, + "mtimeMs": 1673790451084, + "ctimeMs": 1673790451084, + "birthtimeMs": 1673790443725 + }, + "addedAt": 1673790447204, + "updatedAt": 1673790447204, + "fileType": "audio" + }, + { + "ino": "16253023", + "metadata": { + "filename": "34 - Chapter 33.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/34 - Chapter 33.mp3", + "relPath": "34 - Chapter 33.mp3", + "size": 7476382, + "mtimeMs": 1673790452135, + "ctimeMs": 1673790452135, + "birthtimeMs": 1673790442398 + }, + "addedAt": 1673790447204, + "updatedAt": 1673790447204, + "fileType": "audio" + }, + { + "ino": "16253033", + "metadata": { + "filename": "36 - Chapter 35.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/36 - Chapter 35.mp3", + "relPath": "36 - Chapter 35.mp3", + "size": 7002715, + "mtimeMs": 1673790475254, + "ctimeMs": 1673790475254, + "birthtimeMs": 1673790443502 + }, + "addedAt": 1673790447205, + "updatedAt": 1673790447205, + "fileType": "audio" + }, + { + "ino": "16253036", + "metadata": { + "filename": "37 - Chapter 36.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/37 - Chapter 36.mp3", + "relPath": "37 - Chapter 36.mp3", + "size": 5707641, + "mtimeMs": 1673790473041, + "ctimeMs": 1673790473041, + "birthtimeMs": 1673790444045 + }, + "addedAt": 1673790447205, + "updatedAt": 1673790447205, + "fileType": "audio" + }, + { + "ino": "16253039", + "metadata": { + "filename": "38 - Chapter 37.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/38 - Chapter 37.mp3", + "relPath": "38 - Chapter 37.mp3", + "size": 6747923, + "mtimeMs": 1673790446256, + "ctimeMs": 1673790446256, + "birthtimeMs": 1673790445397 + }, + "addedAt": 1673790447205, + "updatedAt": 1673790447205, + "fileType": "audio" + }, + { + "ino": "16253044", + "metadata": { + "filename": "39 - Chapter 38.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/39 - Chapter 38.mp3", + "relPath": "39 - Chapter 38.mp3", + "size": 6858967, + "mtimeMs": 1673790467713, + "ctimeMs": 1673790467713, + "birthtimeMs": 1673790446256 + }, + "addedAt": 1673790447205, + "updatedAt": 1673790447205, + "fileType": "audio" + }, + { + "ino": "16253021", + "metadata": { + "filename": "40 - Chapter 39.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/40 - Chapter 39.mp3", + "relPath": "40 - Chapter 39.mp3", + "size": 5779057, + "mtimeMs": 1673790472327, + "ctimeMs": 1673790472327, + "birthtimeMs": 1673790442112 + }, + "addedAt": 1673790447205, + "updatedAt": 1673790447205, + "fileType": "audio" + }, + { + "ino": "16253032", + "metadata": { + "filename": "41 - Chapter 40.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/41 - Chapter 40.mp3", + "relPath": "41 - Chapter 40.mp3", + "size": 6032349, + "mtimeMs": 1673790458185, + "ctimeMs": 1673790458185, + "birthtimeMs": 1673790443266 + }, + "addedAt": 1673790447205, + "updatedAt": 1673790447205, + "fileType": "audio" + }, + { + "ino": "16253030", + "metadata": { + "filename": "42 - Chapter 41.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/42 - Chapter 41.mp3", + "relPath": "42 - Chapter 41.mp3", + "size": 7225563, + "mtimeMs": 1673790459918, + "ctimeMs": 1673790459918, + "birthtimeMs": 1673790442979 + }, + "addedAt": 1673790447205, + "updatedAt": 1673790447205, + "fileType": "audio" + }, + { + "ino": "16253042", + "metadata": { + "filename": "43 - Chapter 42.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/43 - Chapter 42.mp3", + "relPath": "43 - Chapter 42.mp3", + "size": 8198821, + "mtimeMs": 1673790474885, + "ctimeMs": 1673790474885, + "birthtimeMs": 1673790445522 + }, + "addedAt": 1673790447206, + "updatedAt": 1673790447206, + "fileType": "audio" + }, + { + "ino": "16253020", + "metadata": { + "filename": "44 - Chapter 43.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/44 - Chapter 43.mp3", + "relPath": "44 - Chapter 43.mp3", + "size": 2210819, + "mtimeMs": 1673790479068, + "ctimeMs": 1673790479068, + "birthtimeMs": 1673790441858 + }, + "addedAt": 1673790447206, + "updatedAt": 1673790447206, + "fileType": "audio" + }, + { + "ino": "16253066", + "metadata": { + "filename": "01 - Introductions.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/01 - Introductions.mp3", + "relPath": "01 - Introductions.mp3", + "size": 750433, + "mtimeMs": 1673790458622, + "ctimeMs": 1673790458622, + "birthtimeMs": 1673790457795 + }, + "addedAt": 1673790459852, + "updatedAt": 1673790459852, + "fileType": "audio" + }, + { + "ino": "16253068", + "metadata": { + "filename": "02 - Chapter 1.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/02 - Chapter 1.mp3", + "relPath": "02 - Chapter 1.mp3", + "size": 3749677, + "mtimeMs": 1673790464478, + "ctimeMs": 1673790464478, + "birthtimeMs": 1673790458622 + }, + "addedAt": 1673790459853, + "updatedAt": 1673790459853, + "fileType": "audio" + }, + { + "ino": "16253046", + "metadata": { + "filename": "04 - Chapter 3.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/04 - Chapter 3.mp3", + "relPath": "04 - Chapter 3.mp3", + "size": 4556353, + "mtimeMs": 1673790471829, + "ctimeMs": 1673790471829, + "birthtimeMs": 1673790448580 + }, + "addedAt": 1673790459853, + "updatedAt": 1673790459853, + "fileType": "audio" + }, + { + "ino": "16253055", + "metadata": { + "filename": "10 - Chapter 9.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/10 - Chapter 9.mp3", + "relPath": "10 - Chapter 9.mp3", + "size": 4258990, + "mtimeMs": 1673790472022, + "ctimeMs": 1673790472022, + "birthtimeMs": 1673790455911 + }, + "addedAt": 1673790459854, + "updatedAt": 1673790459854, + "fileType": "audio" + }, + { + "ino": "16253050", + "metadata": { + "filename": "14 - Chapter 13.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/14 - Chapter 13.mp3", + "relPath": "14 - Chapter 13.mp3", + "size": 5465303, + "mtimeMs": 1673790459498, + "ctimeMs": 1673790459498, + "birthtimeMs": 1673790452390 + }, + "addedAt": 1673790459863, + "updatedAt": 1673790459863, + "fileType": "audio" + }, + { + "ino": "16253054", + "metadata": { + "filename": "15 - Chapter 14.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/15 - Chapter 14.mp3", + "relPath": "15 - Chapter 14.mp3", + "size": 4392290, + "mtimeMs": 1673790460251, + "ctimeMs": 1673790460251, + "birthtimeMs": 1673790454343 + }, + "addedAt": 1673790459864, + "updatedAt": 1673790459864, + "fileType": "audio" + }, + { + "ino": "16253045", + "metadata": { + "filename": "21 - Chapter 20.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/21 - Chapter 20.mp3", + "relPath": "21 - Chapter 20.mp3", + "size": 10052755, + "mtimeMs": 1673790458782, + "ctimeMs": 1673790458782, + "birthtimeMs": 1673790447421 + }, + "addedAt": 1673790459877, + "updatedAt": 1673790459877, + "fileType": "audio" + }, + { + "ino": "16253048", + "metadata": { + "filename": "30 - Chapter 29.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/30 - Chapter 29.mp3", + "relPath": "30 - Chapter 29.mp3", + "size": 10629556, + "mtimeMs": 1673790479073, + "ctimeMs": 1673790479073, + "birthtimeMs": 1673790449748 + }, + "addedAt": 1673790459881, + "updatedAt": 1673790459881, + "fileType": "audio" + }, + { + "ino": "16253049", + "metadata": { + "filename": "31 - Chapter 30.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/31 - Chapter 30.mp3", + "relPath": "31 - Chapter 30.mp3", + "size": 3607656, + "mtimeMs": 1673790457036, + "ctimeMs": 1673790457036, + "birthtimeMs": 1673790450065 + }, + "addedAt": 1673790459881, + "updatedAt": 1673790459881, + "fileType": "audio" + }, + { + "ino": "16253047", + "metadata": { + "filename": "35 - Chapter 34.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/35 - Chapter 34.mp3", + "relPath": "35 - Chapter 34.mp3", + "size": 5959761, + "mtimeMs": 1673790450811, + "ctimeMs": 1673790450811, + "birthtimeMs": 1673790449233 + }, + "addedAt": 1673790459883, + "updatedAt": 1673790459883, + "fileType": "audio" + }, + { + "ino": "16253089", + "metadata": { + "filename": "03 - Chapter 2.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/03 - Chapter 2.mp3", + "relPath": "03 - Chapter 2.mp3", + "size": 6323152, + "mtimeMs": 1673790471828, + "ctimeMs": 1673790471828, + "birthtimeMs": 1673790464478 + }, + "addedAt": 1673790474855, + "updatedAt": 1673790474855, + "fileType": "audio" + }, + { + "ino": "16253088", + "metadata": { + "filename": "05 - Chapter 4.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/05 - Chapter 4.mp3", + "relPath": "05 - Chapter 4.mp3", + "size": 3924983, + "mtimeMs": 1673790468582, + "ctimeMs": 1673790468582, + "birthtimeMs": 1673790464373 + }, + "addedAt": 1673790474856, + "updatedAt": 1673790474856, + "fileType": "audio" + }, + { + "ino": "16253090", + "metadata": { + "filename": "28 - Chapter 27.mp3", + "ext": ".mp3", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/28 - Chapter 27.mp3", + "relPath": "28 - Chapter 27.mp3", + "size": 7366113, + "mtimeMs": 1673790470795, + "ctimeMs": 1673790470795, + "birthtimeMs": 1673790464863 + }, + "addedAt": 1673790474886, + "updatedAt": 1673790474887, + "fileType": "audio" + }, + { + "ino": "16253127", + "metadata": { + "filename": "Cover.jpg", + "ext": ".jpg", + "path": "/demo/Adventures of Huckleberry Finn- A Signature Performance by Elijah Wood/Cover.jpg", + "relPath": "Cover.jpg", + "size": 60458, + "mtimeMs": 1673790479230, + "ctimeMs": 1673790479230, + "birthtimeMs": 1673790479068 + }, + "addedAt": 1673790499111, + "updatedAt": 1673790499111, + "fileType": "image" + } + ], + "rssFeed": null + }, + { + "id": "li_hrd36j38d806rp5xbg", + "ino": "16253056", + "libraryId": "lib_kppofuog4odorydwgg", + "folderId": "fol_u7g1p5mz96d1hms0a2", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k", + "relPath": "Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k", + "isFile": false, + "mtimeMs": 1673790487133, + "ctimeMs": 1673790487133, + "birthtimeMs": 1673790456066, + "addedAt": 1673790479073, + "updatedAt": 1673790672123, + "lastScan": 1673790503344, + "scanVersion": "2.2.12", + "isMissing": false, + "isInvalid": false, + "mediaType": "book", + "media": { + "libraryItemId": "li_hrd36j38d806rp5xbg", + "metadata": { + "title": "The Alchemist", + "subtitle": "A Fable About Following Your Dream", + "authors": [ + { + "id": "aut_md4ltiajdjsh9cmfyx", + "name": "Paulo Coelho" + } + ], + "narrators": [ + "Jeremy Irons" + ], + "series": [], + "genres": [ + "Literature & Fiction" + ], + "publishedYear": "2004", + "publishedDate": null, + "publisher": "HarperAudio", + "description": "Paulo Coelho's enchanting novel has inspired a devoted following around the world. This story, dazzling in its simplicity and wisdom, is about an Andalusian shepherd boy named Santiago who travels from his homeland in Spain to the Egyptian desert in search of treasure buried in the Pyramids. Along the way he meets a Gypsy woman, a man who calls himself king, and an Alchemist, all of whom point Santiago in the direction of his quest. No one knows what the treasure is, or if Santiago will be able to surmount the obstacles along the way But what starts out as a journey to find worldly goods turns into a meditation on the treasures found within. Lush, evocative, and deeply humane, the story of Santiago is art eternal testament to the transforming power of our dreams and the importance of listening to our hearts.", + "isbn": null, + "asin": "B002V0Q4LG", + "language": "English", + "explicit": false + }, + "coverPath": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist.jpg", + "tags": [ + "Genre Fiction", + "Literary Fiction", + "Metaphysical & Visionary" + ], + "audioFiles": [ + { + "index": 1, + "ino": "16253075", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 01 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 01 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 01 of 47.mp3", + "size": 1000011, + "mtimeMs": 1673790487987, + "ctimeMs": 1673790487987, + "birthtimeMs": 1673790460610 + }, + "addedAt": 1673790480290, + "updatedAt": 1673790480290, + "trackNumFromMeta": 1, + "discNumFromMeta": null, + "trackNumFromFilename": 1, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 124.489375, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "01 of 47", + "tagTrack": "01", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 2, + "ino": "16253077", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 02 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 02 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 02 of 47.mp3", + "size": 1302823, + "mtimeMs": 1673790489621, + "ctimeMs": 1673790489621, + "birthtimeMs": 1673790461387 + }, + "addedAt": 1673790480288, + "updatedAt": 1673790480288, + "trackNumFromMeta": 2, + "discNumFromMeta": null, + "trackNumFromFilename": 2, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 162.340875, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "02 of 47", + "tagTrack": "02", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 3, + "ino": "16253098", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 03 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 03 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 03 of 47.mp3", + "size": 905552, + "mtimeMs": 1673790489451, + "ctimeMs": 1673790489451, + "birthtimeMs": 1673790466787 + }, + "addedAt": 1673790480347, + "updatedAt": 1673790480347, + "trackNumFromMeta": 3, + "discNumFromMeta": null, + "trackNumFromFilename": 3, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 112.682, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "03 of 47", + "tagTrack": "03", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 4, + "ino": "16253080", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 04 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 04 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 04 of 47.mp3", + "size": 1722245, + "mtimeMs": 1673790473221, + "ctimeMs": 1673790473221, + "birthtimeMs": 1673790461642 + }, + "addedAt": 1673790480286, + "updatedAt": 1673790480286, + "trackNumFromMeta": 4, + "discNumFromMeta": null, + "trackNumFromFilename": 4, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 214.768625, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "04 of 47", + "tagTrack": "04", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 5, + "ino": "16253134", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 05 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 05 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 05 of 47.mp3", + "size": 794584, + "mtimeMs": 1673790485960, + "ctimeMs": 1673790485960, + "birthtimeMs": 1673790485544 + }, + "addedAt": 1673790498215, + "updatedAt": 1673790498215, + "trackNumFromMeta": 5, + "discNumFromMeta": null, + "trackNumFromFilename": 5, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 98.811, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "05 of 47", + "tagTrack": "05", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 6, + "ino": "16253114", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 06 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 06 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 06 of 47.mp3", + "size": 1053719, + "mtimeMs": 1673790483870, + "ctimeMs": 1673790483870, + "birthtimeMs": 1673790475391 + }, + "addedAt": 1673790480312, + "updatedAt": 1673790480312, + "trackNumFromMeta": 6, + "discNumFromMeta": null, + "trackNumFromFilename": 6, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 131.202875, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "06 of 47", + "tagTrack": "06", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 7, + "ino": "16253074", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 07 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 07 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 07 of 47.mp3", + "size": 6881115, + "mtimeMs": 1673790492013, + "ctimeMs": 1673790492013, + "birthtimeMs": 1673790459884 + }, + "addedAt": 1673790481275, + "updatedAt": 1673790481275, + "trackNumFromMeta": 7, + "discNumFromMeta": null, + "trackNumFromFilename": 7, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 859.627375, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "07 of 47", + "tagTrack": "07", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 8, + "ino": "16253065", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 08 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 08 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 08 of 47.mp3", + "size": 3369840, + "mtimeMs": 1673790490516, + "ctimeMs": 1673790490516, + "birthtimeMs": 1673790457728 + }, + "addedAt": 1673790480675, + "updatedAt": 1673790480675, + "trackNumFromMeta": 8, + "discNumFromMeta": null, + "trackNumFromFilename": 8, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 420.718, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "08 of 47", + "tagTrack": "08", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 9, + "ino": "16253078", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 09 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 09 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 09 of 47.mp3", + "size": 5687215, + "mtimeMs": 1673790488421, + "ctimeMs": 1673790488421, + "birthtimeMs": 1673790461421 + }, + "addedAt": 1673790480691, + "updatedAt": 1673790480691, + "trackNumFromMeta": 9, + "discNumFromMeta": null, + "trackNumFromFilename": 9, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 710.389875, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "09 of 47", + "tagTrack": "09", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 10, + "ino": "16253139", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 10 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 10 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 10 of 47.mp3", + "size": 691557, + "mtimeMs": 1673790488495, + "ctimeMs": 1673790488495, + "birthtimeMs": 1673790487133 + }, + "addedAt": 1673790498238, + "updatedAt": 1673790498238, + "trackNumFromMeta": 10, + "discNumFromMeta": null, + "trackNumFromFilename": 10, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 85.932625, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "10 of 47", + "tagTrack": "10", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 11, + "ino": "16253063", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 11 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 11 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 11 of 47.mp3", + "size": 6469216, + "mtimeMs": 1673790490111, + "ctimeMs": 1673790490111, + "birthtimeMs": 1673790457516 + }, + "addedAt": 1673790480701, + "updatedAt": 1673790480701, + "trackNumFromMeta": 11, + "discNumFromMeta": null, + "trackNumFromFilename": 11, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 808.14, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "11 of 47", + "tagTrack": "11", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 12, + "ino": "16253073", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 12 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 12 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 12 of 47.mp3", + "size": 1336677, + "mtimeMs": 1673790488363, + "ctimeMs": 1673790488363, + "birthtimeMs": 1673790459428 + }, + "addedAt": 1673790480686, + "updatedAt": 1673790480686, + "trackNumFromMeta": 12, + "discNumFromMeta": null, + "trackNumFromFilename": 12, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 166.572625, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "12 of 47", + "tagTrack": "12", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 13, + "ino": "16253110", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 13 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 13 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 13 of 47.mp3", + "size": 822379, + "mtimeMs": 1673790485704, + "ctimeMs": 1673790485704, + "birthtimeMs": 1673790474130 + }, + "addedAt": 1673790480992, + "updatedAt": 1673790480992, + "trackNumFromMeta": 13, + "discNumFromMeta": null, + "trackNumFromFilename": 13, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 102.285375, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "13 of 47", + "tagTrack": "13", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 14, + "ino": "16253084", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 14 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 14 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 14 of 47.mp3", + "size": 1664357, + "mtimeMs": 1673790482062, + "ctimeMs": 1673790482062, + "birthtimeMs": 1673790461874 + }, + "addedAt": 1673790481071, + "updatedAt": 1673790481071, + "trackNumFromMeta": 14, + "discNumFromMeta": null, + "trackNumFromFilename": 14, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 207.532625, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "14 of 47", + "tagTrack": "14", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 15, + "ino": "16253067", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 15 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 15 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 15 of 47.mp3", + "size": 3008514, + "mtimeMs": 1673790491170, + "ctimeMs": 1673790491170, + "birthtimeMs": 1673790457799 + }, + "addedAt": 1673790480863, + "updatedAt": 1673790480863, + "trackNumFromMeta": 15, + "discNumFromMeta": null, + "trackNumFromFilename": 15, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 375.55225, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "15 of 47", + "tagTrack": "15", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 16, + "ino": "16253085", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 16 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 16 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 16 of 47.mp3", + "size": 2294013, + "mtimeMs": 1673790495952, + "ctimeMs": 1673790495952, + "birthtimeMs": 1673790462415 + }, + "addedAt": 1673790481307, + "updatedAt": 1673790481307, + "trackNumFromMeta": 16, + "discNumFromMeta": null, + "trackNumFromFilename": 16, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 286.239625, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "16 of 47", + "tagTrack": "16", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 17, + "ino": "16253112", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 17 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 17 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 17 of 47.mp3", + "size": 599188, + "mtimeMs": 1673790475705, + "ctimeMs": 1673790475705, + "birthtimeMs": 1673790474868 + }, + "addedAt": 1673790481174, + "updatedAt": 1673790481174, + "trackNumFromMeta": 17, + "discNumFromMeta": null, + "trackNumFromFilename": 17, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 74.3865, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "17 of 47", + "tagTrack": "17", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 18, + "ino": "16253083", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 18 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 18 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 18 of 47.mp3", + "size": 1002519, + "mtimeMs": 1673790485869, + "ctimeMs": 1673790485869, + "birthtimeMs": 1673790461833 + }, + "addedAt": 1673790481599, + "updatedAt": 1673790481599, + "trackNumFromMeta": 18, + "discNumFromMeta": null, + "trackNumFromFilename": 18, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 124.802875, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "18 of 47", + "tagTrack": "18", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 19, + "ino": "16253057", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 19 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 19 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 19 of 47.mp3", + "size": 3059923, + "mtimeMs": 1673790488229, + "ctimeMs": 1673790488229, + "birthtimeMs": 1673790456066 + }, + "addedAt": 1673790481619, + "updatedAt": 1673790481619, + "trackNumFromMeta": 19, + "discNumFromMeta": null, + "trackNumFromFilename": 19, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 381.978375, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "19 of 47", + "tagTrack": "19", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 20, + "ino": "16253058", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 20 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 20 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 20 of 47.mp3", + "size": 1578258, + "mtimeMs": 1673790482484, + "ctimeMs": 1673790482484, + "birthtimeMs": 1673790456688 + }, + "addedAt": 1673790481672, + "updatedAt": 1673790481672, + "trackNumFromMeta": 20, + "discNumFromMeta": null, + "trackNumFromFilename": 20, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 196.77025, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "20 of 47", + "tagTrack": "20", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 21, + "ino": "16253100", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 21 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 21 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 21 of 47.mp3", + "size": 1869784, + "mtimeMs": 1673790481998, + "ctimeMs": 1673790481998, + "birthtimeMs": 1673790467394 + }, + "addedAt": 1673790481216, + "updatedAt": 1673790481216, + "trackNumFromMeta": 21, + "discNumFromMeta": null, + "trackNumFromFilename": 21, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 233.211, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "21 of 47", + "tagTrack": "21", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 22, + "ino": "16253061", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 22 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 22 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 22 of 47.mp3", + "size": 6139655, + "mtimeMs": 1673790491240, + "ctimeMs": 1673790491240, + "birthtimeMs": 1673790457413 + }, + "addedAt": 1673790481627, + "updatedAt": 1673790481627, + "trackNumFromMeta": 22, + "discNumFromMeta": null, + "trackNumFromFilename": 22, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 766.944875, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "22 of 47", + "tagTrack": "22", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 23, + "ino": "16253070", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 23 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 23 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 23 of 47.mp3", + "size": 1736455, + "mtimeMs": 1673790485620, + "ctimeMs": 1673790485620, + "birthtimeMs": 1673790458978 + }, + "addedAt": 1673790481619, + "updatedAt": 1673790481619, + "trackNumFromMeta": 23, + "discNumFromMeta": null, + "trackNumFromFilename": 23, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 216.544875, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "23 of 47", + "tagTrack": "23", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 24, + "ino": "16253117", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 24 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 24 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 24 of 47.mp3", + "size": 507655, + "mtimeMs": 1673790476796, + "ctimeMs": 1673790476796, + "birthtimeMs": 1673790475960 + }, + "addedAt": 1673790481959, + "updatedAt": 1673790481959, + "trackNumFromMeta": 24, + "discNumFromMeta": null, + "trackNumFromFilename": 24, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 62.944875, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "24 of 47", + "tagTrack": "24", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 25, + "ino": "16253136", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 25 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 25 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 25 of 47.mp3", + "size": 722904, + "mtimeMs": 1673790488075, + "ctimeMs": 1673790488075, + "birthtimeMs": 1673790485857 + }, + "addedAt": 1673790498266, + "updatedAt": 1673790498266, + "trackNumFromMeta": 25, + "discNumFromMeta": null, + "trackNumFromFilename": 25, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 89.851, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "25 of 47", + "tagTrack": "25", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 26, + "ino": "16253109", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 26 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 26 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 26 of 47.mp3", + "size": 895312, + "mtimeMs": 1673790493116, + "ctimeMs": 1673790493116, + "birthtimeMs": 1673790473757 + }, + "addedAt": 1673790482570, + "updatedAt": 1673790482570, + "trackNumFromMeta": 26, + "discNumFromMeta": null, + "trackNumFromFilename": 26, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 111.402, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "26 of 47", + "tagTrack": "26", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 27, + "ino": "16253115", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 27 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 27 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 27 of 47.mp3", + "size": 525419, + "mtimeMs": 1673790476708, + "ctimeMs": 1673790476708, + "birthtimeMs": 1673790475477 + }, + "addedAt": 1673790482363, + "updatedAt": 1673790482363, + "trackNumFromMeta": 27, + "discNumFromMeta": null, + "trackNumFromFilename": 27, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 65.165375, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "27 of 47", + "tagTrack": "27", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 28, + "ino": "16253072", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 28 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 28 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 28 of 47.mp3", + "size": 973262, + "mtimeMs": 1673790488702, + "ctimeMs": 1673790488702, + "birthtimeMs": 1673790459408 + }, + "addedAt": 1673790482383, + "updatedAt": 1673790482383, + "trackNumFromMeta": 28, + "discNumFromMeta": null, + "trackNumFromFilename": 28, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 121.14575, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "28 of 47", + "tagTrack": "28", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 29, + "ino": "16253059", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 29 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 29 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 29 of 47.mp3", + "size": 12292850, + "mtimeMs": 1673790488525, + "ctimeMs": 1673790488525, + "birthtimeMs": 1673790456924 + }, + "addedAt": 1673790482934, + "updatedAt": 1673790482934, + "trackNumFromMeta": 29, + "discNumFromMeta": null, + "trackNumFromFilename": 29, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1536.09425, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "29 of 47", + "tagTrack": "29", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 30, + "ino": "16253062", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 30 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 30 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 30 of 47.mp3", + "size": 5829739, + "mtimeMs": 1673790492346, + "ctimeMs": 1673790492346, + "birthtimeMs": 1673790457431 + }, + "addedAt": 1673790483653, + "updatedAt": 1673790483653, + "trackNumFromMeta": 30, + "discNumFromMeta": null, + "trackNumFromFilename": 30, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 728.205375, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "30 of 47", + "tagTrack": "30", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 31, + "ino": "16253128", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 31 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 31 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 31 of 47.mp3", + "size": 958215, + "mtimeMs": 1673790488823, + "ctimeMs": 1673790488823, + "birthtimeMs": 1673790479919 + }, + "addedAt": 1673790498260, + "updatedAt": 1673790498260, + "trackNumFromMeta": 31, + "discNumFromMeta": null, + "trackNumFromFilename": 31, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 119.264875, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "31 of 47", + "tagTrack": "31", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 32, + "ino": "16253086", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 32 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 32 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 32 of 47.mp3", + "size": 1984932, + "mtimeMs": 1673790488503, + "ctimeMs": 1673790488503, + "birthtimeMs": 1673790462978 + }, + "addedAt": 1673790483497, + "updatedAt": 1673790483497, + "trackNumFromMeta": 32, + "discNumFromMeta": null, + "trackNumFromFilename": 32, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 247.6045, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "32 of 47", + "tagTrack": "32", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 33, + "ino": "16253095", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 33 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 33 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 33 of 47.mp3", + "size": 3575058, + "mtimeMs": 1673790487604, + "ctimeMs": 1673790487604, + "birthtimeMs": 1673790465859 + }, + "addedAt": 1673790482570, + "updatedAt": 1673790482570, + "trackNumFromMeta": 33, + "discNumFromMeta": null, + "trackNumFromFilename": 33, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 446.37025, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "33 of 47", + "tagTrack": "33", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 34, + "ino": "16253069", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 34 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 34 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 34 of 47.mp3", + "size": 1645340, + "mtimeMs": 1673790485851, + "ctimeMs": 1673790485851, + "birthtimeMs": 1673790458761 + }, + "addedAt": 1673790482569, + "updatedAt": 1673790482569, + "trackNumFromMeta": 34, + "discNumFromMeta": null, + "trackNumFromFilename": 34, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 205.1555, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "34 of 47", + "tagTrack": "34", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 35, + "ino": "16253093", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 35 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 35 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 35 of 47.mp3", + "size": 3093987, + "mtimeMs": 1673790488528, + "ctimeMs": 1673790488528, + "birthtimeMs": 1673790465204 + }, + "addedAt": 1673790482944, + "updatedAt": 1673790482944, + "trackNumFromMeta": 35, + "discNumFromMeta": null, + "trackNumFromFilename": 35, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 386.236375, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "35 of 47", + "tagTrack": "35", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 36, + "ino": "16253071", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 36 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 36 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 36 of 47.mp3", + "size": 3828132, + "mtimeMs": 1673790472127, + "ctimeMs": 1673790472127, + "birthtimeMs": 1673790459161 + }, + "addedAt": 1673790482933, + "updatedAt": 1673790482933, + "trackNumFromMeta": 36, + "discNumFromMeta": null, + "trackNumFromFilename": 36, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 478.0045, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "36 of 47", + "tagTrack": "36", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 37, + "ino": "16253064", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 37 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 37 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 37 of 47.mp3", + "size": 3945579, + "mtimeMs": 1673790491474, + "ctimeMs": 1673790491474, + "birthtimeMs": 1673790457587 + }, + "addedAt": 1673790482787, + "updatedAt": 1673790482787, + "trackNumFromMeta": 37, + "discNumFromMeta": null, + "trackNumFromFilename": 37, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 492.685375, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "37 of 47", + "tagTrack": "37", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 38, + "ino": "16253120", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 38 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 38 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 38 of 47.mp3", + "size": 405255, + "mtimeMs": 1673790478101, + "ctimeMs": 1673790478101, + "birthtimeMs": 1673790477358 + }, + "addedAt": 1673790482933, + "updatedAt": 1673790482933, + "trackNumFromMeta": 38, + "discNumFromMeta": null, + "trackNumFromFilename": 38, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 50.144875, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "38 of 47", + "tagTrack": "38", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 39, + "ino": "16253091", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 39 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 39 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 39 of 47.mp3", + "size": 2215019, + "mtimeMs": 1673790491242, + "ctimeMs": 1673790491242, + "birthtimeMs": 1673790464869 + }, + "addedAt": 1673790483265, + "updatedAt": 1673790483265, + "trackNumFromMeta": 39, + "discNumFromMeta": null, + "trackNumFromFilename": 39, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 276.365375, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "39 of 47", + "tagTrack": "39", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 40, + "ino": "16253081", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 40 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 40 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 40 of 47.mp3", + "size": 601487, + "mtimeMs": 1673790488503, + "ctimeMs": 1673790488503, + "birthtimeMs": 1673790461679 + }, + "addedAt": 1673790483179, + "updatedAt": 1673790483179, + "trackNumFromMeta": 40, + "discNumFromMeta": null, + "trackNumFromFilename": 40, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 74.673875, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "40 of 47", + "tagTrack": "40", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 41, + "ino": "16253121", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 41 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 41 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 41 of 47.mp3", + "size": 261686, + "mtimeMs": 1673790478137, + "ctimeMs": 1673790478137, + "birthtimeMs": 1673790478095 + }, + "addedAt": 1673790483150, + "updatedAt": 1673790483150, + "trackNumFromMeta": 41, + "discNumFromMeta": null, + "trackNumFromFilename": 41, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 32.19875, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "41 of 47", + "tagTrack": "41", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 42, + "ino": "16253060", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 42 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 42 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 42 of 47.mp3", + "size": 6888638, + "mtimeMs": 1673790494875, + "ctimeMs": 1673790494875, + "birthtimeMs": 1673790457063 + }, + "addedAt": 1673790483006, + "updatedAt": 1673790483006, + "trackNumFromMeta": 42, + "discNumFromMeta": null, + "trackNumFromFilename": 42, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 860.56775, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "42 of 47", + "tagTrack": "42", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 43, + "ino": "16253118", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 43 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 43 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 43 of 47.mp3", + "size": 481533, + "mtimeMs": 1673790478057, + "ctimeMs": 1673790478057, + "birthtimeMs": 1673790476708 + }, + "addedAt": 1673790483046, + "updatedAt": 1673790483046, + "trackNumFromMeta": 43, + "discNumFromMeta": null, + "trackNumFromFilename": 43, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 59.679625, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "43 of 47", + "tagTrack": "43", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 44, + "ino": "16253099", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 44 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 44 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 44 of 47.mp3", + "size": 1803956, + "mtimeMs": 1673790489176, + "ctimeMs": 1673790489176, + "birthtimeMs": 1673790467171 + }, + "addedAt": 1673790483297, + "updatedAt": 1673790483297, + "trackNumFromMeta": 44, + "discNumFromMeta": null, + "trackNumFromFilename": 44, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 224.9825, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "44 of 47", + "tagTrack": "44", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 45, + "ino": "16253076", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 45 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 45 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 45 of 47.mp3", + "size": 2382411, + "mtimeMs": 1673790488277, + "ctimeMs": 1673790488277, + "birthtimeMs": 1673790460686 + }, + "addedAt": 1673790483354, + "updatedAt": 1673790483354, + "trackNumFromMeta": 45, + "discNumFromMeta": null, + "trackNumFromFilename": 45, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 297.289375, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "45 of 47", + "tagTrack": "45", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 46, + "ino": "16253108", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 46 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 46 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 46 of 47.mp3", + "size": 3151874, + "mtimeMs": 1673790490813, + "ctimeMs": 1673790490813, + "birthtimeMs": 1673790473333 + }, + "addedAt": 1673790483554, + "updatedAt": 1673790483554, + "trackNumFromMeta": 46, + "discNumFromMeta": null, + "trackNumFromFilename": 46, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 393.47225, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "46 of 47", + "tagTrack": "46", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 47, + "ino": "16253082", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 47 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 47 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 47 of 47.mp3", + "size": 1847424, + "mtimeMs": 1673790482547, + "ctimeMs": 1673790482547, + "birthtimeMs": 1673790461689 + }, + "addedAt": 1673790483007, + "updatedAt": 1673790483007, + "trackNumFromMeta": 47, + "discNumFromMeta": null, + "trackNumFromFilename": 47, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 230.416, + "bitRate": 64000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagAlbum": "The Alchemist", + "tagArtist": "Paulo Coelho", + "tagGenre": "Religion & Spirituality", + "tagTitle": "47 of 47", + "tagTrack": "47", + "tagDate": "2001", + "tagPublisher": "Harper Audio", + "tagComment": "Read by Jeremy Irons; Unabridged; Tag by A_S", + "tagEncodedBy": "A_S" + }, + "mimeType": "audio/mpeg" + } + ], + "chapters": [ + { + "id": 0, + "start": 0, + "end": 124.489375, + "title": "Paulo Coelho - The Alchemist - 01 of 47" + }, + { + "id": 1, + "start": 124.489375, + "end": 286.83025, + "title": "Paulo Coelho - The Alchemist - 02 of 47" + }, + { + "id": 2, + "start": 286.83025, + "end": 399.51225, + "title": "Paulo Coelho - The Alchemist - 03 of 47" + }, + { + "id": 3, + "start": 399.51225, + "end": 614.2808749999999, + "title": "Paulo Coelho - The Alchemist - 04 of 47" + }, + { + "id": 4, + "start": 614.2808749999999, + "end": 713.091875, + "title": "Paulo Coelho - The Alchemist - 05 of 47" + }, + { + "id": 5, + "start": 713.091875, + "end": 844.29475, + "title": "Paulo Coelho - The Alchemist - 06 of 47" + }, + { + "id": 6, + "start": 844.29475, + "end": 1703.922125, + "title": "Paulo Coelho - The Alchemist - 07 of 47" + }, + { + "id": 7, + "start": 1703.922125, + "end": 2124.640125, + "title": "Paulo Coelho - The Alchemist - 08 of 47" + }, + { + "id": 8, + "start": 2124.640125, + "end": 2835.0299999999997, + "title": "Paulo Coelho - The Alchemist - 09 of 47" + }, + { + "id": 9, + "start": 2835.0299999999997, + "end": 2920.9626249999997, + "title": "Paulo Coelho - The Alchemist - 10 of 47" + }, + { + "id": 10, + "start": 2920.9626249999997, + "end": 3729.1026249999995, + "title": "Paulo Coelho - The Alchemist - 11 of 47" + }, + { + "id": 11, + "start": 3729.1026249999995, + "end": 3895.6752499999993, + "title": "Paulo Coelho - The Alchemist - 12 of 47" + }, + { + "id": 12, + "start": 3895.6752499999993, + "end": 3997.9606249999993, + "title": "Paulo Coelho - The Alchemist - 13 of 47" + }, + { + "id": 13, + "start": 3997.9606249999993, + "end": 4205.4932499999995, + "title": "Paulo Coelho - The Alchemist - 14 of 47" + }, + { + "id": 14, + "start": 4205.4932499999995, + "end": 4581.045499999999, + "title": "Paulo Coelho - The Alchemist - 15 of 47" + }, + { + "id": 15, + "start": 4581.045499999999, + "end": 4867.285124999999, + "title": "Paulo Coelho - The Alchemist - 16 of 47" + }, + { + "id": 16, + "start": 4867.285124999999, + "end": 4941.671624999999, + "title": "Paulo Coelho - The Alchemist - 17 of 47" + }, + { + "id": 17, + "start": 4941.671624999999, + "end": 5066.474499999999, + "title": "Paulo Coelho - The Alchemist - 18 of 47" + }, + { + "id": 18, + "start": 5066.474499999999, + "end": 5448.452874999999, + "title": "Paulo Coelho - The Alchemist - 19 of 47" + }, + { + "id": 19, + "start": 5448.452874999999, + "end": 5645.223124999999, + "title": "Paulo Coelho - The Alchemist - 20 of 47" + }, + { + "id": 20, + "start": 5645.223124999999, + "end": 5878.434124999999, + "title": "Paulo Coelho - The Alchemist - 21 of 47" + }, + { + "id": 21, + "start": 5878.434124999999, + "end": 6645.378999999999, + "title": "Paulo Coelho - The Alchemist - 22 of 47" + }, + { + "id": 22, + "start": 6645.378999999999, + "end": 6861.923874999999, + "title": "Paulo Coelho - The Alchemist - 23 of 47" + }, + { + "id": 23, + "start": 6861.923874999999, + "end": 6924.868749999999, + "title": "Paulo Coelho - The Alchemist - 24 of 47" + }, + { + "id": 24, + "start": 6924.868749999999, + "end": 7014.719749999998, + "title": "Paulo Coelho - The Alchemist - 25 of 47" + }, + { + "id": 25, + "start": 7014.719749999998, + "end": 7126.121749999998, + "title": "Paulo Coelho - The Alchemist - 26 of 47" + }, + { + "id": 26, + "start": 7126.121749999998, + "end": 7191.287124999998, + "title": "Paulo Coelho - The Alchemist - 27 of 47" + }, + { + "id": 27, + "start": 7191.287124999998, + "end": 7312.432874999998, + "title": "Paulo Coelho - The Alchemist - 28 of 47" + }, + { + "id": 28, + "start": 7312.432874999998, + "end": 8848.527124999997, + "title": "Paulo Coelho - The Alchemist - 29 of 47" + }, + { + "id": 29, + "start": 8848.527124999997, + "end": 9576.732499999996, + "title": "Paulo Coelho - The Alchemist - 30 of 47" + }, + { + "id": 30, + "start": 9576.732499999996, + "end": 9695.997374999997, + "title": "Paulo Coelho - The Alchemist - 31 of 47" + }, + { + "id": 31, + "start": 9695.997374999997, + "end": 9943.601874999997, + "title": "Paulo Coelho - The Alchemist - 32 of 47" + }, + { + "id": 32, + "start": 9943.601874999997, + "end": 10389.972124999997, + "title": "Paulo Coelho - The Alchemist - 33 of 47" + }, + { + "id": 33, + "start": 10389.972124999997, + "end": 10595.127624999997, + "title": "Paulo Coelho - The Alchemist - 34 of 47" + }, + { + "id": 34, + "start": 10595.127624999997, + "end": 10981.363999999998, + "title": "Paulo Coelho - The Alchemist - 35 of 47" + }, + { + "id": 35, + "start": 10981.363999999998, + "end": 11459.368499999997, + "title": "Paulo Coelho - The Alchemist - 36 of 47" + }, + { + "id": 36, + "start": 11459.368499999997, + "end": 11952.053874999998, + "title": "Paulo Coelho - The Alchemist - 37 of 47" + }, + { + "id": 37, + "start": 11952.053874999998, + "end": 12002.198749999998, + "title": "Paulo Coelho - The Alchemist - 38 of 47" + }, + { + "id": 38, + "start": 12002.198749999998, + "end": 12278.564124999997, + "title": "Paulo Coelho - The Alchemist - 39 of 47" + }, + { + "id": 39, + "start": 12278.564124999997, + "end": 12353.237999999998, + "title": "Paulo Coelho - The Alchemist - 40 of 47" + }, + { + "id": 40, + "start": 12353.237999999998, + "end": 12385.436749999997, + "title": "Paulo Coelho - The Alchemist - 41 of 47" + }, + { + "id": 41, + "start": 12385.436749999997, + "end": 13246.004499999997, + "title": "Paulo Coelho - The Alchemist - 42 of 47" + }, + { + "id": 42, + "start": 13246.004499999997, + "end": 13305.684124999998, + "title": "Paulo Coelho - The Alchemist - 43 of 47" + }, + { + "id": 43, + "start": 13305.684124999998, + "end": 13530.666624999998, + "title": "Paulo Coelho - The Alchemist - 44 of 47" + }, + { + "id": 44, + "start": 13530.666624999998, + "end": 13827.955999999998, + "title": "Paulo Coelho - The Alchemist - 45 of 47" + }, + { + "id": 45, + "start": 13827.955999999998, + "end": 14221.428249999999, + "title": "Paulo Coelho - The Alchemist - 46 of 47" + }, + { + "id": 46, + "start": 14221.428249999999, + "end": 14451.844249999998, + "title": "Paulo Coelho - The Alchemist - 47 of 47" + } + ], + "missingParts": [], + "ebookFile": null + }, + "libraryFiles": [ + { + "ino": "16253075", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 01 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 01 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 01 of 47.mp3", + "size": 1000011, + "mtimeMs": 1673790487987, + "ctimeMs": 1673790487987, + "birthtimeMs": 1673790460610 + }, + "addedAt": 1673790479039, + "updatedAt": 1673790479039, + "fileType": "audio" + }, + { + "ino": "16253077", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 02 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 02 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 02 of 47.mp3", + "size": 1302823, + "mtimeMs": 1673790489621, + "ctimeMs": 1673790489621, + "birthtimeMs": 1673790461387 + }, + "addedAt": 1673790479039, + "updatedAt": 1673790479039, + "fileType": "audio" + }, + { + "ino": "16253098", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 03 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 03 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 03 of 47.mp3", + "size": 905552, + "mtimeMs": 1673790489451, + "ctimeMs": 1673790489451, + "birthtimeMs": 1673790466787 + }, + "addedAt": 1673790479039, + "updatedAt": 1673790479039, + "fileType": "audio" + }, + { + "ino": "16253080", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 04 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 04 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 04 of 47.mp3", + "size": 1722245, + "mtimeMs": 1673790473221, + "ctimeMs": 1673790473221, + "birthtimeMs": 1673790461642 + }, + "addedAt": 1673790479039, + "updatedAt": 1673790479039, + "fileType": "audio" + }, + { + "ino": "16253114", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 06 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 06 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 06 of 47.mp3", + "size": 1053719, + "mtimeMs": 1673790483870, + "ctimeMs": 1673790483870, + "birthtimeMs": 1673790475391 + }, + "addedAt": 1673790479039, + "updatedAt": 1673790479039, + "fileType": "audio" + }, + { + "ino": "16253074", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 07 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 07 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 07 of 47.mp3", + "size": 6881115, + "mtimeMs": 1673790492013, + "ctimeMs": 1673790492013, + "birthtimeMs": 1673790459884 + }, + "addedAt": 1673790479039, + "updatedAt": 1673790479039, + "fileType": "audio" + }, + { + "ino": "16253065", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 08 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 08 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 08 of 47.mp3", + "size": 3369840, + "mtimeMs": 1673790490516, + "ctimeMs": 1673790490516, + "birthtimeMs": 1673790457728 + }, + "addedAt": 1673790479039, + "updatedAt": 1673790479039, + "fileType": "audio" + }, + { + "ino": "16253078", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 09 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 09 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 09 of 47.mp3", + "size": 5687215, + "mtimeMs": 1673790488421, + "ctimeMs": 1673790488421, + "birthtimeMs": 1673790461421 + }, + "addedAt": 1673790479039, + "updatedAt": 1673790479039, + "fileType": "audio" + }, + { + "ino": "16253063", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 11 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 11 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 11 of 47.mp3", + "size": 6469216, + "mtimeMs": 1673790490111, + "ctimeMs": 1673790490111, + "birthtimeMs": 1673790457516 + }, + "addedAt": 1673790479040, + "updatedAt": 1673790479040, + "fileType": "audio" + }, + { + "ino": "16253073", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 12 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 12 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 12 of 47.mp3", + "size": 1336677, + "mtimeMs": 1673790488363, + "ctimeMs": 1673790488363, + "birthtimeMs": 1673790459428 + }, + "addedAt": 1673790479040, + "updatedAt": 1673790479040, + "fileType": "audio" + }, + { + "ino": "16253110", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 13 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 13 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 13 of 47.mp3", + "size": 822379, + "mtimeMs": 1673790485704, + "ctimeMs": 1673790485704, + "birthtimeMs": 1673790474130 + }, + "addedAt": 1673790479040, + "updatedAt": 1673790479040, + "fileType": "audio" + }, + { + "ino": "16253084", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 14 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 14 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 14 of 47.mp3", + "size": 1664357, + "mtimeMs": 1673790482062, + "ctimeMs": 1673790482062, + "birthtimeMs": 1673790461874 + }, + "addedAt": 1673790479040, + "updatedAt": 1673790479040, + "fileType": "audio" + }, + { + "ino": "16253067", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 15 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 15 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 15 of 47.mp3", + "size": 3008514, + "mtimeMs": 1673790491170, + "ctimeMs": 1673790491170, + "birthtimeMs": 1673790457799 + }, + "addedAt": 1673790479040, + "updatedAt": 1673790479040, + "fileType": "audio" + }, + { + "ino": "16253085", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 16 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 16 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 16 of 47.mp3", + "size": 2294013, + "mtimeMs": 1673790495952, + "ctimeMs": 1673790495952, + "birthtimeMs": 1673790462415 + }, + "addedAt": 1673790479040, + "updatedAt": 1673790479040, + "fileType": "audio" + }, + { + "ino": "16253112", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 17 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 17 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 17 of 47.mp3", + "size": 599188, + "mtimeMs": 1673790475705, + "ctimeMs": 1673790475705, + "birthtimeMs": 1673790474868 + }, + "addedAt": 1673790479041, + "updatedAt": 1673790479041, + "fileType": "audio" + }, + { + "ino": "16253083", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 18 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 18 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 18 of 47.mp3", + "size": 1002519, + "mtimeMs": 1673790485869, + "ctimeMs": 1673790485869, + "birthtimeMs": 1673790461833 + }, + "addedAt": 1673790479042, + "updatedAt": 1673790479042, + "fileType": "audio" + }, + { + "ino": "16253057", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 19 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 19 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 19 of 47.mp3", + "size": 3059923, + "mtimeMs": 1673790488229, + "ctimeMs": 1673790488229, + "birthtimeMs": 1673790456066 + }, + "addedAt": 1673790479042, + "updatedAt": 1673790479042, + "fileType": "audio" + }, + { + "ino": "16253058", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 20 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 20 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 20 of 47.mp3", + "size": 1578258, + "mtimeMs": 1673790482484, + "ctimeMs": 1673790482484, + "birthtimeMs": 1673790456688 + }, + "addedAt": 1673790479046, + "updatedAt": 1673790479046, + "fileType": "audio" + }, + { + "ino": "16253100", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 21 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 21 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 21 of 47.mp3", + "size": 1869784, + "mtimeMs": 1673790481998, + "ctimeMs": 1673790481998, + "birthtimeMs": 1673790467394 + }, + "addedAt": 1673790479048, + "updatedAt": 1673790479048, + "fileType": "audio" + }, + { + "ino": "16253061", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 22 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 22 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 22 of 47.mp3", + "size": 6139655, + "mtimeMs": 1673790491240, + "ctimeMs": 1673790491240, + "birthtimeMs": 1673790457413 + }, + "addedAt": 1673790479048, + "updatedAt": 1673790479048, + "fileType": "audio" + }, + { + "ino": "16253070", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 23 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 23 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 23 of 47.mp3", + "size": 1736455, + "mtimeMs": 1673790485620, + "ctimeMs": 1673790485620, + "birthtimeMs": 1673790458978 + }, + "addedAt": 1673790479048, + "updatedAt": 1673790479048, + "fileType": "audio" + }, + { + "ino": "16253117", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 24 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 24 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 24 of 47.mp3", + "size": 507655, + "mtimeMs": 1673790476796, + "ctimeMs": 1673790476796, + "birthtimeMs": 1673790475960 + }, + "addedAt": 1673790479048, + "updatedAt": 1673790479048, + "fileType": "audio" + }, + { + "ino": "16253109", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 26 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 26 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 26 of 47.mp3", + "size": 895312, + "mtimeMs": 1673790493116, + "ctimeMs": 1673790493116, + "birthtimeMs": 1673790473757 + }, + "addedAt": 1673790479048, + "updatedAt": 1673790479048, + "fileType": "audio" + }, + { + "ino": "16253115", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 27 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 27 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 27 of 47.mp3", + "size": 525419, + "mtimeMs": 1673790476708, + "ctimeMs": 1673790476708, + "birthtimeMs": 1673790475477 + }, + "addedAt": 1673790479049, + "updatedAt": 1673790479049, + "fileType": "audio" + }, + { + "ino": "16253072", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 28 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 28 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 28 of 47.mp3", + "size": 973262, + "mtimeMs": 1673790488702, + "ctimeMs": 1673790488702, + "birthtimeMs": 1673790459408 + }, + "addedAt": 1673790479049, + "updatedAt": 1673790479049, + "fileType": "audio" + }, + { + "ino": "16253059", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 29 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 29 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 29 of 47.mp3", + "size": 12292850, + "mtimeMs": 1673790488525, + "ctimeMs": 1673790488525, + "birthtimeMs": 1673790456924 + }, + "addedAt": 1673790479050, + "updatedAt": 1673790479050, + "fileType": "audio" + }, + { + "ino": "16253062", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 30 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 30 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 30 of 47.mp3", + "size": 5829739, + "mtimeMs": 1673790492346, + "ctimeMs": 1673790492346, + "birthtimeMs": 1673790457431 + }, + "addedAt": 1673790479054, + "updatedAt": 1673790479054, + "fileType": "audio" + }, + { + "ino": "16253086", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 32 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 32 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 32 of 47.mp3", + "size": 1984932, + "mtimeMs": 1673790488503, + "ctimeMs": 1673790488503, + "birthtimeMs": 1673790462978 + }, + "addedAt": 1673790479055, + "updatedAt": 1673790479055, + "fileType": "audio" + }, + { + "ino": "16253095", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 33 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 33 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 33 of 47.mp3", + "size": 3575058, + "mtimeMs": 1673790487604, + "ctimeMs": 1673790487604, + "birthtimeMs": 1673790465859 + }, + "addedAt": 1673790479055, + "updatedAt": 1673790479055, + "fileType": "audio" + }, + { + "ino": "16253069", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 34 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 34 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 34 of 47.mp3", + "size": 1645340, + "mtimeMs": 1673790485851, + "ctimeMs": 1673790485851, + "birthtimeMs": 1673790458761 + }, + "addedAt": 1673790479056, + "updatedAt": 1673790479056, + "fileType": "audio" + }, + { + "ino": "16253093", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 35 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 35 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 35 of 47.mp3", + "size": 3093987, + "mtimeMs": 1673790488528, + "ctimeMs": 1673790488528, + "birthtimeMs": 1673790465204 + }, + "addedAt": 1673790479056, + "updatedAt": 1673790479056, + "fileType": "audio" + }, + { + "ino": "16253071", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 36 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 36 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 36 of 47.mp3", + "size": 3828132, + "mtimeMs": 1673790472127, + "ctimeMs": 1673790472127, + "birthtimeMs": 1673790459161 + }, + "addedAt": 1673790479056, + "updatedAt": 1673790479056, + "fileType": "audio" + }, + { + "ino": "16253064", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 37 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 37 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 37 of 47.mp3", + "size": 3945579, + "mtimeMs": 1673790491474, + "ctimeMs": 1673790491474, + "birthtimeMs": 1673790457587 + }, + "addedAt": 1673790479056, + "updatedAt": 1673790479056, + "fileType": "audio" + }, + { + "ino": "16253120", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 38 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 38 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 38 of 47.mp3", + "size": 405255, + "mtimeMs": 1673790478101, + "ctimeMs": 1673790478101, + "birthtimeMs": 1673790477358 + }, + "addedAt": 1673790479056, + "updatedAt": 1673790479056, + "fileType": "audio" + }, + { + "ino": "16253091", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 39 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 39 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 39 of 47.mp3", + "size": 2215019, + "mtimeMs": 1673790491242, + "ctimeMs": 1673790491242, + "birthtimeMs": 1673790464869 + }, + "addedAt": 1673790479056, + "updatedAt": 1673790479056, + "fileType": "audio" + }, + { + "ino": "16253081", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 40 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 40 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 40 of 47.mp3", + "size": 601487, + "mtimeMs": 1673790488503, + "ctimeMs": 1673790488503, + "birthtimeMs": 1673790461679 + }, + "addedAt": 1673790479056, + "updatedAt": 1673790479056, + "fileType": "audio" + }, + { + "ino": "16253121", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 41 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 41 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 41 of 47.mp3", + "size": 261686, + "mtimeMs": 1673790478137, + "ctimeMs": 1673790478137, + "birthtimeMs": 1673790478095 + }, + "addedAt": 1673790479056, + "updatedAt": 1673790479056, + "fileType": "audio" + }, + { + "ino": "16253060", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 42 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 42 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 42 of 47.mp3", + "size": 6888638, + "mtimeMs": 1673790494875, + "ctimeMs": 1673790494875, + "birthtimeMs": 1673790457063 + }, + "addedAt": 1673790479057, + "updatedAt": 1673790479057, + "fileType": "audio" + }, + { + "ino": "16253118", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 43 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 43 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 43 of 47.mp3", + "size": 481533, + "mtimeMs": 1673790478057, + "ctimeMs": 1673790478057, + "birthtimeMs": 1673790476708 + }, + "addedAt": 1673790479061, + "updatedAt": 1673790479061, + "fileType": "audio" + }, + { + "ino": "16253099", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 44 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 44 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 44 of 47.mp3", + "size": 1803956, + "mtimeMs": 1673790489176, + "ctimeMs": 1673790489176, + "birthtimeMs": 1673790467171 + }, + "addedAt": 1673790479062, + "updatedAt": 1673790479062, + "fileType": "audio" + }, + { + "ino": "16253076", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 45 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 45 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 45 of 47.mp3", + "size": 2382411, + "mtimeMs": 1673790488277, + "ctimeMs": 1673790488277, + "birthtimeMs": 1673790460686 + }, + "addedAt": 1673790479062, + "updatedAt": 1673790479062, + "fileType": "audio" + }, + { + "ino": "16253108", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 46 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 46 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 46 of 47.mp3", + "size": 3151874, + "mtimeMs": 1673790490813, + "ctimeMs": 1673790490813, + "birthtimeMs": 1673790473333 + }, + "addedAt": 1673790479063, + "updatedAt": 1673790479063, + "fileType": "audio" + }, + { + "ino": "16253082", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 47 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 47 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 47 of 47.mp3", + "size": 1847424, + "mtimeMs": 1673790482547, + "ctimeMs": 1673790482547, + "birthtimeMs": 1673790461689 + }, + "addedAt": 1673790479063, + "updatedAt": 1673790479063, + "fileType": "audio" + }, + { + "ino": "16253122", + "metadata": { + "filename": "Paulo Coelho - The Alchemist.jpg", + "ext": ".jpg", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist.jpg", + "relPath": "Paulo Coelho - The Alchemist.jpg", + "size": 40175, + "mtimeMs": 1673790478122, + "ctimeMs": 1673790478122, + "birthtimeMs": 1673790478103 + }, + "addedAt": 1673790479071, + "updatedAt": 1673790479071, + "fileType": "image" + }, + { + "ino": "16253126", + "metadata": { + "filename": "Paulo Coelho - The Alchemist.nfo", + "ext": ".nfo", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist.nfo", + "relPath": "Paulo Coelho - The Alchemist.nfo", + "size": 7187, + "mtimeMs": 1673790478128, + "ctimeMs": 1673790478128, + "birthtimeMs": 1673790478128 + }, + "addedAt": 1673790479072, + "updatedAt": 1673790479072, + "fileType": "text" + }, + { + "ino": "16253125", + "metadata": { + "filename": "Paulo Coelho - The Alchemist.sfv", + "ext": ".sfv", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist.sfv", + "relPath": "Paulo Coelho - The Alchemist.sfv", + "size": 9502, + "mtimeMs": 1673790478127, + "ctimeMs": 1673790478127, + "birthtimeMs": 1673790478122 + }, + "addedAt": 1673790479073, + "updatedAt": 1673790479073, + "fileType": "unknown" + }, + { + "ino": "16253134", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 05 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 05 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 05 of 47.mp3", + "size": 794584, + "mtimeMs": 1673790485960, + "ctimeMs": 1673790485960, + "birthtimeMs": 1673790485544 + }, + "addedAt": 1673790494372, + "updatedAt": 1673790494372, + "fileType": "audio" + }, + { + "ino": "16253139", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 10 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 10 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 10 of 47.mp3", + "size": 691557, + "mtimeMs": 1673790488495, + "ctimeMs": 1673790488495, + "birthtimeMs": 1673790487133 + }, + "addedAt": 1673790494381, + "updatedAt": 1673790494381, + "fileType": "audio" + }, + { + "ino": "16253136", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 25 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 25 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 25 of 47.mp3", + "size": 722904, + "mtimeMs": 1673790488075, + "ctimeMs": 1673790488075, + "birthtimeMs": 1673790485857 + }, + "addedAt": 1673790494391, + "updatedAt": 1673790494391, + "fileType": "audio" + }, + { + "ino": "16253128", + "metadata": { + "filename": "Paulo Coelho - The Alchemist - 31 of 47.mp3", + "ext": ".mp3", + "path": "/demo/Coelho, Paulo - The Alchemist - 47pt Irons U 2001 CD 64k/Paulo Coelho - The Alchemist - 31 of 47.mp3", + "relPath": "Paulo Coelho - The Alchemist - 31 of 47.mp3", + "size": 958215, + "mtimeMs": 1673790488823, + "ctimeMs": 1673790488823, + "birthtimeMs": 1673790479919 + }, + "addedAt": 1673790494392, + "updatedAt": 1673790494392, + "fileType": "audio" + } + ], + "rssFeed": null + }, + { + "id": "li_7sm5z3vi65zzlwq1yj", + "ino": "16253051", + "libraryId": "lib_kppofuog4odorydwgg", + "folderId": "fol_u7g1p5mz96d1hms0a2", + "path": "/demo/The Three Musketeers", + "relPath": "The Three Musketeers", + "isFile": false, + "mtimeMs": 1673790591310, + "ctimeMs": 1673790591310, + "birthtimeMs": 1673790452510, + "addedAt": 1673790466054, + "updatedAt": 1673790610914, + "lastScan": 1673790610914, + "scanVersion": "2.2.12", + "isMissing": false, + "isInvalid": false, + "mediaType": "book", + "media": { + "libraryItemId": "li_7sm5z3vi65zzlwq1yj", + "metadata": { + "title": "The Three Musketeers", + "subtitle": null, + "authors": [ + { + "id": "aut_mnc06ds8qnoq3a3x54", + "name": "Alexandre Dumas" + } + ], + "narrators": [ + "John Lee" + ], + "series": [ + { + "id": "ser_i2iabcekyw83uemkao", + "name": "D'Artagnan: The Musketeers Cycle", + "sequence": "1" + } + ], + "genres": [ + "Literature & Fiction" + ], + "publishedYear": "2009", + "publishedDate": null, + "publisher": "Tantor Audio", + "description": "Mixing a bit of seventeenth-century French history with a great deal of invention, Alexandre Dumas tells the tale of young D'Artagnan and his musketeer comrades, Porthos, Athos, and Aramis. Together they fight to foil the schemes of the brilliant, dangerous Cardinal Richelieu, who pretends to support the king while plotting to advance his own power. Bursting with swirling swordplay, swooning romance, and unforgettable figures---including the seductively beautiful but deadly femme fatale, Milady, and D'Artagnan's equally beautiful love, Madame Bonacieux--- The Three Musketeers continues, after a century and a half of continuous publication, to define the genre of swashbuckling romance and historical adventure.", + "isbn": null, + "asin": "B002UZJF4U", + "language": "English", + "explicit": false + }, + "coverPath": "/metadata/items/li_7sm5z3vi65zzlwq1yj/cover.jpg", + "tags": [ + "Classics" + ], + "audioFiles": [ + { + "index": 1, + "ino": "16253161", + "metadata": { + "filename": "00 - Intro.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/00 - Intro.mp3", + "relPath": "00 - Intro.mp3", + "size": 153600, + "mtimeMs": 1673790516399, + "ctimeMs": 1673790516399, + "birthtimeMs": 1673790516356 + }, + "addedAt": 1673790523669, + "updatedAt": 1673790523669, + "trackNumFromMeta": 0, + "discNumFromMeta": null, + "trackNumFromFilename": 0, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 2327.980408, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Intro", + "tagTrack": "00", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 2, + "ino": "16253156", + "metadata": { + "filename": "01 - Chapter 1.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/01 - Chapter 1.mp3", + "relPath": "01 - Chapter 1.mp3", + "size": 27873280, + "mtimeMs": 1673790598710, + "ctimeMs": 1673790598710, + "birthtimeMs": 1673790510610 + }, + "addedAt": 1673790525400, + "updatedAt": 1673790525400, + "trackNumFromMeta": 1, + "discNumFromMeta": null, + "trackNumFromFilename": 1, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 2318.978833, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 1: The Three Presents of d'Artagnan the Elder", + "tagTrack": "01", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 3, + "ino": "16253150", + "metadata": { + "filename": "02 - Chapter 2.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/02 - Chapter 2.mp3", + "relPath": "02 - Chapter 2.mp3", + "size": 18513648, + "mtimeMs": 1673790591156, + "ctimeMs": 1673790591156, + "birthtimeMs": 1673790503249 + }, + "addedAt": 1673790514909, + "updatedAt": 1673790514909, + "trackNumFromMeta": 2, + "discNumFromMeta": null, + "trackNumFromFilename": 2, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1539.056327, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 2: The Antechamber of M. de Treville", + "tagTrack": "02", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 4, + "ino": "16253096", + "metadata": { + "filename": "03 - Chapter 3.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/03 - Chapter 3.mp3", + "relPath": "03 - Chapter 3.mp3", + "size": 19418634, + "mtimeMs": 1673790595606, + "ctimeMs": 1673790595606, + "birthtimeMs": 1673790466237 + }, + "addedAt": 1673790488325, + "updatedAt": 1673790488325, + "trackNumFromMeta": 3, + "discNumFromMeta": null, + "trackNumFromFilename": 3, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1614.471837, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 3: The Audience", + "tagTrack": "03", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 5, + "ino": "16253130", + "metadata": { + "filename": "04 - Chapter 4.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/04 - Chapter 4.mp3", + "relPath": "04 - Chapter 4.mp3", + "size": 13316012, + "mtimeMs": 1673790572964, + "ctimeMs": 1673790572964, + "birthtimeMs": 1673790481412 + }, + "addedAt": 1673790487867, + "updatedAt": 1673790487867, + "trackNumFromMeta": 4, + "discNumFromMeta": null, + "trackNumFromFilename": 4, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1105.92, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 4: The Shoulder of Athos, the Baldric of Porthos, and the Handkerchief of Aramis", + "tagTrack": "04", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 6, + "ino": "16253155", + "metadata": { + "filename": "05 - Chapter 5.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/05 - Chapter 5.mp3", + "relPath": "05 - Chapter 5.mp3", + "size": 17174507, + "mtimeMs": 1673790549901, + "ctimeMs": 1673790549901, + "birthtimeMs": 1673790509649 + }, + "addedAt": 1673790523889, + "updatedAt": 1673790523889, + "trackNumFromMeta": 5, + "discNumFromMeta": null, + "trackNumFromFilename": 5, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1427.461224, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 5: The King's Musketeers and the Cardinal's Guards", + "tagTrack": "05", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 7, + "ino": "16253116", + "metadata": { + "filename": "06 - Chapter 6.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/06 - Chapter 6.mp3", + "relPath": "06 - Chapter 6.mp3", + "size": 31748952, + "mtimeMs": 1673790591490, + "ctimeMs": 1673790591490, + "birthtimeMs": 1673790475934 + }, + "addedAt": 1673790493664, + "updatedAt": 1673790493664, + "trackNumFromMeta": 6, + "discNumFromMeta": null, + "trackNumFromFilename": 6, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 2641.998367, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 6: His Majesty King Louis XIII", + "tagTrack": "06", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 8, + "ino": "16253154", + "metadata": { + "filename": "07 - Chapter 7.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/07 - Chapter 7.mp3", + "relPath": "07 - Chapter 7.mp3", + "size": 15278644, + "mtimeMs": 1673790591175, + "ctimeMs": 1673790591175, + "birthtimeMs": 1673790506641 + }, + "addedAt": 1673790515823, + "updatedAt": 1673790515823, + "trackNumFromMeta": 7, + "discNumFromMeta": null, + "trackNumFromFilename": 7, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1269.472653, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 7: The Interior of \"The Musketeers\"", + "tagTrack": "07", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 9, + "ino": "16253138", + "metadata": { + "filename": "08 - Chapter 8.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/08 - Chapter 8.mp3", + "relPath": "08 - Chapter 8.mp3", + "size": 12828254, + "mtimeMs": 1673790527479, + "ctimeMs": 1673790527479, + "birthtimeMs": 1673790487007 + }, + "addedAt": 1673790513671, + "updatedAt": 1673790513671, + "trackNumFromMeta": 8, + "discNumFromMeta": null, + "trackNumFromFilename": 8, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1065.273469, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 8: Concerning a Court Intrigue", + "tagTrack": "08", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 10, + "ino": "16253177", + "metadata": { + "filename": "09 - Chapter 9.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/09 - Chapter 9.mp3", + "relPath": "09 - Chapter 9.mp3", + "size": 12486259, + "mtimeMs": 1673790583681, + "ctimeMs": 1673790583681, + "birthtimeMs": 1673790574661 + }, + "addedAt": 1673790584347, + "updatedAt": 1673790584347, + "trackNumFromMeta": 9, + "discNumFromMeta": null, + "trackNumFromFilename": 9, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1036.773878, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 9: D'Artagnan Shows Himself", + "tagTrack": "09", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 11, + "ino": "16253157", + "metadata": { + "filename": "10 - Chapter 10.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/10 - Chapter 10.mp3", + "relPath": "10 - Chapter 10.mp3", + "size": 15152004, + "mtimeMs": 1673790593094, + "ctimeMs": 1673790593094, + "birthtimeMs": 1673790514555 + }, + "addedAt": 1673790523888, + "updatedAt": 1673790523888, + "trackNumFromMeta": 10, + "discNumFromMeta": null, + "trackNumFromFilename": 10, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1258.919184, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 10: A Mousetrap in the Seventeenth Century", + "tagTrack": "10", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 12, + "ino": "16253052", + "metadata": { + "filename": "11 - Chapter 11.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/11 - Chapter 11.mp3", + "relPath": "11 - Chapter 11.mp3", + "size": 27118071, + "mtimeMs": 1673790593800, + "ctimeMs": 1673790593800, + "birthtimeMs": 1673790452510 + }, + "addedAt": 1673790467569, + "updatedAt": 1673790467569, + "trackNumFromMeta": 11, + "discNumFromMeta": null, + "trackNumFromFilename": 11, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 2256.091429, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 11: In Which the Plot Thickens", + "tagTrack": "11", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 13, + "ino": "16253145", + "metadata": { + "filename": "12 - Chapter 12.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/12 - Chapter 12.mp3", + "relPath": "12 - Chapter 12.mp3", + "size": 15913421, + "mtimeMs": 1673790588004, + "ctimeMs": 1673790588004, + "birthtimeMs": 1673790494263 + }, + "addedAt": 1673790513670, + "updatedAt": 1673790513670, + "trackNumFromMeta": 12, + "discNumFromMeta": null, + "trackNumFromFilename": 12, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1322.370612, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 12: George Villers, Duke Of Buckingham", + "tagTrack": "12", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 14, + "ino": "16253124", + "metadata": { + "filename": "13 - Chapter 13.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/13 - Chapter 13.mp3", + "relPath": "13 - Chapter 13.mp3", + "size": 14837908, + "mtimeMs": 1673790554449, + "ctimeMs": 1673790554449, + "birthtimeMs": 1673790478121 + }, + "addedAt": 1673790492036, + "updatedAt": 1673790492036, + "trackNumFromMeta": 13, + "discNumFromMeta": null, + "trackNumFromFilename": 13, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1232.74449, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 13: Monsieur Bonacieux", + "tagTrack": "13", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 15, + "ino": "16253169", + "metadata": { + "filename": "14 - Chapter 14.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/14 - Chapter 14.mp3", + "relPath": "14 - Chapter 14.mp3", + "size": 15443531, + "mtimeMs": 1673790603408, + "ctimeMs": 1673790603408, + "birthtimeMs": 1673790530651 + }, + "addedAt": 1673790543341, + "updatedAt": 1673790543341, + "trackNumFromMeta": 14, + "discNumFromMeta": null, + "trackNumFromFilename": 14, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1283.213061, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 14: The Man of Meung", + "tagTrack": "14", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 16, + "ino": "16253170", + "metadata": { + "filename": "15 - Chapter 15.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/15 - Chapter 15.mp3", + "relPath": "15 - Chapter 15.mp3", + "size": 12924804, + "mtimeMs": 1673790580912, + "ctimeMs": 1673790580912, + "birthtimeMs": 1673790536306 + }, + "addedAt": 1673790543413, + "updatedAt": 1673790543413, + "trackNumFromMeta": 15, + "discNumFromMeta": null, + "trackNumFromFilename": 15, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1073.319184, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 15: Men of the Robe and Men of the Sword", + "tagTrack": "15", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 17, + "ino": "16253092", + "metadata": { + "filename": "16 - Chapter 16.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/16 - Chapter 16.mp3", + "relPath": "16 - Chapter 16.mp3", + "size": 19610479, + "mtimeMs": 1673790597609, + "ctimeMs": 1673790597609, + "birthtimeMs": 1673790465022 + }, + "addedAt": 1673790467266, + "updatedAt": 1673790467266, + "trackNumFromMeta": 16, + "discNumFromMeta": null, + "trackNumFromFilename": 16, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1630.458776, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 16: M. Seguier, Keeper of the Seals, Looks More Than Once for the Bell, in Order to Ring It, as He Did Before", + "tagTrack": "16", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 18, + "ino": "16253158", + "metadata": { + "filename": "17 - Chapter 17.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/17 - Chapter 17.mp3", + "relPath": "17 - Chapter 17.mp3", + "size": 21808840, + "mtimeMs": 1673790574630, + "ctimeMs": 1673790574630, + "birthtimeMs": 1673790515165 + }, + "addedAt": 1673790523888, + "updatedAt": 1673790523888, + "trackNumFromMeta": 17, + "discNumFromMeta": null, + "trackNumFromFilename": 17, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1813.65551, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 17: Bonacieux at Home", + "tagTrack": "17", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 19, + "ino": "16253164", + "metadata": { + "filename": "18 - Chapter 18.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/18 - Chapter 18.mp3", + "relPath": "18 - Chapter 18.mp3", + "size": 10441500, + "mtimeMs": 1673790548742, + "ctimeMs": 1673790548742, + "birthtimeMs": 1673790520146 + }, + "addedAt": 1673790535128, + "updatedAt": 1673790535128, + "trackNumFromMeta": 18, + "discNumFromMeta": null, + "trackNumFromFilename": 18, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 866.377143, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 18: Lover and Husband", + "tagTrack": "18", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 20, + "ino": "16253143", + "metadata": { + "filename": "19 - Chapter 19.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/19 - Chapter 19.mp3", + "relPath": "19 - Chapter 19.mp3", + "size": 12847691, + "mtimeMs": 1673790581644, + "ctimeMs": 1673790581644, + "birthtimeMs": 1673790493305 + }, + "addedAt": 1673790515832, + "updatedAt": 1673790515832, + "trackNumFromMeta": 19, + "discNumFromMeta": null, + "trackNumFromFilename": 19, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1066.893061, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 19: Plan of Campaign", + "tagTrack": "19", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 21, + "ino": "16253133", + "metadata": { + "filename": "20 - Chapter 20.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/20 - Chapter 20.mp3", + "relPath": "20 - Chapter 20.mp3", + "size": 17381712, + "mtimeMs": 1673790588874, + "ctimeMs": 1673790588874, + "birthtimeMs": 1673790484724 + }, + "addedAt": 1673790489277, + "updatedAt": 1673790489277, + "trackNumFromMeta": 20, + "discNumFromMeta": null, + "trackNumFromFilename": 20, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1444.728163, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 20: The Journey", + "tagTrack": "20", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 22, + "ino": "16253101", + "metadata": { + "filename": "21 - Chapter 21.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/21 - Chapter 21.mp3", + "relPath": "21 - Chapter 21.mp3", + "size": 15638509, + "mtimeMs": 1673790585611, + "ctimeMs": 1673790585611, + "birthtimeMs": 1673790468381 + }, + "addedAt": 1673790492763, + "updatedAt": 1673790492763, + "trackNumFromMeta": 21, + "discNumFromMeta": null, + "trackNumFromFilename": 21, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1299.461224, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 21: The Countess de Winter", + "tagTrack": "21", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 23, + "ino": "16253172", + "metadata": { + "filename": "22 - Chapter 22.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/22 - Chapter 22.mp3", + "relPath": "22 - Chapter 22.mp3", + "size": 12136742, + "mtimeMs": 1673790559719, + "ctimeMs": 1673790559719, + "birthtimeMs": 1673790537787 + }, + "addedAt": 1673790552402, + "updatedAt": 1673790552402, + "trackNumFromMeta": 22, + "discNumFromMeta": null, + "trackNumFromFilename": 22, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1007.647347, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 22: The Ballet of La Merlaison", + "tagTrack": "22", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 24, + "ino": "16253132", + "metadata": { + "filename": "23 - Chapter 23.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/23 - Chapter 23.mp3", + "relPath": "23 - Chapter 23.mp3", + "size": 17541268, + "mtimeMs": 1673790591737, + "ctimeMs": 1673790591737, + "birthtimeMs": 1673790483924 + }, + "addedAt": 1673790493461, + "updatedAt": 1673790493461, + "trackNumFromMeta": 23, + "discNumFromMeta": null, + "trackNumFromFilename": 23, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1458.02449, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 23: The Rendezvous", + "tagTrack": "23", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 25, + "ino": "16253168", + "metadata": { + "filename": "24 - Chapter 24.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/24 - Chapter 24.mp3", + "relPath": "24 - Chapter 24.mp3", + "size": 17102097, + "mtimeMs": 1673790587496, + "ctimeMs": 1673790587496, + "birthtimeMs": 1673790530014 + }, + "addedAt": 1673790543342, + "updatedAt": 1673790543342, + "trackNumFromMeta": 24, + "discNumFromMeta": null, + "trackNumFromFilename": 24, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1421.426939, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 24: The Pavilion", + "tagTrack": "24", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 26, + "ino": "16253149", + "metadata": { + "filename": "25 - Chapter 25.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/25 - Chapter 25.mp3", + "relPath": "25 - Chapter 25.mp3", + "size": 30092269, + "mtimeMs": 1673790596501, + "ctimeMs": 1673790596501, + "birthtimeMs": 1673790502283 + }, + "addedAt": 1673790516496, + "updatedAt": 1673790516496, + "trackNumFromMeta": 25, + "discNumFromMeta": null, + "trackNumFromFilename": 25, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 2503.941224, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 25: Porthos", + "tagTrack": "25", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 27, + "ino": "16253140", + "metadata": { + "filename": "26 - Chapter 26.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/26 - Chapter 26.mp3", + "relPath": "26 - Chapter 26.mp3", + "size": 29287593, + "mtimeMs": 1673790596991, + "ctimeMs": 1673790596991, + "birthtimeMs": 1673790488273 + }, + "addedAt": 1673790516270, + "updatedAt": 1673790516270, + "trackNumFromMeta": 26, + "discNumFromMeta": null, + "trackNumFromFilename": 26, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 2436.884898, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 26: Aramis and His Thesis", + "tagTrack": "26", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 28, + "ino": "16253103", + "metadata": { + "filename": "27 - Chapter 27.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/27 - Chapter 27.mp3", + "relPath": "27 - Chapter 27.mp3", + "size": 31199129, + "mtimeMs": 1673790598428, + "ctimeMs": 1673790598428, + "birthtimeMs": 1673790470450 + }, + "addedAt": 1673790493138, + "updatedAt": 1673790493138, + "trackNumFromMeta": 27, + "discNumFromMeta": null, + "trackNumFromFilename": 27, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 2596.179592, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 27: The Wife of Athos", + "tagTrack": "27", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 29, + "ino": "16253141", + "metadata": { + "filename": "28 - Chapter 28.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/28 - Chapter 28.mp3", + "relPath": "28 - Chapter 28.mp3", + "size": 21948647, + "mtimeMs": 1673790582242, + "ctimeMs": 1673790582242, + "birthtimeMs": 1673790489486 + }, + "addedAt": 1673790514297, + "updatedAt": 1673790514297, + "trackNumFromMeta": 28, + "discNumFromMeta": null, + "trackNumFromFilename": 28, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1825.306122, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 28: The Return", + "tagTrack": "28", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 30, + "ino": "16253113", + "metadata": { + "filename": "29 - Chapter 29.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/29 - Chapter 29.mp3", + "relPath": "29 - Chapter 29.mp3", + "size": 14413784, + "mtimeMs": 1673790545653, + "ctimeMs": 1673790545653, + "birthtimeMs": 1673790475313 + }, + "addedAt": 1673790492460, + "updatedAt": 1673790492460, + "trackNumFromMeta": 29, + "discNumFromMeta": null, + "trackNumFromFilename": 29, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1197.400816, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 29: Hunting for the Equipments", + "tagTrack": "29", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 31, + "ino": "16253144", + "metadata": { + "filename": "30 - Chapter 30.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/30 - Chapter 30.mp3", + "relPath": "30 - Chapter 30.mp3", + "size": 11557764, + "mtimeMs": 1673790527882, + "ctimeMs": 1673790527882, + "birthtimeMs": 1673790494015 + }, + "addedAt": 1673790516364, + "updatedAt": 1673790516364, + "trackNumFromMeta": 30, + "discNumFromMeta": null, + "trackNumFromFilename": 30, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 959.399184, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 30: D'Artagnan and the Englishman", + "tagTrack": "30", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 32, + "ino": "16253171", + "metadata": { + "filename": "31 - Chapter 31.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/31 - Chapter 31.mp3", + "relPath": "31 - Chapter 31.mp3", + "size": 12414790, + "mtimeMs": 1673790604547, + "ctimeMs": 1673790604547, + "birthtimeMs": 1673790536538 + }, + "addedAt": 1673790543696, + "updatedAt": 1673790543696, + "trackNumFromMeta": 31, + "discNumFromMeta": null, + "trackNumFromFilename": 31, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1030.817959, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 31: English and French", + "tagTrack": "31", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 33, + "ino": "16253151", + "metadata": { + "filename": "32 - Chapter 32.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/32 - Chapter 32.mp3", + "relPath": "32 - Chapter 32.mp3", + "size": 16564184, + "mtimeMs": 1673790595243, + "ctimeMs": 1673790595243, + "birthtimeMs": 1673790503588 + }, + "addedAt": 1673790516407, + "updatedAt": 1673790516407, + "trackNumFromMeta": 32, + "discNumFromMeta": null, + "trackNumFromFilename": 32, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1376.600816, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 32: A Procurator's Dinner", + "tagTrack": "32", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 34, + "ino": "16253111", + "metadata": { + "filename": "33 - Chapter 33.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/33 - Chapter 33.mp3", + "relPath": "33 - Chapter 33.mp3", + "size": 15060158, + "mtimeMs": 1673790574763, + "ctimeMs": 1673790574763, + "birthtimeMs": 1673790474333 + }, + "addedAt": 1673790493347, + "updatedAt": 1673790493347, + "trackNumFromMeta": 33, + "discNumFromMeta": null, + "trackNumFromFilename": 33, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1251.265306, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 33: Soubrette and Mistress", + "tagTrack": "33", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 35, + "ino": "16253159", + "metadata": { + "filename": "34 - Chapter 34.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/34 - Chapter 34.mp3", + "relPath": "34 - Chapter 34.mp3", + "size": 14336984, + "mtimeMs": 1673790555834, + "ctimeMs": 1673790555834, + "birthtimeMs": 1673790515488 + }, + "addedAt": 1673790523946, + "updatedAt": 1673790523946, + "trackNumFromMeta": 34, + "discNumFromMeta": null, + "trackNumFromFilename": 34, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1191.000816, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 34: In Which the Equipment of Aramis and Porthos is Treated of", + "tagTrack": "34", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 36, + "ino": "16253176", + "metadata": { + "filename": "35 - Chapter 35.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/35 - Chapter 35.mp3", + "relPath": "35 - Chapter 35.mp3", + "size": 13200657, + "mtimeMs": 1673790591209, + "ctimeMs": 1673790591209, + "birthtimeMs": 1673790567462 + }, + "addedAt": 1673790584166, + "updatedAt": 1673790584166, + "trackNumFromMeta": 35, + "discNumFromMeta": null, + "trackNumFromFilename": 35, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1096.306939, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 35: A Gascon a Match for Cupid", + "tagTrack": "35", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 37, + "ino": "16253179", + "metadata": { + "filename": "36 - Chapter 36.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/36 - Chapter 36.mp3", + "relPath": "36 - Chapter 36.mp3", + "size": 12421372, + "mtimeMs": 1673790602569, + "ctimeMs": 1673790602569, + "birthtimeMs": 1673790575692 + }, + "addedAt": 1673790584427, + "updatedAt": 1673790584427, + "trackNumFromMeta": 36, + "discNumFromMeta": null, + "trackNumFromFilename": 36, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1031.366531, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 36: Dream of Vengeance", + "tagTrack": "36", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 38, + "ino": "16253105", + "metadata": { + "filename": "37 - Chapter 37.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/37 - Chapter 37.mp3", + "relPath": "37 - Chapter 37.mp3", + "size": 11622966, + "mtimeMs": 1673790597606, + "ctimeMs": 1673790597606, + "birthtimeMs": 1673790470733 + }, + "addedAt": 1673790492835, + "updatedAt": 1673790492835, + "trackNumFromMeta": 37, + "discNumFromMeta": null, + "trackNumFromFilename": 37, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 964.832653, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 37: Milady's Secret", + "tagTrack": "37", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 39, + "ino": "16253174", + "metadata": { + "filename": "38 - Chapter 38.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/38 - Chapter 38.mp3", + "relPath": "38 - Chapter 38.mp3", + "size": 14289963, + "mtimeMs": 1673790598610, + "ctimeMs": 1673790598610, + "birthtimeMs": 1673790555832 + }, + "addedAt": 1673790570945, + "updatedAt": 1673790570945, + "trackNumFromMeta": 38, + "discNumFromMeta": null, + "trackNumFromFilename": 38, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1187.082449, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 38: How, Without Incommoding Himself, Athos Procures His Equipment", + "tagTrack": "38", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 40, + "ino": "16253135", + "metadata": { + "filename": "39 - Chapter 39.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/39 - Chapter 39.mp3", + "relPath": "39 - Chapter 39.mp3", + "size": 14681800, + "mtimeMs": 1673790586641, + "ctimeMs": 1673790586641, + "birthtimeMs": 1673790485850 + }, + "addedAt": 1673790489672, + "updatedAt": 1673790489672, + "trackNumFromMeta": 39, + "discNumFromMeta": null, + "trackNumFromFilename": 39, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1219.73551, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 39: A Vision", + "tagTrack": "39", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 41, + "ino": "16253148", + "metadata": { + "filename": "40 - Chapter 40.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/40 - Chapter 40.mp3", + "relPath": "40 - Chapter 40.mp3", + "size": 13697193, + "mtimeMs": 1673790577677, + "ctimeMs": 1673790577677, + "birthtimeMs": 1673790501375 + }, + "addedAt": 1673790515292, + "updatedAt": 1673790515292, + "trackNumFromMeta": 40, + "discNumFromMeta": null, + "trackNumFromFilename": 40, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1137.684898, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 40: A Terrible Vision", + "tagTrack": "40", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 42, + "ino": "16253163", + "metadata": { + "filename": "41 - Chapter 41.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/41 - Chapter 41.mp3", + "relPath": "41 - Chapter 41.mp3", + "size": 21217010, + "mtimeMs": 1673790583998, + "ctimeMs": 1673790583998, + "birthtimeMs": 1673790518439 + }, + "addedAt": 1673790536623, + "updatedAt": 1673790536623, + "trackNumFromMeta": 41, + "discNumFromMeta": null, + "trackNumFromFilename": 41, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1764.336327, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 41: The Siege of La Rochelle", + "tagTrack": "41", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 43, + "ino": "16253178", + "metadata": { + "filename": "42 - Chapter 42.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/42 - Chapter 42.mp3", + "relPath": "42 - Chapter 42.mp3", + "size": 12997843, + "mtimeMs": 1673790580618, + "ctimeMs": 1673790580618, + "birthtimeMs": 1673790575154 + }, + "addedAt": 1673790584337, + "updatedAt": 1673790584337, + "trackNumFromMeta": 42, + "discNumFromMeta": null, + "trackNumFromFilename": 42, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1079.405714, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 42: The Anjou Wine", + "tagTrack": "42", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 44, + "ino": "16253102", + "metadata": { + "filename": "43 - Chapter 43.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/43 - Chapter 43.mp3", + "relPath": "43 - Chapter 43.mp3", + "size": 14036367, + "mtimeMs": 1673790599753, + "ctimeMs": 1673790599753, + "birthtimeMs": 1673790469610 + }, + "addedAt": 1673790492813, + "updatedAt": 1673790492813, + "trackNumFromMeta": 43, + "discNumFromMeta": null, + "trackNumFromFilename": 43, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1165.949388, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 43: The Sign of the Red Dovecot", + "tagTrack": "43", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 45, + "ino": "16253166", + "metadata": { + "filename": "44 - Chapter 44.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/44 - Chapter 44.mp3", + "relPath": "44 - Chapter 44.mp3", + "size": 14855776, + "mtimeMs": 1673790597363, + "ctimeMs": 1673790597363, + "birthtimeMs": 1673790524621 + }, + "addedAt": 1673790536629, + "updatedAt": 1673790536629, + "trackNumFromMeta": 44, + "discNumFromMeta": null, + "trackNumFromFilename": 44, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1234.233469, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 44: The Utility of Stovepipes", + "tagTrack": "44", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 46, + "ino": "16253153", + "metadata": { + "filename": "45 - Chapter 45.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/45 - Chapter 45.mp3", + "relPath": "45 - Chapter 45.mp3", + "size": 10764060, + "mtimeMs": 1673790594274, + "ctimeMs": 1673790594274, + "birthtimeMs": 1673790506439 + }, + "addedAt": 1673790515148, + "updatedAt": 1673790515148, + "trackNumFromMeta": 45, + "discNumFromMeta": null, + "trackNumFromFilename": 45, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 893.257143, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 45: A Conjugal Scene", + "tagTrack": "45", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 47, + "ino": "16253104", + "metadata": { + "filename": "46 - Chapter 46.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/46 - Chapter 46.mp3", + "relPath": "46 - Chapter 46.mp3", + "size": 10875655, + "mtimeMs": 1673790547379, + "ctimeMs": 1673790547379, + "birthtimeMs": 1673790470650 + }, + "addedAt": 1673790492400, + "updatedAt": 1673790492400, + "trackNumFromMeta": 46, + "discNumFromMeta": null, + "trackNumFromFilename": 46, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 902.556735, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 46: The Bastion Saint-Gervais", + "tagTrack": "46", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 48, + "ino": "16253119", + "metadata": { + "filename": "47 - Chapter 47.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/47 - Chapter 47.mp3", + "relPath": "47 - Chapter 47.mp3", + "size": 27232174, + "mtimeMs": 1673790599753, + "ctimeMs": 1673790599753, + "birthtimeMs": 1673790476941 + }, + "addedAt": 1673790493533, + "updatedAt": 1673790493533, + "trackNumFromMeta": 47, + "discNumFromMeta": null, + "trackNumFromFilename": 47, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 2265.6, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 47: The Council of the Musketeers", + "tagTrack": "47", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 49, + "ino": "16253079", + "metadata": { + "filename": "48 - Chapter 48.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/48 - Chapter 48.mp3", + "relPath": "48 - Chapter 48.mp3", + "size": 25526901, + "mtimeMs": 1673790598340, + "ctimeMs": 1673790598340, + "birthtimeMs": 1673790461435 + }, + "addedAt": 1673790468746, + "updatedAt": 1673790468746, + "trackNumFromMeta": 48, + "discNumFromMeta": null, + "trackNumFromFilename": 48, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 2123.493878, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 48: A Family Affair", + "tagTrack": "48", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 50, + "ino": "16253147", + "metadata": { + "filename": "49 - Chapter 49.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/49 - Chapter 49.mp3", + "relPath": "49 - Chapter 49.mp3", + "size": 13969598, + "mtimeMs": 1673790598468, + "ctimeMs": 1673790598468, + "birthtimeMs": 1673790500344 + }, + "addedAt": 1673790516601, + "updatedAt": 1673790516601, + "trackNumFromMeta": 49, + "discNumFromMeta": null, + "trackNumFromFilename": 49, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1160.385306, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 49: Fatality", + "tagTrack": "49", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 51, + "ino": "16253087", + "metadata": { + "filename": "50 - Chapter 50.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/50 - Chapter 50.mp3", + "relPath": "50 - Chapter 50.mp3", + "size": 14442623, + "mtimeMs": 1673790591030, + "ctimeMs": 1673790591030, + "birthtimeMs": 1673790463255 + }, + "addedAt": 1673790468414, + "updatedAt": 1673790468414, + "trackNumFromMeta": 50, + "discNumFromMeta": null, + "trackNumFromFilename": 50, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1199.804082, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 50: Chat Between Brother and Sister", + "tagTrack": "50", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 52, + "ino": "16253165", + "metadata": { + "filename": "51 - Chapter 51.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/51 - Chapter 51.mp3", + "relPath": "51 - Chapter 51.mp3", + "size": 19944638, + "mtimeMs": 1673790585639, + "ctimeMs": 1673790585639, + "birthtimeMs": 1673790521630 + }, + "addedAt": 1673790536479, + "updatedAt": 1673790536479, + "trackNumFromMeta": 51, + "discNumFromMeta": null, + "trackNumFromFilename": 51, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1658.305306, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 51: Officer", + "tagTrack": "51", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 53, + "ino": "16253131", + "metadata": { + "filename": "52 - Chapter 52.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/52 - Chapter 52.mp3", + "relPath": "52 - Chapter 52.mp3", + "size": 12830450, + "mtimeMs": 1673790578894, + "ctimeMs": 1673790578894, + "birthtimeMs": 1673790482842 + }, + "addedAt": 1673790492645, + "updatedAt": 1673790492645, + "trackNumFromMeta": 52, + "discNumFromMeta": null, + "trackNumFromFilename": 52, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1065.456327, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 52: Captivity: The First Day", + "tagTrack": "52", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 54, + "ino": "16253173", + "metadata": { + "filename": "53 - Chapter 53.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/53 - Chapter 53.mp3", + "relPath": "53 - Chapter 53.mp3", + "size": 12758665, + "mtimeMs": 1673790582093, + "ctimeMs": 1673790582093, + "birthtimeMs": 1673790541118 + }, + "addedAt": 1673790552589, + "updatedAt": 1673790552589, + "trackNumFromMeta": 53, + "discNumFromMeta": null, + "trackNumFromFilename": 53, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1059.474286, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 53: Captivity: The Second Day", + "tagTrack": "53", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 55, + "ino": "16253097", + "metadata": { + "filename": "54 - Chapter 54.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/54 - Chapter 54.mp3", + "relPath": "54 - Chapter 54.mp3", + "size": 17345036, + "mtimeMs": 1673790599548, + "ctimeMs": 1673790599548, + "birthtimeMs": 1673790466716 + }, + "addedAt": 1673790493454, + "updatedAt": 1673790493454, + "trackNumFromMeta": 54, + "discNumFromMeta": null, + "trackNumFromFilename": 54, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1441.671837, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 54: Captivity: The Third Day", + "tagTrack": "54", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 56, + "ino": "16253094", + "metadata": { + "filename": "55 - Chapter 55.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/55 - Chapter 55.mp3", + "relPath": "55 - Chapter 55.mp3", + "size": 16482368, + "mtimeMs": 1673790536535, + "ctimeMs": 1673790536535, + "birthtimeMs": 1673790465652 + }, + "addedAt": 1673790468826, + "updatedAt": 1673790468826, + "trackNumFromMeta": 55, + "discNumFromMeta": null, + "trackNumFromFilename": 55, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1369.782857, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 55: Captivity: The Fourth Day", + "tagTrack": "55", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 57, + "ino": "16253107", + "metadata": { + "filename": "56 - Chapter 56.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/56 - Chapter 56.mp3", + "relPath": "56 - Chapter 56.mp3", + "size": 29367841, + "mtimeMs": 1673790603410, + "ctimeMs": 1673790603410, + "birthtimeMs": 1673790473156 + }, + "addedAt": 1673790493637, + "updatedAt": 1673790493637, + "trackNumFromMeta": 56, + "discNumFromMeta": null, + "trackNumFromFilename": 56, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 2443.572245, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 56: Captivity: The Fifth Day", + "tagTrack": "56", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 58, + "ino": "16253146", + "metadata": { + "filename": "57 - Chapter 57.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/57 - Chapter 57.mp3", + "relPath": "57 - Chapter 57.mp3", + "size": 12799730, + "mtimeMs": 1673790599767, + "ctimeMs": 1673790599767, + "birthtimeMs": 1673790496061 + }, + "addedAt": 1673790516443, + "updatedAt": 1673790516443, + "trackNumFromMeta": 57, + "discNumFromMeta": null, + "trackNumFromFilename": 57, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1062.896327, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 57: Means for Classical Tragedy", + "tagTrack": "57", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 59, + "ino": "16253129", + "metadata": { + "filename": "58 - Chapter 58.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/58 - Chapter 58.mp3", + "relPath": "58 - Chapter 58.mp3", + "size": 13576821, + "mtimeMs": 1673790541111, + "ctimeMs": 1673790541111, + "birthtimeMs": 1673790481289 + }, + "addedAt": 1673790493669, + "updatedAt": 1673790493669, + "trackNumFromMeta": 58, + "discNumFromMeta": null, + "trackNumFromFilename": 58, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1127.653878, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 58: Escape", + "tagTrack": "58", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 60, + "ino": "16253152", + "metadata": { + "filename": "59 - Chapter 59.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/59 - Chapter 59.mp3", + "relPath": "59 - Chapter 59.mp3", + "size": 18807998, + "mtimeMs": 1673790599634, + "ctimeMs": 1673790599634, + "birthtimeMs": 1673790504658 + }, + "addedAt": 1673790515263, + "updatedAt": 1673790515263, + "trackNumFromMeta": 59, + "discNumFromMeta": null, + "trackNumFromFilename": 59, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1563.585306, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 59: What Took Place at Portsmouth", + "tagTrack": "59", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 61, + "ino": "16253175", + "metadata": { + "filename": "60 - Chapter 60.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/60 - Chapter 60.mp3", + "relPath": "60 - Chapter 60.mp3", + "size": 9700145, + "mtimeMs": 1673790591314, + "ctimeMs": 1673790591314, + "birthtimeMs": 1673790563838 + }, + "addedAt": 1673790571225, + "updatedAt": 1673790571225, + "trackNumFromMeta": 60, + "discNumFromMeta": null, + "trackNumFromFilename": 60, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 804.597551, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 60: In France", + "tagTrack": "60", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 62, + "ino": "16253137", + "metadata": { + "filename": "61 - Chapter 61.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/61 - Chapter 61.mp3", + "relPath": "61 - Chapter 61.mp3", + "size": 23300641, + "mtimeMs": 1673790576851, + "ctimeMs": 1673790576851, + "birthtimeMs": 1673790486173 + }, + "addedAt": 1673790493256, + "updatedAt": 1673790493256, + "trackNumFromMeta": 61, + "discNumFromMeta": null, + "trackNumFromFilename": 61, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1937.972245, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 61: The Carmelite Convent at Bethune", + "tagTrack": "61", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 63, + "ino": "16253123", + "metadata": { + "filename": "62 - Chapter 62.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/62 - Chapter 62.mp3", + "relPath": "62 - Chapter 62.mp3", + "size": 7802087, + "mtimeMs": 1673790596585, + "ctimeMs": 1673790596585, + "birthtimeMs": 1673790478109 + }, + "addedAt": 1673790492741, + "updatedAt": 1673790492741, + "trackNumFromMeta": 62, + "discNumFromMeta": null, + "trackNumFromFilename": 62, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 646.426122, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 62: Two Varieties of Demons", + "tagTrack": "62", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 64, + "ino": "16253142", + "metadata": { + "filename": "63 - Chapter 63.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/63 - Chapter 63.mp3", + "relPath": "63 - Chapter 63.mp3", + "size": 25145408, + "mtimeMs": 1673790563722, + "ctimeMs": 1673790563722, + "birthtimeMs": 1673790490517 + }, + "addedAt": 1673790516640, + "updatedAt": 1673790516640, + "trackNumFromMeta": 63, + "discNumFromMeta": null, + "trackNumFromFilename": 63, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 2091.702857, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 63: The Drop of Water", + "tagTrack": "63", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 65, + "ino": "16253053", + "metadata": { + "filename": "64 - Chapter 64.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/64 - Chapter 64.mp3", + "relPath": "64 - Chapter 64.mp3", + "size": 10182261, + "mtimeMs": 1673790595403, + "ctimeMs": 1673790595403, + "birthtimeMs": 1673790453273 + }, + "addedAt": 1673790467858, + "updatedAt": 1673790467858, + "trackNumFromMeta": 64, + "discNumFromMeta": null, + "trackNumFromFilename": 64, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 844.773878, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 64: The Man in the Red Cloak", + "tagTrack": "64", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 66, + "ino": "16253167", + "metadata": { + "filename": "65 - Chapter 65.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/65 - Chapter 65.mp3", + "relPath": "65 - Chapter 65.mp3", + "size": 15652615, + "mtimeMs": 1673790599679, + "ctimeMs": 1673790599679, + "birthtimeMs": 1673790529377 + }, + "addedAt": 1673790544453, + "updatedAt": 1673790544453, + "trackNumFromMeta": 65, + "discNumFromMeta": null, + "trackNumFromFilename": 65, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1300.636735, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 65: Trial", + "tagTrack": "65", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 67, + "ino": "16253180", + "metadata": { + "filename": "66 - Chapter 66.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/66 - Chapter 66.mp3", + "relPath": "66 - Chapter 66.mp3", + "size": 9551560, + "mtimeMs": 1673790596429, + "ctimeMs": 1673790596429, + "birthtimeMs": 1673790591310 + }, + "addedAt": 1673790613587, + "updatedAt": 1673790613587, + "trackNumFromMeta": 66, + "discNumFromMeta": null, + "trackNumFromFilename": 66, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 792.21551, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 66: Execution", + "tagTrack": "66", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 68, + "ino": "16253106", + "metadata": { + "filename": "67 - Chapter 67.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/67 - Chapter 67.mp3", + "relPath": "67 - Chapter 67.mp3", + "size": 16367012, + "mtimeMs": 1673790598559, + "ctimeMs": 1673790598559, + "birthtimeMs": 1673790472445 + }, + "addedAt": 1673790490234, + "updatedAt": 1673790490234, + "trackNumFromMeta": 67, + "discNumFromMeta": null, + "trackNumFromFilename": 67, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 1360.169796, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Chapter 67: Conclusion", + "tagTrack": "67", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + }, + { + "index": 69, + "ino": "16253160", + "metadata": { + "filename": "68 - Epilogue.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/68 - Epilogue.mp3", + "relPath": "68 - Epilogue.mp3", + "size": 2662400, + "mtimeMs": 1673790516356, + "ctimeMs": 1673790516356, + "birthtimeMs": 1673790515786 + }, + "addedAt": 1673790523887, + "updatedAt": 1673790523887, + "trackNumFromMeta": 68, + "discNumFromMeta": null, + "trackNumFromFilename": 68, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 221.857959, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": "mjpeg", + "metaTags": { + "tagAlbum": "The Three Musketeers", + "tagArtist": "Alexandre Dumas", + "tagTitle": "Epilogue", + "tagTrack": "68", + "tagAlbumArtist": "Alexandre Dumas", + "tagDate": "2014", + "tagPublisher": "Naxos AudioBooks", + "tagComment": "Romance, treachery, courage...The Three Musketeers has it all! In one of the greatest adventure stories ever written, the dashing young swordsman D'Artagnan and his daredevil companions Athos, Aramis, and Porthos, become embroiled in duels, love-tangles, and sinister intrigues which threaten the future of King, Queen, and France herself.\r\n\r\nDownload the accompanying reference guide.\r\nhttp://download.audible.com/product_related_docs/BK_NAXO_001238.pdf\r\n\r\nPublic Domain (P)2014 Naxos AudioBooks" + }, + "mimeType": "audio/mpeg" + } + ], + "chapters": [ + { + "id": 0, + "start": 0, + "end": 2327.980408, + "title": "00 - Intro" + }, + { + "id": 1, + "start": 2327.980408, + "end": 4646.9592410000005, + "title": "01 - Chapter 1" + }, + { + "id": 2, + "start": 4646.9592410000005, + "end": 6186.015568000001, + "title": "02 - Chapter 2" + }, + { + "id": 3, + "start": 6186.015568000001, + "end": 7800.487405000001, + "title": "03 - Chapter 3" + }, + { + "id": 4, + "start": 7800.487405000001, + "end": 8906.407405000002, + "title": "04 - Chapter 4" + }, + { + "id": 5, + "start": 8906.407405000002, + "end": 10333.868629000002, + "title": "05 - Chapter 5" + }, + { + "id": 6, + "start": 10333.868629000002, + "end": 12975.866996000002, + "title": "06 - Chapter 6" + }, + { + "id": 7, + "start": 12975.866996000002, + "end": 14245.339649000003, + "title": "07 - Chapter 7" + }, + { + "id": 8, + "start": 14245.339649000003, + "end": 15310.613118000003, + "title": "08 - Chapter 8" + }, + { + "id": 9, + "start": 15310.613118000003, + "end": 16347.386996000003, + "title": "09 - Chapter 9" + }, + { + "id": 10, + "start": 16347.386996000003, + "end": 17606.306180000003, + "title": "10 - Chapter 10" + }, + { + "id": 11, + "start": 17606.306180000003, + "end": 19862.397609000003, + "title": "11 - Chapter 11" + }, + { + "id": 12, + "start": 19862.397609000003, + "end": 21184.768221000002, + "title": "12 - Chapter 12" + }, + { + "id": 13, + "start": 21184.768221000002, + "end": 22417.512711000003, + "title": "13 - Chapter 13" + }, + { + "id": 14, + "start": 22417.512711000003, + "end": 23700.725772, + "title": "14 - Chapter 14" + }, + { + "id": 15, + "start": 23700.725772, + "end": 24774.044956, + "title": "15 - Chapter 15" + }, + { + "id": 16, + "start": 24774.044956, + "end": 26404.503732, + "title": "16 - Chapter 16" + }, + { + "id": 17, + "start": 26404.503732, + "end": 28218.159242, + "title": "17 - Chapter 17" + }, + { + "id": 18, + "start": 28218.159242, + "end": 29084.536385000003, + "title": "18 - Chapter 18" + }, + { + "id": 19, + "start": 29084.536385000003, + "end": 30151.429446000002, + "title": "19 - Chapter 19" + }, + { + "id": 20, + "start": 30151.429446000002, + "end": 31596.157609, + "title": "20 - Chapter 20" + }, + { + "id": 21, + "start": 31596.157609, + "end": 32895.618833, + "title": "21 - Chapter 21" + }, + { + "id": 22, + "start": 32895.618833, + "end": 33903.26618, + "title": "22 - Chapter 22" + }, + { + "id": 23, + "start": 33903.26618, + "end": 35361.29067, + "title": "23 - Chapter 23" + }, + { + "id": 24, + "start": 35361.29067, + "end": 36782.717609, + "title": "24 - Chapter 24" + }, + { + "id": 25, + "start": 36782.717609, + "end": 39286.658833, + "title": "25 - Chapter 25" + }, + { + "id": 26, + "start": 39286.658833, + "end": 41723.543731, + "title": "26 - Chapter 26" + }, + { + "id": 27, + "start": 41723.543731, + "end": 44319.723323, + "title": "27 - Chapter 27" + }, + { + "id": 28, + "start": 44319.723323, + "end": 46145.029445, + "title": "28 - Chapter 28" + }, + { + "id": 29, + "start": 46145.029445, + "end": 47342.430261, + "title": "29 - Chapter 29" + }, + { + "id": 30, + "start": 47342.430261, + "end": 48301.829445, + "title": "30 - Chapter 30" + }, + { + "id": 31, + "start": 48301.829445, + "end": 49332.647404, + "title": "31 - Chapter 31" + }, + { + "id": 32, + "start": 49332.647404, + "end": 50709.24822, + "title": "32 - Chapter 32" + }, + { + "id": 33, + "start": 50709.24822, + "end": 51960.513526, + "title": "33 - Chapter 33" + }, + { + "id": 34, + "start": 51960.513526, + "end": 53151.514342, + "title": "34 - Chapter 34" + }, + { + "id": 35, + "start": 53151.514342, + "end": 54247.821281000004, + "title": "35 - Chapter 35" + }, + { + "id": 36, + "start": 54247.821281000004, + "end": 55279.187812000004, + "title": "36 - Chapter 36" + }, + { + "id": 37, + "start": 55279.187812000004, + "end": 56244.020465, + "title": "37 - Chapter 37" + }, + { + "id": 38, + "start": 56244.020465, + "end": 57431.102914, + "title": "38 - Chapter 38" + }, + { + "id": 39, + "start": 57431.102914, + "end": 58650.838424, + "title": "39 - Chapter 39" + }, + { + "id": 40, + "start": 58650.838424, + "end": 59788.523322, + "title": "40 - Chapter 40" + }, + { + "id": 41, + "start": 59788.523322, + "end": 61552.859649, + "title": "41 - Chapter 41" + }, + { + "id": 42, + "start": 61552.859649, + "end": 62632.265363, + "title": "42 - Chapter 42" + }, + { + "id": 43, + "start": 62632.265363, + "end": 63798.214751, + "title": "43 - Chapter 43" + }, + { + "id": 44, + "start": 63798.214751, + "end": 65032.44822, + "title": "44 - Chapter 44" + }, + { + "id": 45, + "start": 65032.44822, + "end": 65925.705363, + "title": "45 - Chapter 45" + }, + { + "id": 46, + "start": 65925.705363, + "end": 66828.262098, + "title": "46 - Chapter 46" + }, + { + "id": 47, + "start": 66828.262098, + "end": 69093.86209800001, + "title": "47 - Chapter 47" + }, + { + "id": 48, + "start": 69093.86209800001, + "end": 71217.355976, + "title": "48 - Chapter 48" + }, + { + "id": 49, + "start": 71217.355976, + "end": 72377.741282, + "title": "49 - Chapter 49" + }, + { + "id": 50, + "start": 72377.741282, + "end": 73577.545364, + "title": "50 - Chapter 50" + }, + { + "id": 51, + "start": 73577.545364, + "end": 75235.85067, + "title": "51 - Chapter 51" + }, + { + "id": 52, + "start": 75235.85067, + "end": 76301.306997, + "title": "52 - Chapter 52" + }, + { + "id": 53, + "start": 76301.306997, + "end": 77360.781283, + "title": "53 - Chapter 53" + }, + { + "id": 54, + "start": 77360.781283, + "end": 78802.45312, + "title": "54 - Chapter 54" + }, + { + "id": 55, + "start": 78802.45312, + "end": 80172.235977, + "title": "55 - Chapter 55" + }, + { + "id": 56, + "start": 80172.235977, + "end": 82615.808222, + "title": "56 - Chapter 56" + }, + { + "id": 57, + "start": 82615.808222, + "end": 83678.704549, + "title": "57 - Chapter 57" + }, + { + "id": 58, + "start": 83678.704549, + "end": 84806.358427, + "title": "58 - Chapter 58" + }, + { + "id": 59, + "start": 84806.358427, + "end": 86369.943733, + "title": "59 - Chapter 59" + }, + { + "id": 60, + "start": 86369.943733, + "end": 87174.54128399999, + "title": "60 - Chapter 60" + }, + { + "id": 61, + "start": 87174.54128399999, + "end": 89112.51352899999, + "title": "61 - Chapter 61" + }, + { + "id": 62, + "start": 89112.51352899999, + "end": 89758.939651, + "title": "62 - Chapter 62" + }, + { + "id": 63, + "start": 89758.939651, + "end": 91850.64250799999, + "title": "63 - Chapter 63" + }, + { + "id": 64, + "start": 91850.64250799999, + "end": 92695.416386, + "title": "64 - Chapter 64" + }, + { + "id": 65, + "start": 92695.416386, + "end": 93996.053121, + "title": "65 - Chapter 65" + }, + { + "id": 66, + "start": 93996.053121, + "end": 94788.268631, + "title": "66 - Chapter 66" + }, + { + "id": 67, + "start": 94788.268631, + "end": 96148.438427, + "title": "67 - Chapter 67" + }, + { + "id": 68, + "start": 96148.438427, + "end": 96370.296386, + "title": "68 - Epilogue" + } + ], + "missingParts": [], + "ebookFile": null + }, + "libraryFiles": [ + { + "ino": "16253052", + "metadata": { + "filename": "11 - Chapter 11.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/11 - Chapter 11.mp3", + "relPath": "11 - Chapter 11.mp3", + "size": 27118071, + "mtimeMs": 1673790593800, + "ctimeMs": 1673790593800, + "birthtimeMs": 1673790452510 + }, + "addedAt": 1673790466053, + "updatedAt": 1673790466053, + "fileType": "audio" + }, + { + "ino": "16253092", + "metadata": { + "filename": "16 - Chapter 16.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/16 - Chapter 16.mp3", + "relPath": "16 - Chapter 16.mp3", + "size": 19610479, + "mtimeMs": 1673790597609, + "ctimeMs": 1673790597609, + "birthtimeMs": 1673790465022 + }, + "addedAt": 1673790466053, + "updatedAt": 1673790466053, + "fileType": "audio" + }, + { + "ino": "16253079", + "metadata": { + "filename": "48 - Chapter 48.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/48 - Chapter 48.mp3", + "relPath": "48 - Chapter 48.mp3", + "size": 25526901, + "mtimeMs": 1673790598340, + "ctimeMs": 1673790598340, + "birthtimeMs": 1673790461435 + }, + "addedAt": 1673790466054, + "updatedAt": 1673790466054, + "fileType": "audio" + }, + { + "ino": "16253087", + "metadata": { + "filename": "50 - Chapter 50.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/50 - Chapter 50.mp3", + "relPath": "50 - Chapter 50.mp3", + "size": 14442623, + "mtimeMs": 1673790591030, + "ctimeMs": 1673790591030, + "birthtimeMs": 1673790463255 + }, + "addedAt": 1673790466054, + "updatedAt": 1673790466054, + "fileType": "audio" + }, + { + "ino": "16253094", + "metadata": { + "filename": "55 - Chapter 55.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/55 - Chapter 55.mp3", + "relPath": "55 - Chapter 55.mp3", + "size": 16482368, + "mtimeMs": 1673790536535, + "ctimeMs": 1673790536535, + "birthtimeMs": 1673790465652 + }, + "addedAt": 1673790466054, + "updatedAt": 1673790466054, + "fileType": "audio" + }, + { + "ino": "16253053", + "metadata": { + "filename": "64 - Chapter 64.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/64 - Chapter 64.mp3", + "relPath": "64 - Chapter 64.mp3", + "size": 10182261, + "mtimeMs": 1673790595403, + "ctimeMs": 1673790595403, + "birthtimeMs": 1673790453273 + }, + "addedAt": 1673790466054, + "updatedAt": 1673790466054, + "fileType": "audio" + }, + { + "ino": "16253096", + "metadata": { + "filename": "03 - Chapter 3.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/03 - Chapter 3.mp3", + "relPath": "03 - Chapter 3.mp3", + "size": 19418634, + "mtimeMs": 1673790595606, + "ctimeMs": 1673790595606, + "birthtimeMs": 1673790466237 + }, + "addedAt": 1673790486272, + "updatedAt": 1673790486272, + "fileType": "audio" + }, + { + "ino": "16253130", + "metadata": { + "filename": "04 - Chapter 4.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/04 - Chapter 4.mp3", + "relPath": "04 - Chapter 4.mp3", + "size": 13316012, + "mtimeMs": 1673790572964, + "ctimeMs": 1673790572964, + "birthtimeMs": 1673790481412 + }, + "addedAt": 1673790486273, + "updatedAt": 1673790486273, + "fileType": "audio" + }, + { + "ino": "16253116", + "metadata": { + "filename": "06 - Chapter 6.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/06 - Chapter 6.mp3", + "relPath": "06 - Chapter 6.mp3", + "size": 31748952, + "mtimeMs": 1673790591490, + "ctimeMs": 1673790591490, + "birthtimeMs": 1673790475934 + }, + "addedAt": 1673790486273, + "updatedAt": 1673790486273, + "fileType": "audio" + }, + { + "ino": "16253124", + "metadata": { + "filename": "13 - Chapter 13.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/13 - Chapter 13.mp3", + "relPath": "13 - Chapter 13.mp3", + "size": 14837908, + "mtimeMs": 1673790554449, + "ctimeMs": 1673790554449, + "birthtimeMs": 1673790478121 + }, + "addedAt": 1673790486274, + "updatedAt": 1673790486274, + "fileType": "audio" + }, + { + "ino": "16253133", + "metadata": { + "filename": "20 - Chapter 20.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/20 - Chapter 20.mp3", + "relPath": "20 - Chapter 20.mp3", + "size": 17381712, + "mtimeMs": 1673790588874, + "ctimeMs": 1673790588874, + "birthtimeMs": 1673790484724 + }, + "addedAt": 1673790486274, + "updatedAt": 1673790486274, + "fileType": "audio" + }, + { + "ino": "16253101", + "metadata": { + "filename": "21 - Chapter 21.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/21 - Chapter 21.mp3", + "relPath": "21 - Chapter 21.mp3", + "size": 15638509, + "mtimeMs": 1673790585611, + "ctimeMs": 1673790585611, + "birthtimeMs": 1673790468381 + }, + "addedAt": 1673790486274, + "updatedAt": 1673790486274, + "fileType": "audio" + }, + { + "ino": "16253132", + "metadata": { + "filename": "23 - Chapter 23.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/23 - Chapter 23.mp3", + "relPath": "23 - Chapter 23.mp3", + "size": 17541268, + "mtimeMs": 1673790591737, + "ctimeMs": 1673790591737, + "birthtimeMs": 1673790483924 + }, + "addedAt": 1673790486275, + "updatedAt": 1673790486275, + "fileType": "audio" + }, + { + "ino": "16253103", + "metadata": { + "filename": "27 - Chapter 27.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/27 - Chapter 27.mp3", + "relPath": "27 - Chapter 27.mp3", + "size": 31199129, + "mtimeMs": 1673790598428, + "ctimeMs": 1673790598428, + "birthtimeMs": 1673790470450 + }, + "addedAt": 1673790486275, + "updatedAt": 1673790486275, + "fileType": "audio" + }, + { + "ino": "16253113", + "metadata": { + "filename": "29 - Chapter 29.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/29 - Chapter 29.mp3", + "relPath": "29 - Chapter 29.mp3", + "size": 14413784, + "mtimeMs": 1673790545653, + "ctimeMs": 1673790545653, + "birthtimeMs": 1673790475313 + }, + "addedAt": 1673790486275, + "updatedAt": 1673790486275, + "fileType": "audio" + }, + { + "ino": "16253111", + "metadata": { + "filename": "33 - Chapter 33.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/33 - Chapter 33.mp3", + "relPath": "33 - Chapter 33.mp3", + "size": 15060158, + "mtimeMs": 1673790574763, + "ctimeMs": 1673790574763, + "birthtimeMs": 1673790474333 + }, + "addedAt": 1673790486275, + "updatedAt": 1673790486275, + "fileType": "audio" + }, + { + "ino": "16253105", + "metadata": { + "filename": "37 - Chapter 37.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/37 - Chapter 37.mp3", + "relPath": "37 - Chapter 37.mp3", + "size": 11622966, + "mtimeMs": 1673790597606, + "ctimeMs": 1673790597606, + "birthtimeMs": 1673790470733 + }, + "addedAt": 1673790486275, + "updatedAt": 1673790486275, + "fileType": "audio" + }, + { + "ino": "16253135", + "metadata": { + "filename": "39 - Chapter 39.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/39 - Chapter 39.mp3", + "relPath": "39 - Chapter 39.mp3", + "size": 14681800, + "mtimeMs": 1673790586641, + "ctimeMs": 1673790586641, + "birthtimeMs": 1673790485850 + }, + "addedAt": 1673790486276, + "updatedAt": 1673790486276, + "fileType": "audio" + }, + { + "ino": "16253102", + "metadata": { + "filename": "43 - Chapter 43.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/43 - Chapter 43.mp3", + "relPath": "43 - Chapter 43.mp3", + "size": 14036367, + "mtimeMs": 1673790599753, + "ctimeMs": 1673790599753, + "birthtimeMs": 1673790469610 + }, + "addedAt": 1673790486276, + "updatedAt": 1673790486276, + "fileType": "audio" + }, + { + "ino": "16253104", + "metadata": { + "filename": "46 - Chapter 46.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/46 - Chapter 46.mp3", + "relPath": "46 - Chapter 46.mp3", + "size": 10875655, + "mtimeMs": 1673790547379, + "ctimeMs": 1673790547379, + "birthtimeMs": 1673790470650 + }, + "addedAt": 1673790486276, + "updatedAt": 1673790486276, + "fileType": "audio" + }, + { + "ino": "16253119", + "metadata": { + "filename": "47 - Chapter 47.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/47 - Chapter 47.mp3", + "relPath": "47 - Chapter 47.mp3", + "size": 27232174, + "mtimeMs": 1673790599753, + "ctimeMs": 1673790599753, + "birthtimeMs": 1673790476941 + }, + "addedAt": 1673790486276, + "updatedAt": 1673790486276, + "fileType": "audio" + }, + { + "ino": "16253131", + "metadata": { + "filename": "52 - Chapter 52.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/52 - Chapter 52.mp3", + "relPath": "52 - Chapter 52.mp3", + "size": 12830450, + "mtimeMs": 1673790578894, + "ctimeMs": 1673790578894, + "birthtimeMs": 1673790482842 + }, + "addedAt": 1673790486277, + "updatedAt": 1673790486277, + "fileType": "audio" + }, + { + "ino": "16253097", + "metadata": { + "filename": "54 - Chapter 54.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/54 - Chapter 54.mp3", + "relPath": "54 - Chapter 54.mp3", + "size": 17345036, + "mtimeMs": 1673790599548, + "ctimeMs": 1673790599548, + "birthtimeMs": 1673790466716 + }, + "addedAt": 1673790486277, + "updatedAt": 1673790486277, + "fileType": "audio" + }, + { + "ino": "16253107", + "metadata": { + "filename": "56 - Chapter 56.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/56 - Chapter 56.mp3", + "relPath": "56 - Chapter 56.mp3", + "size": 29367841, + "mtimeMs": 1673790603410, + "ctimeMs": 1673790603410, + "birthtimeMs": 1673790473156 + }, + "addedAt": 1673790486278, + "updatedAt": 1673790486278, + "fileType": "audio" + }, + { + "ino": "16253129", + "metadata": { + "filename": "58 - Chapter 58.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/58 - Chapter 58.mp3", + "relPath": "58 - Chapter 58.mp3", + "size": 13576821, + "mtimeMs": 1673790541111, + "ctimeMs": 1673790541111, + "birthtimeMs": 1673790481289 + }, + "addedAt": 1673790486279, + "updatedAt": 1673790486279, + "fileType": "audio" + }, + { + "ino": "16253137", + "metadata": { + "filename": "61 - Chapter 61.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/61 - Chapter 61.mp3", + "relPath": "61 - Chapter 61.mp3", + "size": 23300641, + "mtimeMs": 1673790576851, + "ctimeMs": 1673790576851, + "birthtimeMs": 1673790486173 + }, + "addedAt": 1673790486279, + "updatedAt": 1673790486279, + "fileType": "audio" + }, + { + "ino": "16253123", + "metadata": { + "filename": "62 - Chapter 62.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/62 - Chapter 62.mp3", + "relPath": "62 - Chapter 62.mp3", + "size": 7802087, + "mtimeMs": 1673790596585, + "ctimeMs": 1673790596585, + "birthtimeMs": 1673790478109 + }, + "addedAt": 1673790486280, + "updatedAt": 1673790486280, + "fileType": "audio" + }, + { + "ino": "16253106", + "metadata": { + "filename": "67 - Chapter 67.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/67 - Chapter 67.mp3", + "relPath": "67 - Chapter 67.mp3", + "size": 16367012, + "mtimeMs": 1673790598559, + "ctimeMs": 1673790598559, + "birthtimeMs": 1673790472445 + }, + "addedAt": 1673790486282, + "updatedAt": 1673790486282, + "fileType": "audio" + }, + { + "ino": "16253150", + "metadata": { + "filename": "02 - Chapter 2.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/02 - Chapter 2.mp3", + "relPath": "02 - Chapter 2.mp3", + "size": 18513648, + "mtimeMs": 1673790591156, + "ctimeMs": 1673790591156, + "birthtimeMs": 1673790503249 + }, + "addedAt": 1673790507327, + "updatedAt": 1673790507327, + "fileType": "audio" + }, + { + "ino": "16253154", + "metadata": { + "filename": "07 - Chapter 7.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/07 - Chapter 7.mp3", + "relPath": "07 - Chapter 7.mp3", + "size": 15278644, + "mtimeMs": 1673790591175, + "ctimeMs": 1673790591175, + "birthtimeMs": 1673790506641 + }, + "addedAt": 1673790507330, + "updatedAt": 1673790507330, + "fileType": "audio" + }, + { + "ino": "16253138", + "metadata": { + "filename": "08 - Chapter 8.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/08 - Chapter 8.mp3", + "relPath": "08 - Chapter 8.mp3", + "size": 12828254, + "mtimeMs": 1673790527479, + "ctimeMs": 1673790527479, + "birthtimeMs": 1673790487007 + }, + "addedAt": 1673790507330, + "updatedAt": 1673790507330, + "fileType": "audio" + }, + { + "ino": "16253145", + "metadata": { + "filename": "12 - Chapter 12.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/12 - Chapter 12.mp3", + "relPath": "12 - Chapter 12.mp3", + "size": 15913421, + "mtimeMs": 1673790588004, + "ctimeMs": 1673790588004, + "birthtimeMs": 1673790494263 + }, + "addedAt": 1673790507331, + "updatedAt": 1673790507331, + "fileType": "audio" + }, + { + "ino": "16253143", + "metadata": { + "filename": "19 - Chapter 19.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/19 - Chapter 19.mp3", + "relPath": "19 - Chapter 19.mp3", + "size": 12847691, + "mtimeMs": 1673790581644, + "ctimeMs": 1673790581644, + "birthtimeMs": 1673790493305 + }, + "addedAt": 1673790507331, + "updatedAt": 1673790507331, + "fileType": "audio" + }, + { + "ino": "16253149", + "metadata": { + "filename": "25 - Chapter 25.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/25 - Chapter 25.mp3", + "relPath": "25 - Chapter 25.mp3", + "size": 30092269, + "mtimeMs": 1673790596501, + "ctimeMs": 1673790596501, + "birthtimeMs": 1673790502283 + }, + "addedAt": 1673790507331, + "updatedAt": 1673790507331, + "fileType": "audio" + }, + { + "ino": "16253140", + "metadata": { + "filename": "26 - Chapter 26.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/26 - Chapter 26.mp3", + "relPath": "26 - Chapter 26.mp3", + "size": 29287593, + "mtimeMs": 1673790596991, + "ctimeMs": 1673790596991, + "birthtimeMs": 1673790488273 + }, + "addedAt": 1673790507331, + "updatedAt": 1673790507331, + "fileType": "audio" + }, + { + "ino": "16253141", + "metadata": { + "filename": "28 - Chapter 28.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/28 - Chapter 28.mp3", + "relPath": "28 - Chapter 28.mp3", + "size": 21948647, + "mtimeMs": 1673790582242, + "ctimeMs": 1673790582242, + "birthtimeMs": 1673790489486 + }, + "addedAt": 1673790507332, + "updatedAt": 1673790507332, + "fileType": "audio" + }, + { + "ino": "16253144", + "metadata": { + "filename": "30 - Chapter 30.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/30 - Chapter 30.mp3", + "relPath": "30 - Chapter 30.mp3", + "size": 11557764, + "mtimeMs": 1673790527882, + "ctimeMs": 1673790527882, + "birthtimeMs": 1673790494015 + }, + "addedAt": 1673790507332, + "updatedAt": 1673790507332, + "fileType": "audio" + }, + { + "ino": "16253151", + "metadata": { + "filename": "32 - Chapter 32.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/32 - Chapter 32.mp3", + "relPath": "32 - Chapter 32.mp3", + "size": 16564184, + "mtimeMs": 1673790595243, + "ctimeMs": 1673790595243, + "birthtimeMs": 1673790503588 + }, + "addedAt": 1673790507332, + "updatedAt": 1673790507332, + "fileType": "audio" + }, + { + "ino": "16253148", + "metadata": { + "filename": "40 - Chapter 40.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/40 - Chapter 40.mp3", + "relPath": "40 - Chapter 40.mp3", + "size": 13697193, + "mtimeMs": 1673790577677, + "ctimeMs": 1673790577677, + "birthtimeMs": 1673790501375 + }, + "addedAt": 1673790507333, + "updatedAt": 1673790507333, + "fileType": "audio" + }, + { + "ino": "16253153", + "metadata": { + "filename": "45 - Chapter 45.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/45 - Chapter 45.mp3", + "relPath": "45 - Chapter 45.mp3", + "size": 10764060, + "mtimeMs": 1673790594274, + "ctimeMs": 1673790594274, + "birthtimeMs": 1673790506439 + }, + "addedAt": 1673790507333, + "updatedAt": 1673790507333, + "fileType": "audio" + }, + { + "ino": "16253147", + "metadata": { + "filename": "49 - Chapter 49.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/49 - Chapter 49.mp3", + "relPath": "49 - Chapter 49.mp3", + "size": 13969598, + "mtimeMs": 1673790598468, + "ctimeMs": 1673790598468, + "birthtimeMs": 1673790500344 + }, + "addedAt": 1673790507334, + "updatedAt": 1673790507334, + "fileType": "audio" + }, + { + "ino": "16253146", + "metadata": { + "filename": "57 - Chapter 57.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/57 - Chapter 57.mp3", + "relPath": "57 - Chapter 57.mp3", + "size": 12799730, + "mtimeMs": 1673790599767, + "ctimeMs": 1673790599767, + "birthtimeMs": 1673790496061 + }, + "addedAt": 1673790507334, + "updatedAt": 1673790507334, + "fileType": "audio" + }, + { + "ino": "16253152", + "metadata": { + "filename": "59 - Chapter 59.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/59 - Chapter 59.mp3", + "relPath": "59 - Chapter 59.mp3", + "size": 18807998, + "mtimeMs": 1673790599634, + "ctimeMs": 1673790599634, + "birthtimeMs": 1673790504658 + }, + "addedAt": 1673790507334, + "updatedAt": 1673790507334, + "fileType": "audio" + }, + { + "ino": "16253142", + "metadata": { + "filename": "63 - Chapter 63.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/63 - Chapter 63.mp3", + "relPath": "63 - Chapter 63.mp3", + "size": 25145408, + "mtimeMs": 1673790563722, + "ctimeMs": 1673790563722, + "birthtimeMs": 1673790490517 + }, + "addedAt": 1673790507335, + "updatedAt": 1673790507335, + "fileType": "audio" + }, + { + "ino": "16253161", + "metadata": { + "filename": "00 - Intro.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/00 - Intro.mp3", + "relPath": "00 - Intro.mp3", + "size": 153600, + "mtimeMs": 1673790516399, + "ctimeMs": 1673790516399, + "birthtimeMs": 1673790516356 + }, + "addedAt": 1673790517035, + "updatedAt": 1673790517035, + "fileType": "audio" + }, + { + "ino": "16253156", + "metadata": { + "filename": "01 - Chapter 1.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/01 - Chapter 1.mp3", + "relPath": "01 - Chapter 1.mp3", + "size": 27873280, + "mtimeMs": 1673790598710, + "ctimeMs": 1673790598710, + "birthtimeMs": 1673790510610 + }, + "addedAt": 1673790517035, + "updatedAt": 1673790517035, + "fileType": "audio" + }, + { + "ino": "16253155", + "metadata": { + "filename": "05 - Chapter 5.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/05 - Chapter 5.mp3", + "relPath": "05 - Chapter 5.mp3", + "size": 17174507, + "mtimeMs": 1673790549901, + "ctimeMs": 1673790549901, + "birthtimeMs": 1673790509649 + }, + "addedAt": 1673790517036, + "updatedAt": 1673790517036, + "fileType": "audio" + }, + { + "ino": "16253157", + "metadata": { + "filename": "10 - Chapter 10.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/10 - Chapter 10.mp3", + "relPath": "10 - Chapter 10.mp3", + "size": 15152004, + "mtimeMs": 1673790593094, + "ctimeMs": 1673790593094, + "birthtimeMs": 1673790514555 + }, + "addedAt": 1673790517036, + "updatedAt": 1673790517036, + "fileType": "audio" + }, + { + "ino": "16253158", + "metadata": { + "filename": "17 - Chapter 17.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/17 - Chapter 17.mp3", + "relPath": "17 - Chapter 17.mp3", + "size": 21808840, + "mtimeMs": 1673790574630, + "ctimeMs": 1673790574630, + "birthtimeMs": 1673790515165 + }, + "addedAt": 1673790517037, + "updatedAt": 1673790517037, + "fileType": "audio" + }, + { + "ino": "16253159", + "metadata": { + "filename": "34 - Chapter 34.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/34 - Chapter 34.mp3", + "relPath": "34 - Chapter 34.mp3", + "size": 14336984, + "mtimeMs": 1673790555834, + "ctimeMs": 1673790555834, + "birthtimeMs": 1673790515488 + }, + "addedAt": 1673790517038, + "updatedAt": 1673790517038, + "fileType": "audio" + }, + { + "ino": "16253160", + "metadata": { + "filename": "68 - Epilogue.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/68 - Epilogue.mp3", + "relPath": "68 - Epilogue.mp3", + "size": 2662400, + "mtimeMs": 1673790516356, + "ctimeMs": 1673790516356, + "birthtimeMs": 1673790515786 + }, + "addedAt": 1673790517041, + "updatedAt": 1673790517041, + "fileType": "audio" + }, + { + "ino": "16253162", + "metadata": { + "filename": "The Three Musketeers.jpg", + "ext": ".jpg", + "path": "/demo/The Three Musketeers/The Three Musketeers.jpg", + "relPath": "The Three Musketeers.jpg", + "size": 43090, + "mtimeMs": 1673790516418, + "ctimeMs": 1673790516418, + "birthtimeMs": 1673790516400 + }, + "addedAt": 1673790517041, + "updatedAt": 1673790517041, + "fileType": "image" + }, + { + "ino": "16253164", + "metadata": { + "filename": "18 - Chapter 18.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/18 - Chapter 18.mp3", + "relPath": "18 - Chapter 18.mp3", + "size": 10441500, + "mtimeMs": 1673790548742, + "ctimeMs": 1673790548742, + "birthtimeMs": 1673790520146 + }, + "addedAt": 1673790525812, + "updatedAt": 1673790525812, + "fileType": "audio" + }, + { + "ino": "16253163", + "metadata": { + "filename": "41 - Chapter 41.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/41 - Chapter 41.mp3", + "relPath": "41 - Chapter 41.mp3", + "size": 21217010, + "mtimeMs": 1673790583998, + "ctimeMs": 1673790583998, + "birthtimeMs": 1673790518439 + }, + "addedAt": 1673790525813, + "updatedAt": 1673790525813, + "fileType": "audio" + }, + { + "ino": "16253166", + "metadata": { + "filename": "44 - Chapter 44.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/44 - Chapter 44.mp3", + "relPath": "44 - Chapter 44.mp3", + "size": 14855776, + "mtimeMs": 1673790597363, + "ctimeMs": 1673790597363, + "birthtimeMs": 1673790524621 + }, + "addedAt": 1673790525814, + "updatedAt": 1673790525814, + "fileType": "audio" + }, + { + "ino": "16253165", + "metadata": { + "filename": "51 - Chapter 51.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/51 - Chapter 51.mp3", + "relPath": "51 - Chapter 51.mp3", + "size": 19944638, + "mtimeMs": 1673790585639, + "ctimeMs": 1673790585639, + "birthtimeMs": 1673790521630 + }, + "addedAt": 1673790525814, + "updatedAt": 1673790525814, + "fileType": "audio" + }, + { + "ino": "16253169", + "metadata": { + "filename": "14 - Chapter 14.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/14 - Chapter 14.mp3", + "relPath": "14 - Chapter 14.mp3", + "size": 15443531, + "mtimeMs": 1673790603408, + "ctimeMs": 1673790603408, + "birthtimeMs": 1673790530651 + }, + "addedAt": 1673790537235, + "updatedAt": 1673790537235, + "fileType": "audio" + }, + { + "ino": "16253170", + "metadata": { + "filename": "15 - Chapter 15.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/15 - Chapter 15.mp3", + "relPath": "15 - Chapter 15.mp3", + "size": 12924804, + "mtimeMs": 1673790580912, + "ctimeMs": 1673790580912, + "birthtimeMs": 1673790536306 + }, + "addedAt": 1673790537235, + "updatedAt": 1673790537235, + "fileType": "audio" + }, + { + "ino": "16253168", + "metadata": { + "filename": "24 - Chapter 24.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/24 - Chapter 24.mp3", + "relPath": "24 - Chapter 24.mp3", + "size": 17102097, + "mtimeMs": 1673790587496, + "ctimeMs": 1673790587496, + "birthtimeMs": 1673790530014 + }, + "addedAt": 1673790537236, + "updatedAt": 1673790537236, + "fileType": "audio" + }, + { + "ino": "16253171", + "metadata": { + "filename": "31 - Chapter 31.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/31 - Chapter 31.mp3", + "relPath": "31 - Chapter 31.mp3", + "size": 12414790, + "mtimeMs": 1673790604547, + "ctimeMs": 1673790604547, + "birthtimeMs": 1673790536538 + }, + "addedAt": 1673790537237, + "updatedAt": 1673790537237, + "fileType": "audio" + }, + { + "ino": "16253167", + "metadata": { + "filename": "65 - Chapter 65.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/65 - Chapter 65.mp3", + "relPath": "65 - Chapter 65.mp3", + "size": 15652615, + "mtimeMs": 1673790599679, + "ctimeMs": 1673790599679, + "birthtimeMs": 1673790529377 + }, + "addedAt": 1673790537241, + "updatedAt": 1673790537241, + "fileType": "audio" + }, + { + "ino": "16253172", + "metadata": { + "filename": "22 - Chapter 22.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/22 - Chapter 22.mp3", + "relPath": "22 - Chapter 22.mp3", + "size": 12136742, + "mtimeMs": 1673790559719, + "ctimeMs": 1673790559719, + "birthtimeMs": 1673790537787 + }, + "addedAt": 1673790544973, + "updatedAt": 1673790544973, + "fileType": "audio" + }, + { + "ino": "16253173", + "metadata": { + "filename": "53 - Chapter 53.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/53 - Chapter 53.mp3", + "relPath": "53 - Chapter 53.mp3", + "size": 12758665, + "mtimeMs": 1673790582093, + "ctimeMs": 1673790582093, + "birthtimeMs": 1673790541118 + }, + "addedAt": 1673790544980, + "updatedAt": 1673790544980, + "fileType": "audio" + }, + { + "ino": "16253174", + "metadata": { + "filename": "38 - Chapter 38.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/38 - Chapter 38.mp3", + "relPath": "38 - Chapter 38.mp3", + "size": 14289963, + "mtimeMs": 1673790598610, + "ctimeMs": 1673790598610, + "birthtimeMs": 1673790555832 + }, + "addedAt": 1673790564896, + "updatedAt": 1673790564896, + "fileType": "audio" + }, + { + "ino": "16253175", + "metadata": { + "filename": "60 - Chapter 60.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/60 - Chapter 60.mp3", + "relPath": "60 - Chapter 60.mp3", + "size": 9700145, + "mtimeMs": 1673790591314, + "ctimeMs": 1673790591314, + "birthtimeMs": 1673790563838 + }, + "addedAt": 1673790564901, + "updatedAt": 1673790564901, + "fileType": "audio" + }, + { + "ino": "16253177", + "metadata": { + "filename": "09 - Chapter 9.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/09 - Chapter 9.mp3", + "relPath": "09 - Chapter 9.mp3", + "size": 12486259, + "mtimeMs": 1673790583681, + "ctimeMs": 1673790583681, + "birthtimeMs": 1673790574661 + }, + "addedAt": 1673790578338, + "updatedAt": 1673790578338, + "fileType": "audio" + }, + { + "ino": "16253176", + "metadata": { + "filename": "35 - Chapter 35.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/35 - Chapter 35.mp3", + "relPath": "35 - Chapter 35.mp3", + "size": 13200657, + "mtimeMs": 1673790591209, + "ctimeMs": 1673790591209, + "birthtimeMs": 1673790567462 + }, + "addedAt": 1673790578344, + "updatedAt": 1673790578344, + "fileType": "audio" + }, + { + "ino": "16253179", + "metadata": { + "filename": "36 - Chapter 36.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/36 - Chapter 36.mp3", + "relPath": "36 - Chapter 36.mp3", + "size": 12421372, + "mtimeMs": 1673790602569, + "ctimeMs": 1673790602569, + "birthtimeMs": 1673790575692 + }, + "addedAt": 1673790578344, + "updatedAt": 1673790578344, + "fileType": "audio" + }, + { + "ino": "16253178", + "metadata": { + "filename": "42 - Chapter 42.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/42 - Chapter 42.mp3", + "relPath": "42 - Chapter 42.mp3", + "size": 12997843, + "mtimeMs": 1673790580618, + "ctimeMs": 1673790580618, + "birthtimeMs": 1673790575154 + }, + "addedAt": 1673790578345, + "updatedAt": 1673790578345, + "fileType": "audio" + }, + { + "ino": "16253180", + "metadata": { + "filename": "66 - Chapter 66.mp3", + "ext": ".mp3", + "path": "/demo/The Three Musketeers/66 - Chapter 66.mp3", + "relPath": "66 - Chapter 66.mp3", + "size": 9551560, + "mtimeMs": 1673790596429, + "ctimeMs": 1673790596429, + "birthtimeMs": 1673790591310 + }, + "addedAt": 1673790610912, + "updatedAt": 1673790610912, + "fileType": "audio" + } + ], + "rssFeed": null + } + ], + "total": 3, + "limit": 100, + "page": 0, + "sortBy": "media.metadata.title", + "sortDesc": false, + "mediaType": "book", + "minified": false, + "collapseseries": false, + "include": "rssfeed" +} \ No newline at end of file diff --git a/tests/__fixtures__/library_items.json b/tests/__fixtures__/library_items.json index c79739d..331b364 100644 --- a/tests/__fixtures__/library_items.json +++ b/tests/__fixtures__/library_items.json @@ -15,15 +15,16 @@ "updatedAt": 1650621110769, "isMissing": false, "isInvalid": false, - "mediaType": "book", "media": { "metadata": { "title": "Wizards First Rule", "titleIgnorePrefix": "Wizards First Rule", "subtitle": null, - "authorName": "Terry Goodkind", - "narratorName": "Sam Tsoutsouvas", - "seriesName": "Sword of Truth", + "authors": ["Terry Goodkind"], + "narrators": ["Sam Tsoutsouvas"], + "series": { + "title": "Sword of Truth" + }, "genres": [ "Fantasy" ], @@ -36,6 +37,7 @@ "language": null, "explicit": false }, + "libraryItemId": "li_8gch9ve09orgn4fdz8", "coverPath": "/audiobooks/Terry Goodkind/Sword of Truth/Wizards First Rule/cover.jpg", "tags": [], "numTracks": 2, @@ -65,6 +67,6 @@ "filterBy": "authors.YXV0X3ozbGVpbWd5Ymw3dWYzeTRhYg==", "mediaType": "book", "minified": false, - "collapseseries": true, + "collapseseries": false, "include": "" - } \ No newline at end of file + } diff --git a/tests/__fixtures__/podcasts_library_items.json b/tests/__fixtures__/podcasts_library_items.json new file mode 100644 index 0000000..91c3dda --- /dev/null +++ b/tests/__fixtures__/podcasts_library_items.json @@ -0,0 +1,448 @@ +{ + "results": [ + { + "id": "li_884frz7oyaaesl3et9", + "ino": "75301266", + "libraryId": "lib_tsg26qi492qdmpmrqu", + "folderId": "fol_r2v0rc25nx7kz2oiqm", + "path": "/podcasts/Lex Fridman Podcast", + "relPath": "Lex Fridman Podcast", + "isFile": false, + "mtimeMs": 1674097373082, + "ctimeMs": 1674101672442, + "birthtimeMs": 1674097299726, + "addedAt": 1674097377998, + "updatedAt": 1674101829564, + "lastScan": 1674101680238, + "scanVersion": "2.2.12", + "isMissing": false, + "isInvalid": false, + "mediaType": "podcast", + "media": { + "libraryItemId": "li_884frz7oyaaesl3et9", + "metadata": { + "title": "Lex Fridman Podcast", + "author": "Lex Fridman", + "description": null, + "releaseDate": "2023-01-11T17:36:00Z", + "genres": [ + "Technology", + "Podcasts", + "Science" + ], + "feedUrl": "https://lexfridman.com/feed/podcast/", + "imageUrl": "https://is2-ssl.mzstatic.com/image/thumb/Podcasts115/v4/3e/e3/9c/3ee39c89-de08-47a6-7f3d-3849cef6d255/mza_16657851278549137484.png/600x600bb.jpg", + "itunesPageUrl": "https://podcasts.apple.com/us/podcast/lex-fridman-podcast/id1434243584?uo=4", + "itunesId": 1434243584, + "itunesArtistId": null, + "explicit": false, + "language": null + }, + "coverPath": "/podcasts/Lex Fridman Podcast/folder.png", + "tags": [], + "episodes": [ + { + "libraryItemId": "li_884frz7oyaaesl3et9", + "id": "ep_wbq22errhqyzf245vu", + "index": 1, + "season": null, + "episode": null, + "episodeType": null, + "title": "351-–-Mr-Beast-Future-of-You-Tube,-Twitter,-Tik-Tok,-and-Instagram", + "subtitle": null, + "description": null, + "enclosure": null, + "pubDate": null, + "audioFile": { + "index": null, + "ino": "75296545", + "metadata": { + "filename": "351-–-Mr-Beast-Future-of-You-Tube,-Twitter,-Tik-Tok,-and-Instagram.mp3", + "ext": ".mp3", + "path": "/podcasts/Lex Fridman Podcast/351-–-Mr-Beast-Future-of-You-Tube,-Twitter,-Tik-Tok,-and-Instagram.mp3", + "relPath": "351-–-Mr-Beast-Future-of-You-Tube,-Twitter,-Tik-Tok,-and-Instagram.mp3", + "size": 107209358, + "mtimeMs": 1674097383520, + "ctimeMs": 1674101672442, + "birthtimeMs": 1674097373082 + }, + "addedAt": 1674097378572, + "updatedAt": 1674097378572, + "trackNumFromMeta": null, + "discNumFromMeta": null, + "trackNumFromFilename": null, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 8689.066667, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagDate": "2023-01-11 00:05" + }, + "mimeType": "audio/mpeg" + }, + "publishedAt": null, + "addedAt": 1674097378573, + "updatedAt": 1674097378573 + }, + { + "libraryItemId": "li_884frz7oyaaesl3et9", + "id": "ep_087bxfvqjq04mir4cn", + "index": 2, + "season": "", + "episode": "", + "episodeType": "", + "title": "#352 – Omar Suleiman: Islam", + "subtitle": "Imam Omar Suleiman is the Founder and President of the Yaqeen Institute for Islamic Research and a professor of Islamic Studies at Southern Methodist University. Please support this podcast by checking out our sponsors: – NetSuite: http://netsuite.", + "description": "

Imam Omar Suleiman is the Founder and President of the Yaqeen Institute for Islamic Research and a professor of Islamic Studies at Southern Methodist University. Please support this podcast by checking out our sponsors:\n– NetSuite: http://netsuite.com/lex to get free product tour\n– House of Macadamias: https://houseofmacadamias.com/lex and use code LEX to get 20% off your first order\n– ExpressVPN: https://expressvpn.com/lexpod to get 3 months free

\n

EPISODE LINKS:\nOmar’s Instagram: https://instagram.com/imamomarsuleiman\nOmar’s Twitter: https://twitter.com/omarsuleiman504\nOmar’s Facebook: https://www.facebook.com/imamomarsuleiman\nYaqeen Institute’s YouTube: https://www.youtube.com/@yaqeeninstituteofficial\nYaqeen Institute’s Website: https://yaqeeninstitute.org

\n

PODCAST INFO:\nPodcast website: https://lexfridman.com/podcast\nApple Podcasts: https://apple.co/2lwqZIr\nSpotify: https://spoti.fi/2nEwCF8\nRSS: https://lexfridman.com/feed/podcast/\nYouTube Full Episodes: https://youtube.com/lexfridman\nYouTube Clips: https://youtube.com/lexclips

\n

SUPPORT & CONNECT:\n– Check out the sponsors above, it’s the best way to support this podcast\n– Support on Patreon: https://www.patreon.com/lexfridman\n– Twitter: https://twitter.com/lexfridman\n– Instagram: https://www.instagram.com/lexfridman\n– LinkedIn: https://www.linkedin.com/in/lexfridman\n– Facebook: https://www.facebook.com/lexfridman\n– Medium: https://medium.com/@lexfridman

\n

OUTLINE:\nHere’s the timestamps for the episode. On some podcast players you should be able to click the timestamp to jump to that time.\n(00:00) – Introduction\n(08:39) – God\n(16:25) – Loss\n(25:14) – Life after death\n(26:53) – Why God allows suffering\n(40:18) – Seeking the truth\n(47:58) – Islamophobia\n(1:12:55) – Muslim ban\n(1:20:24) – Meaning of prayer\n(1:34:01) – Mecca\n(1:39:12) – Malcolm X\n(1:42:23) – Muhammad Ali\n(1:47:09) – Khabib Nurmagomedov\n(1:53:19) – Prophets\n(1:59:31) – Quran\n(2:05:17) – Ramadan\n(2:12:21) – Future of Islam\n(2:15:30) – Colleyville synagogue hostage crisis\n(2:23:37) – War and religion\n(2:33:29) – Israel and Palestine\n(2:59:13) – Hope for the future\n(3:03:56) – Prayer

", + "enclosure": { + "url": "https://media.blubrry.com/takeituneasy/content.blubrry.com/takeituneasy/lex_ai_omar_suleiman.mp3", + "length": "136650118", + "type": "audio/mpeg" + }, + "pubDate": "Tue, 17 Jan 2023 17:35:28 +0000", + "audioFile": { + "index": null, + "ino": "75296544", + "metadata": { + "filename": "352-–-Omar-Suleiman-Islam.mp3", + "ext": ".mp3", + "path": "/podcasts/Lex Fridman Podcast/352-–-Omar-Suleiman-Islam.mp3", + "relPath": "352-–-Omar-Suleiman-Islam.mp3", + "size": 136650118, + "mtimeMs": 1674097371680, + "ctimeMs": 1674101672442, + "birthtimeMs": 1674097356809 + }, + "addedAt": 1674097378428, + "updatedAt": 1674097378428, + "trackNumFromMeta": null, + "discNumFromMeta": null, + "trackNumFromFilename": null, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 11236.502, + "bitRate": 96000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 1, + "channelLayout": "mono", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagDate": "2023-01-17 06:35" + }, + "mimeType": "audio/mpeg" + }, + "publishedAt": 1673976928000, + "addedAt": 1674097378573, + "updatedAt": 1674101422489 + } + ], + "autoDownloadEpisodes": false, + "lastEpisodeCheck": 1674101829564, + "maxEpisodesToKeep": 0, + "maxNewEpisodesToDownload": 3 + }, + "libraryFiles": [ + { + "ino": "75296545", + "metadata": { + "filename": "351-–-Mr-Beast-Future-of-You-Tube,-Twitter,-Tik-Tok,-and-Instagram.mp3", + "ext": ".mp3", + "path": "/podcasts/Lex Fridman Podcast/351-–-Mr-Beast-Future-of-You-Tube,-Twitter,-Tik-Tok,-and-Instagram.mp3", + "relPath": "351-–-Mr-Beast-Future-of-You-Tube,-Twitter,-Tik-Tok,-and-Instagram.mp3", + "size": 107209358, + "mtimeMs": 1674097383520, + "ctimeMs": 1674101672442, + "birthtimeMs": 1674097373082 + }, + "addedAt": 1674097377994, + "updatedAt": 1674097377994, + "fileType": "audio" + }, + { + "ino": "75296544", + "metadata": { + "filename": "352-–-Omar-Suleiman-Islam.mp3", + "ext": ".mp3", + "path": "/podcasts/Lex Fridman Podcast/352-–-Omar-Suleiman-Islam.mp3", + "relPath": "352-–-Omar-Suleiman-Islam.mp3", + "size": 136650118, + "mtimeMs": 1674097371680, + "ctimeMs": 1674101672442, + "birthtimeMs": 1674097356809 + }, + "addedAt": 1674097377995, + "updatedAt": 1674097377995, + "fileType": "audio" + }, + { + "ino": "75296543", + "metadata": { + "filename": "folder.png", + "ext": ".png", + "path": "/podcasts/Lex Fridman Podcast/folder.png", + "relPath": "folder.png", + "size": 7813577, + "mtimeMs": 1674097300921, + "ctimeMs": 1674101672442, + "birthtimeMs": 1674097299736 + }, + "addedAt": 1674097377997, + "updatedAt": 1674097377997, + "fileType": "image" + } + ], + "rssFeed": null + }, + { + "id": "li_o52ih8qqtqwfr361lh", + "ino": "75301265", + "libraryId": "lib_tsg26qi492qdmpmrqu", + "folderId": "fol_r2v0rc25nx7kz2oiqm", + "path": "/podcasts/You Are Not So Smart", + "relPath": "You Are Not So Smart", + "isFile": false, + "mtimeMs": 1674001944438, + "ctimeMs": 1674001944438, + "birthtimeMs": 1674001895410, + "addedAt": 1674002233214, + "updatedAt": 1674172801569, + "lastScan": null, + "scanVersion": null, + "isMissing": false, + "isInvalid": false, + "mediaType": "podcast", + "media": { + "libraryItemId": "li_o52ih8qqtqwfr361lh", + "metadata": { + "title": "You Are Not So Smart", + "author": "You Are Not So Smart", + "description": null, + "releaseDate": "2023-01-08T10:00:00Z", + "genres": [ + "Science", + "Podcasts" + ], + "feedUrl": "https://feeds.simplecast.com/N5eKDxJI", + "imageUrl": null, + "itunesPageUrl": "https://podcasts.apple.com/us/podcast/you-are-not-so-smart/id521594713?uo=4", + "itunesId": 521594713, + "itunesArtistId": null, + "explicit": false, + "language": null + }, + "coverPath": "/podcasts/You Are Not So Smart/folder.jpg", + "tags": [], + "episodes": [ + { + "libraryItemId": "li_o52ih8qqtqwfr361lh", + "id": "ep_prn4pvlj7gxgnbx91s", + "index": 1, + "season": "", + "episode": "", + "episodeType": "full", + "title": "249 - The Power of Surprise (rebroadcast)", + "subtitle": "In this episode, Micheal Rousell, author of The Power of Surprise, explains the science of surprise at the level of neurons and brain structures, and then talk about how surprises often lead to the stories we tell ourselves about ourselves, the different personal narratives that guide our behaviors and motivations and goals, and, perhaps most importantly, our willingness to be surprised again so that we can change and grow.", + "description": "

In this episode, Micheal Rousell, author of The Power of Surprise, explains the science of surprise at the level of neurons and brain structures, and then talk about how surprises often lead to the stories we tell ourselves about ourselves, the different personal narratives that guide our behaviors and motivations and goals, and, perhaps most importantly, our willingness to be surprised again so that we can change and grow.

In the show, you will how we can use the current understanding of how surprise leads to learning, and how learning depends on interpretation, to improve our lives, and the lives of others

", + "enclosure": { + "length": "58279033", + "type": "audio/mpeg", + "url": "https://stitcher.simplecastaudio.com/aa9f2648-25e9-472a-af42-4e5017da38cf/episodes/cbb185c7-2265-4e79-b60d-69234badd9df/audio/128/default.mp3?aid=rss_feed&awCollectionId=aa9f2648-25e9-472a-af42-4e5017da38cf&awEpisodeId=cbb185c7-2265-4e79-b60d-69234badd9df&feed=N5eKDxJI" + }, + "pubDate": "Sat, 24 Dec 2022 14:56:06 +0000", + "audioFile": { + "index": null, + "ino": "75296539", + "metadata": { + "filename": "249-The-Power-of-Surprise-(rebroadcast).mp3", + "ext": ".mp3", + "path": "/podcasts/You Are Not So Smart/249-The-Power-of-Surprise-(rebroadcast).mp3", + "relPath": "249-The-Power-of-Surprise-(rebroadcast).mp3", + "size": 58218803, + "mtimeMs": 1674001948705, + "ctimeMs": 1674001948705, + "birthtimeMs": 1674001944438 + }, + "addedAt": 1674002234192, + "updatedAt": 1674002234192, + "trackNumFromMeta": null, + "discNumFromMeta": null, + "trackNumFromFilename": null, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 3638.648125, + "bitRate": 128000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 2, + "channelLayout": "stereo", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagArtist": "David McRaney", + "tagTitle": "249 - The Power of Surprise (rebroadcast)", + "tagDate": "2022-12-23 16:23", + "tagComposer": "David McRaney", + "tagComment": "preroll_1;postroll_1", + "tagEncoder": "Lavf58.78.100" + }, + "mimeType": "audio/mpeg" + }, + "publishedAt": 1671893766000, + "addedAt": 1674002234193, + "updatedAt": 1674006366631 + }, + { + "libraryItemId": "li_o52ih8qqtqwfr361lh", + "id": "ep_g5pwz6pa0ta8iettbs", + "index": 2, + "season": null, + "episode": null, + "episodeType": "full", + "title": "250 - Awe - Dacher Keltner", + "subtitle": "In this episode we sit down with psychologist Dacher Keltner, one of the world’s leading experts on the science of emotion, the man Pixar hired to help them write Inside Out. In his new book – Awe: The New Science of Everyday Wonder and How It Can Transform Your Life – he outlines his years of work in this field, the health benefits of awe, the evolutionary origins and likely functions, and how to better pursue more awe and wonder in your own life.", + "description": "

In this episode we sit down with psychologist Dacher Keltner, one of the world’s leading experts on the science of emotion, the man Pixar hired to help them write Inside Out. In his new book – Awe: The New Science of Everyday Wonder and How It Can Transform Your Life – he outlines his years of work in this field, the health benefits of awe, the evolutionary origins and likely functions, and how to better pursue more awe and wonder in your own life.

", + "enclosure": { + "length": "52129178", + "type": "audio/mpeg", + "url": "https://stitcher.simplecastaudio.com/aa9f2648-25e9-472a-af42-4e5017da38cf/episodes/03c75577-db3f-4476-a103-1c112e5b7d0b/audio/128/default.mp3?aid=rss_feed&awCollectionId=aa9f2648-25e9-472a-af42-4e5017da38cf&awEpisodeId=03c75577-db3f-4476-a103-1c112e5b7d0b&feed=N5eKDxJI" + }, + "pubDate": "Sun, 8 Jan 2023 10:00:00 +0000", + "audioFile": { + "index": null, + "ino": "75296535", + "metadata": { + "filename": "250-Awe-Dacher-Keltner.mp3", + "ext": ".mp3", + "path": "/podcasts/You Are Not So Smart/250-Awe-Dacher-Keltner.mp3", + "relPath": "250-Awe-Dacher-Keltner.mp3", + "size": 52128762, + "mtimeMs": 1674001943621, + "ctimeMs": 1674001943621, + "birthtimeMs": 1674001938850 + }, + "addedAt": 1674002234191, + "updatedAt": 1674002234191, + "trackNumFromMeta": null, + "discNumFromMeta": null, + "trackNumFromFilename": null, + "discNumFromFilename": null, + "manuallyVerified": false, + "invalid": false, + "exclude": false, + "error": null, + "format": "MP2/3 (MPEG audio layer 2/3)", + "duration": 3258.017938, + "bitRate": 128000, + "language": null, + "codec": "mp3", + "timeBase": "1/14112000", + "channels": 2, + "channelLayout": "stereo", + "chapters": [], + "embeddedCoverArt": null, + "metaTags": { + "tagArtist": "250 - Awe - Dacher Keltner", + "tagTitle": "YANSSBetterHelpJan12023", + "tagDate": "2022-12-23 16:23", + "tagComposer": "David McRaney", + "tagEncoder": "Lavf58.78.100" + }, + "mimeType": "audio/mpeg" + }, + "publishedAt": 1673172000000, + "addedAt": 1674002234193, + "updatedAt": 1674006389130 + } + ], + "autoDownloadEpisodes": true, + "autoDownloadSchedule": "0 0 * * *", + "lastEpisodeCheck": 1674172801569, + "maxEpisodesToKeep": "5", + "maxNewEpisodesToDownload": 3 + }, + "libraryFiles": [ + { + "ino": "75296539", + "metadata": { + "filename": "249-The-Power-of-Surprise-(rebroadcast).mp3", + "ext": ".mp3", + "path": "/podcasts/You Are Not So Smart/249-The-Power-of-Surprise-(rebroadcast).mp3", + "relPath": "249-The-Power-of-Surprise-(rebroadcast).mp3", + "size": 58218803, + "mtimeMs": 1674001948705, + "ctimeMs": 1674001948705, + "birthtimeMs": 1674001944438 + }, + "addedAt": 1674002233209, + "updatedAt": 1674002233209, + "fileType": "audio" + }, + { + "ino": "75296535", + "metadata": { + "filename": "250-Awe-Dacher-Keltner.mp3", + "ext": ".mp3", + "path": "/podcasts/You Are Not So Smart/250-Awe-Dacher-Keltner.mp3", + "relPath": "250-Awe-Dacher-Keltner.mp3", + "size": 52128762, + "mtimeMs": 1674001943621, + "ctimeMs": 1674001943621, + "birthtimeMs": 1674001938850 + }, + "addedAt": 1674002233209, + "updatedAt": 1674002233209, + "fileType": "audio" + }, + { + "ino": "75296536", + "metadata": { + "filename": "folder.jpg", + "ext": ".jpg", + "path": "/podcasts/You Are Not So Smart/folder.jpg", + "relPath": "folder.jpg", + "size": 630753, + "mtimeMs": 1674001895993, + "ctimeMs": 1674001895993, + "birthtimeMs": 1674001895410 + }, + "addedAt": 1674002233210, + "updatedAt": 1674002233210, + "fileType": "image" + } + ], + "rssFeed": null + } + ], + "total": 2, + "limit": 100, + "page": 0, + "sortBy": "media.metadata.title", + "sortDesc": false, + "mediaType": "podcast", + "minified": false, + "collapseseries": false, + "include": "rssfeed" +} \ No newline at end of file diff --git a/tests/__fixtures__/progress_finished.json b/tests/__fixtures__/progress_finished.json new file mode 100644 index 0000000..ffb6b8b --- /dev/null +++ b/tests/__fixtures__/progress_finished.json @@ -0,0 +1,14 @@ +{ + "id": "li_bufnnmp4y5o2gbbxfm-ep_lh6ko39pumnrma3dhv", + "libraryItemId": "li_bufnnmp4y5o2gbbxfm", + "episodeId": "ep_lh6ko39pumnrma3dhv", + "duration": 1454.18449, + "progress": 1, + "currentTime": 611.590717, + "isFinished": true, + "hideFromContinueListening": false, + "lastUpdate": 1668330152157, + "startedAt": 1668120083771, + "finishedAt": 166812099879 + } + \ No newline at end of file diff --git a/tests/utils.test.ts b/tests/utils.test.ts index 229eb15..e1994f8 100644 --- a/tests/utils.test.ts +++ b/tests/utils.test.ts @@ -1,5 +1,6 @@ import { seconds_human_readable, + loadUser, loadLibraries, loadProgress, loadBooks, @@ -7,11 +8,26 @@ import { decodeHTML, abLog, updateStatus, + renderTemplate, + loadPodcasts, + userMediaProgress, } from "../src/utils"; +import audiobookshelfAuthorize from "../tests/__fixtures__/authorize.json"; import audiobookshelfLibraries from "../tests/__fixtures__/libraries.json"; import audiobookshelfProgress from "../tests/__fixtures__/progress.json"; -import audiobookshelfLibraryItems from "../tests/__fixtures__/library_items.json"; +import audiobookshelfProgressFinished from "../tests/__fixtures__/progress_finished.json"; + +import audiobookshelfBooksLibraryItems from "../tests/__fixtures__/books_library_items.json"; +import audiobookshelfPodcastsLibraryItems from "../tests/__fixtures__/podcasts_library_items.json"; + +import { + User, + Progress, + BookLibraryItems, + PodcastLibraryItems, + Authorize, +} from "../src/schema"; let originalFetch = global.fetch; @@ -38,6 +54,92 @@ describe("seconds_human_readable()", () => { }); }); +describe("loadUser()", () => { + beforeEach(() => { + originalFetch = global.fetch; + global.fetch = jest.fn().mockResolvedValue({ + json: () => audiobookshelfAuthorize, + }); + }); + + afterEach(() => { + global.fetch = originalFetch; + }); + it("loads user", async () => { + await loadUser("http://localhost", "TOKEN"); + + expect(global.fetch).toHaveBeenCalledTimes(1); + + expect(global.fetch).toHaveBeenCalledWith( + "http://localhost/api/authorize", + { + headers: { + Accept: "application/json", + Authorization: "Bearer TOKEN", + "Content-Type": "application/json", + }, + method: "post", + } + ); + }); + + it("loads user with progress", async () => { + const user: User = await loadUser("http://localhost", "TOKEN"); + + expect(user).toHaveProperty("username"); + expect(user.mediaProgress).toHaveLength(3); + + const progressItem = user.mediaProgress[0]; + expect(progressItem.episodeId).toEqual("ep_lh6ko39pumnrma3dhv"); + expect(progressItem.isFinished).toBe(false); + }); +}); + +describe("userMediaProgress()", () => { + it("finds book progress", async () => { + const authorize = audiobookshelfAuthorize as Authorize; + const user = authorize.user; + const mediaProgress: Progress = (await userMediaProgress( + user, + "li_bufnnmp4y5892ebbxfm" + )) as Progress; + + expect(mediaProgress).toBeDefined; + expect(mediaProgress).toHaveProperty("progress"); + expect(mediaProgress.progress).toBe(0.42057298864465265); + }); + + it("finds podcast episode finished progress", async () => { + const authorize = audiobookshelfAuthorize as Authorize; + const user = authorize.user; + const mediaProgress: Progress = (await userMediaProgress( + user, + "li_bufnnmp4y5o2gbbxfm", + "ep_rwi8o39pumnrma3dhv" + )) as Progress; + + expect(mediaProgress).toBeDefined; + expect(mediaProgress).toHaveProperty("progress"); + expect(mediaProgress.progress).toBe(1); + expect(mediaProgress.isFinished).toEqual(true); + }); + + it("it does not find any progress", async () => { + const authorize = audiobookshelfAuthorize as Authorize; + const user = authorize.user; + const mediaProgress: Progress = (await userMediaProgress( + user, + "FAKE", + "FAKE" + )) as Progress; + + expect(mediaProgress).toBeDefined; + expect(mediaProgress).toHaveProperty("progress"); + expect(mediaProgress.progress).toBe(0); + expect(mediaProgress.isFinished).toEqual(false); + }); +}); + describe("loadLibraries()", () => { beforeEach(() => { originalFetch = global.fetch; @@ -149,13 +251,46 @@ describe("loadProgress()", () => { expect(progress).toHaveProperty("libraryItemId"); }); + + it("fetches podcast progress that does not exist", async () => { + global.fetch = jest + .fn() + .mockImplementationOnce(() => Promise.reject("NOT FOUND")); + + const progress = await loadProgress( + "http://localhost", + "TOKEN", + "li_bufnnmp4y5o2gbbxfm", + "fake_id" + ); + + expect(global.fetch).toHaveBeenCalledTimes(1); + + expect(global.fetch).toHaveBeenCalledWith( + "http://localhost/api/me/progress/" + + "li_bufnnmp4y5o2gbbxfm" + + "/fake_id", + { + headers: { + Accept: "application/json", + Authorization: "Bearer TOKEN", + "Content-Type": "application/json", + }, + } + ); + + expect(progress).toHaveProperty("libraryItemId"); + expect(progress.libraryItemId).toEqual(""); + expect(progress).toHaveProperty("finishedAt"); + expect(progress.finishedAt).toEqual(null); + }); }); describe("loadBooks()", () => { beforeEach(() => { originalFetch = global.fetch; global.fetch = jest.fn().mockResolvedValue({ - json: () => audiobookshelfLibraryItems, + json: () => audiobookshelfBooksLibraryItems, }); }); @@ -185,8 +320,8 @@ describe("loadBooks()", () => { } ); - expect(total).toEqual(1); - expect(books).toHaveLength(1); + expect(total).toEqual(3); + expect(books).toHaveLength(3); expect(books[0]).toHaveProperty("id"); }); @@ -213,8 +348,8 @@ describe("loadBooks()", () => { } ); - expect(total).toEqual(1); - expect(books).toHaveLength(1); + expect(total).toEqual(3); + expect(books).toHaveLength(3); expect(books[0]).toHaveProperty("id"); }); @@ -241,12 +376,105 @@ describe("loadBooks()", () => { } ); - expect(total).toEqual(1); - expect(books).toHaveLength(1); + expect(total).toEqual(3); + expect(books).toHaveLength(3); expect(books[0]).toHaveProperty("id"); }); }); +describe("loadPodcasts()", () => { + beforeEach(() => { + originalFetch = global.fetch; + global.fetch = jest.fn().mockResolvedValue({ + json: () => audiobookshelfPodcastsLibraryItems, + }); + }); + + afterEach(() => { + global.fetch = originalFetch; + }); + it("load podcasts from main library", async () => { + const [podcasts, total] = await loadPodcasts( + "http://localhost", + "TOKEN", + 10, + 0, + "podcasts" + ); + + expect(global.fetch).toHaveBeenCalledTimes(1); + + expect(global.fetch).toHaveBeenCalledWith( + "http://localhost/api/libraries/podcasts/items?limit=10&page=0", + { + headers: { + Accept: "application/json", + Authorization: "Bearer TOKEN", + "Content-Type": "application/json", + }, + } + ); + + expect(total).toEqual(2); + expect(podcasts).toHaveLength(2); + expect(podcasts[0]).toHaveProperty("id"); + }); + + it("load podcasts from pagination", async () => { + const [podcasts, total] = await loadPodcasts( + "http://localhost", + "TOKEN", + 2, + 1, + "podcasts" + ); + + expect(global.fetch).toHaveBeenCalledTimes(1); + + expect(global.fetch).toHaveBeenCalledWith( + "http://localhost/api/libraries/podcasts/items?limit=2&page=1", + { + headers: { + Accept: "application/json", + Authorization: "Bearer TOKEN", + "Content-Type": "application/json", + }, + } + ); + + expect(total).toEqual(2); + expect(podcasts).toHaveLength(2); + expect(podcasts[0]).toHaveProperty("id"); + }); + + it("load podcasts with undefined pagination", async () => { + const [podcasts, total] = await loadPodcasts( + "http://localhost", + "TOKEN", + undefined, + undefined, + "podcasts" + ); + + expect(global.fetch).toHaveBeenCalledTimes(1); + + expect(global.fetch).toHaveBeenCalledWith( + "http://localhost/api/libraries/podcasts/items?limit=10&page=0", + { + headers: { + Accept: "application/json", + Authorization: "Bearer TOKEN", + "Content-Type": "application/json", + }, + } + ); + + expect(total).toEqual(2); + expect(podcasts).toHaveLength(2); + expect(podcasts[0]).toHaveProperty("id"); + }); +}); + describe("createFilter()", () => { it("should calculate seconds", () => { let filter = createFilter("progress", "in-progress"); @@ -280,3 +508,299 @@ describe("updateStatus()", () => { expect(logseq.UI.showMsg).toBeCalled(); }); }); + +describe("renderTemplate()", () => { + it("renders simple book template", () => { + const template = "{{{title}}}"; + + const progress: Progress = audiobookshelfProgress as Progress; + const book = audiobookshelfBooksLibraryItems as BookLibraryItems; + //progress.finishedAt == null + const templateRendered = renderTemplate( + template, + "http://localhost", + "MMM do,yyyy", + "book", + progress, + book.results[0] + ); + expect(templateRendered).toEqual( + "Adventures of Huckleberry Finn: A Signature Performance by Elijah Wood" + ); + }); + + it("renders complex book template()", () => { + const template = `### books/{{{title}}} +collapsed:: false +subtitle:: {{subtitle}} +progress:: {{{progress}}} +isFinished:: {{{isFinished}}} +duration:: {{{duration}}} +currentTime:: {{{currentTime}}} +{{!===== Authors =====}} +{{#authors.length}} +authors:: {{#authors}}[[{{{name}}}]]{{/authors}} +{{/authors.length}} +{{!===== Narrators =====}} +{{#narrators.length}} +narrators:: {{#narrators}}[[{{{.}}}]]{{/narrators}} +{{/narrators.length}} +{{!===== Genres =====}} +{{#genres.length}} +genres:: {{#genres}}[[{{{.}}}]]{{/genres}} +{{/genres.length}} +{{!===== Series =====}} +{{#series}} +series:: {{#series}}[[{{{name}}}]]{{/series}} +{{/series}} +source:: [Open in Audiobookshelf]({{{audiobookshelfUrl}}}) +asin:: {{{asin}}} +isbn:: {{{isbn}}} +{{!===== Tags =====}} +{{#tags.length}} +tags:: {{#tags}}[[{{{.}}}]] {{/tags}} +{{/tags.length}} +{{!===== Started Date =====}} +{{#startedDate}} +startedDate:: [[{{{startedDateParsed}}}]] +{{/startedDate}} +{{!===== Finished Date =====}} +{{#finishedDate}} +finishedDate:: [[{{{finishedDateParsed}}}]] +{{/finishedDate}} + +{{{description}}}`; + + const progress = audiobookshelfProgress as Progress; + const book = audiobookshelfBooksLibraryItems as BookLibraryItems; + + const templateRendered = renderTemplate( + template, + "http://localhost", + "MMM do,yyyy", + "book", + progress, + book.results[0] + ); + expect(templateRendered) + .toEqual(`### books/Adventures of Huckleberry Finn: A Signature Performance by Elijah Wood +collapsed:: false +subtitle:: +progress:: 42.06% +isFinished:: false +duration:: 0h 24m 14s +currentTime:: 0h 10m 12s +authors:: [[Mark Twain]] +narrators:: [[Elijah Wood]] +genres:: [[Literature & Fiction]] +series:: [[Twain's Tom and Huck]] +source:: [Open in Audiobookshelf](http://localhost/item/li_q9teoi4jste86wnk76) +asin:: B0040J17CW +isbn:: +tags:: [[Classics]] [[Genre Fiction]] [[Coming of Age]] [[Literary Fiction]] +startedDate:: [[Nov 10th,2022]] + +Earphones Award Winner (AudioFile Magazine) Audible is pleased to announce the premiere of an exciting new series, Audible Signature Classics, featuring literature’s greatest stories, performed by accomplished stars handpicked for their ability to interpret each work in a new and refreshing way. The first book in the series is Mark Twain’s Adventures of Huckleberry Finn, performed by Elijah Wood. Ernest Hemingway said, “All modern American literature comes from one book by Mark Twain called Huckleberry Finn". One hundred years after its author’s death, this classic remains remarkably modern and poignantly relevant. In this brand new edition, Elijah Wood reads Huck in a youthful voice that may be the closest interpretation to Twain’s original intent. His performance captures the excitement and confusion of adolescence and adventure. Best of all, the immediacy of Wood’s energetic reading sweeps listeners up and makes them feel as though they’re along for the ride, as Huck and Jim push their raft toward freedom. Stay tuned for more one-of-a-kind performances from actors Kenneth Branagh, David Hyde Pierce, Leelee Sobieski, and more, only from Audible Signature Classics.`); + }); + + it("renders progress finished template()", () => { + const template = `### books/{{{title}}} +progress:: {{{progress}}} +isFinished:: {{{isFinished}}} +duration:: {{{duration}}} +currentTime:: {{{currentTime}}}`; + + const progress = audiobookshelfProgressFinished as Progress; + const book = audiobookshelfBooksLibraryItems as BookLibraryItems; + + const templateRendered = renderTemplate( + template, + "http://localhost", + "MMM do,yyyy", + "book", + progress, + book.results[1] + ); + expect(templateRendered).toEqual(`### books/The Alchemist +progress:: 100% +isFinished:: true +duration:: 0h 24m 14s +currentTime:: 0h 10m 12s`); + }); + + it("renders non existing progress emplate()", async () => { + const template = `### books/{{{title}}} +progress:: {{{progress}}} +isFinished:: {{{isFinished}}} +duration:: {{{duration}}} +currentTime:: {{{currentTime}}}`; + + global.fetch = jest + .fn() + .mockImplementationOnce(() => Promise.reject("NOT FOUND")); + + const progress = await loadProgress( + "http://localhost", + "TOKEN", + "li_bufnnmp4y5o2gbbxfm", + "fake_id" + ); + + const book = audiobookshelfBooksLibraryItems as BookLibraryItems; + + const templateRendered = renderTemplate( + template, + "http://localhost", + "MMM do,yyyy", + "book", + progress, + book.results[1] + ); + expect(templateRendered).toEqual(`### books/The Alchemist +progress:: 0.00% +isFinished:: false +duration:: 0h 0m 0s +currentTime:: 0h 0m 0s`); + }); + + it("renders simple podcast template", () => { + const template = "{{{title}}} - {{{episodeTitle}}}"; + + const progress: Progress = audiobookshelfProgress as Progress; + const podcastItems = + audiobookshelfPodcastsLibraryItems as PodcastLibraryItems; + //TODO create Podcast variable with only podcast data + //TODO create episode variable with only episode, progress shoudl be for that episode + const podcast = podcastItems.results[0]; + const episode = podcast.media.episodes[0]; + //progress.finishedAt == null + const templateRendered = renderTemplate( + template, + "http://localhost", + "MMM do,yyyy", + "podcast", + progress, + undefined, + podcast, + episode + ); + expect(templateRendered).toEqual( + "Lex Fridman Podcast - 351-–-Mr-Beast-Future-of-You-Tube,-Twitter,-Tik-Tok,-and-Instagram" + ); + }); + + it("renders simple podcast template finished", () => { + const template = "{{{title}}} - {{{episodeTitle}}}"; + + const progress: Progress = audiobookshelfProgressFinished as Progress; + const podcastItems = + audiobookshelfPodcastsLibraryItems as PodcastLibraryItems; + const podcast = podcastItems.results[1]; + const episode = podcast.media.episodes[1]; + + const templateRendered = renderTemplate( + template, + "http://localhost", + "MMM do,yyyy", + "podcast", + progress, + undefined, + podcast, + episode + ); + expect(templateRendered).toEqual( + "You Are Not So Smart - 250 - Awe - Dacher Keltner" + ); + }); + + it("renders complex podcast template", () => { + const template = `## {{{episodeTitle}}} +{{#genres.length}} +genres:: {{#genres}}[[{{{.}}}]]{{/genres}} +{{/genres.length}} +{{!===== Tags =====}} +{{#tags.length}} +tags:: {{#tags}}[[{{{.}}}]] {{/tags}} +{{/tags.length}} +{{!===== Started Date =====}} +{{#startedDate}} +startedDate:: [[{{{startedDateParsed}}}]] +{{/startedDate}} +{{!===== Finished Date =====}} +{{#finishedDate}} +finishedDate:: [[{{{finishedDateParsed}}}]] +{{/finishedDate}} +{{{episodeDescription}}}`; + + const progress: Progress = audiobookshelfProgress as Progress; + const podcastItems = + audiobookshelfPodcastsLibraryItems as PodcastLibraryItems; + const podcast = podcastItems.results[0]; + const episode = podcast.media.episodes[1]; + + const templateRendered = renderTemplate( + template, + "http://localhost", + "MMM do,yyyy", + "podcast", + progress, + undefined, + podcast, + episode + ); + expect(templateRendered).toEqual( + `## #352 – Omar Suleiman: Islam +genres:: [[Technology]][[Podcasts]][[Science]] +startedDate:: [[Nov 10th,2022]] +

Imam Omar Suleiman is the Founder and President of the Yaqeen Institute for Islamic Research and a professor of Islamic Studies at Southern Methodist University. Please support this podcast by checking out our sponsors: +– NetSuite: http://netsuite.com/lex to get free product tour +– House of Macadamias: https://houseofmacadamias.com/lex and use code LEX to get 20% off your first order +– ExpressVPN: https://expressvpn.com/lexpod to get 3 months free

+

EPISODE LINKS: +Omar’s Instagram: https://instagram.com/imamomarsuleiman +Omar’s Twitter: https://twitter.com/omarsuleiman504 +Omar’s Facebook: https://www.facebook.com/imamomarsuleiman +Yaqeen Institute’s YouTube: https://www.youtube.com/@yaqeeninstituteofficial +Yaqeen Institute’s Website: https://yaqeeninstitute.org

+

PODCAST INFO: +Podcast website: https://lexfridman.com/podcast +Apple Podcasts: https://apple.co/2lwqZIr +Spotify: https://spoti.fi/2nEwCF8 +RSS: https://lexfridman.com/feed/podcast/ +YouTube Full Episodes: https://youtube.com/lexfridman +YouTube Clips: https://youtube.com/lexclips

+

SUPPORT & CONNECT: +– Check out the sponsors above, it’s the best way to support this podcast +– Support on Patreon: https://www.patreon.com/lexfridman +– Twitter: https://twitter.com/lexfridman +– Instagram: https://www.instagram.com/lexfridman +– LinkedIn: https://www.linkedin.com/in/lexfridman +– Facebook: https://www.facebook.com/lexfridman +– Medium: https://medium.com/@lexfridman

+

OUTLINE: +Here’s the timestamps for the episode. On some podcast players you should be able to click the timestamp to jump to that time. +(00:00) – Introduction +(08:39) – God +(16:25) – Loss +(25:14) – Life after death +(26:53) – Why God allows suffering +(40:18) – Seeking the truth +(47:58) – Islamophobia +(1:12:55) – Muslim ban +(1:20:24) – Meaning of prayer +(1:34:01) – Mecca +(1:39:12) – Malcolm X +(1:42:23) – Muhammad Ali +(1:47:09) – Khabib Nurmagomedov +(1:53:19) – Prophets +(1:59:31) – Quran +(2:05:17) – Ramadan +(2:12:21) – Future of Islam +(2:15:30) – Colleyville synagogue hostage crisis +(2:23:37) – War and religion +(2:33:29) – Israel and Palestine +(2:59:13) – Hope for the future +(3:03:56) – Prayer

` + ); + }); +}); diff --git a/tsconfig.json b/tsconfig.json index e7ba7da..ad1d9af 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -50,6 +50,10 @@ // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ // "typeRoots": [], /* List of folders to include type definitions from. */ + "typeRoots": [ + "node_modules/@types", + "src/types" + ], // "types": [], /* Type declaration files to be included in compilation. */ "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */