[Bug] OPML uploader using wrong path separator #936

Closed
opened 2026-04-24 23:26:40 +02:00 by adam · 2 comments
Owner

Originally created by @advplyr on GitHub (Feb 4, 2023).

Steps to reproduce

1. Import the OPML file

container logs during import process
audiobookshelf_1  | [2023-02-04 16:45:15] INFO: [CoverManager] Downloaded libraryItem cover "/data/podcasts\2.5 Admins/cover.png" from url "https://2.5admins.com/wp-content/uploads/powerpress/2.5-admins-1600.png" for "2.5 Admins"
audiobookshelf_1  | [2023-02-04 16:45:16] INFO: [CoverManager] Downloaded libraryItem cover "/data/podcasts\99% Invisible/cover.jpg" from url "https://image.simplecastcdn.com/images/5b7d8c77-15ba-4eff-a999-2e725db21db5/c43e134f-15e6-41ae-9a2e-5e57cf761473/3000x3000/stitcher-cover-99percentinvisible-3000x3000-r2021-final.jpg?aid=rss_feed" for "99% Invisible"
audiobookshelf_1  | [2023-02-04 16:45:17] INFO: [CoverManager] Downloaded libraryItem cover "/data/podcasts\A Death In Cryptoland/cover.jpg" from url "https://www.cbc.ca/radio/podcasts/images/adeathincryptoland-promo.jpg" for "A Death In Cryptoland"

2. Download an episode

The episode should be saved in the podcast directory but there is nothing there:

# tree -L 2
.
├── audiobooks
├── books
└── podcasts

3. Force rescan podcast library

container logs during rescan
audiobookshelf_1  | [2023-02-04 16:51:37] INFO: [Scanner] Starting library scan lscan_tdl7uztc7kkg6qaesq for pods
audiobookshelf_1  | [2023-02-04 16:51:37] ERROR: Root path has no media folders: /data/podcasts (scandir.js:191)
audiobookshelf_1  | [2023-02-04 16:51:37] INFO: [Scanner] Library scan lscan_tdl7uztc7kkg6qaesq completed in 0:00.0 | 0 Added | 0 Updated | 3 Missing
audiobookshelf_1  | [2023-02-04 16:51:37] INFO: [LibraryController] Scan complete
audiobookshelf_1  | [2023-02-04 16:51:37] INFO: [LibraryScan] Scan log saved "/metadata/logs/scans/2023-02-04_lscan_tdl7uztc7kkg6qaesq.txt"

4. Check scan log

scan log
# cat 2023-02-04_lscan_tdl7uztc7kkg6qaesq.txt
{"id":"lscan_tdl7uztc7kkg6qaesq","type":"scan","libraryId":"lib_3q2zcu36yjvny4s6y2","libraryName":"pods","libraryMediaType":"podcast","folders":[{"id":"fol_2qdgzm399q7kke0k1p","fullPath":"/data/podcasts","libraryId":"lib_3q2zcu36yjvny4s6y2","addedAt":1675523275927}],"scanOptions":{"forceRescan":true,"parseSubtitles":false,"findCovers":false,"storeCoverWithItem":false,"preferAudioMetadata":false,"preferOpfMetadata":false,"preferMatchedMetadata":false,"preferOverdriveMediaMarker":false},"startedAt":1675529497357,"finishedAt":1675529497380,"elapsed":23,"resultsAdded":0,"resultsUpdated":0,"resultsMissing":3}
{"timestamp":"2023-02-04T16:51:37.363Z","message":"0 item data found in folder \"/data/podcasts\"","levelName":"INFO","level":2}
{"timestamp":"2023-02-04T16:51:37.363Z","message":"Library Item \"A Death In Cryptoland\" is missing","levelName":"WARN","level":3}
{"timestamp":"2023-02-04T16:51:37.363Z","message":"Library Item \"2.5 Admins\" is missing","levelName":"WARN","level":3}
{"timestamp":"2023-02-04T16:51:37.363Z","message":"Library Item \"99% Invisible\" is missing","levelName":"WARN","level":3}

Screenshots

Expand me

image
image

Later edit: more logs

audiobookshelf_1  | [2023-02-04 15:07:55] INFO: [Watcher] Initializing watcher for "pods".
audiobookshelf_1  | [2023-02-04 15:07:55] INFO: [Watcher] "pods" Ready
audiobookshelf_1  | [2023-02-04 15:59:26] INFO: [Server] Socket w0t9Irl0DwZtv-V6AAAB disconnected from client "root" after 3105940ms (Reason: transport close)
audiobookshelf_1  | [2023-02-04 15:59:27] INFO: [Server] Socket Connected uSUJh0Y7t4NfmEm0AAAD
audiobookshelf_1  | [2023-02-04 16:45:15] INFO: [CoverManager] Downloaded libraryItem cover "/data/podcasts\2.5 Admins/cover.png" from url "https://2.5admins.com/wp-content/uploads/powerpress/2.5-admins-1600.png" for "2.5 Admins"
audiobookshelf_1  | [2023-02-04 16:45:16] INFO: [CoverManager] Downloaded libraryItem cover "/data/podcasts\99% Invisible/cover.jpg" from url "https://image.simplecastcdn.com/images/5b7d8c77-15ba-4eff-a999-2e725db21db5/c43e134f-15e6-41ae-9a2e-5e57cf761473/3000x3000/stitcher-cover-99percentinvisible-3000x3000-r2021-final.jpg?aid=rss_feed" for "99% Invisible"
audiobookshelf_1  | [2023-02-04 16:45:17] INFO: [CoverManager] Downloaded libraryItem cover "/data/podcasts\A Death In Cryptoland/cover.jpg" from url "https://www.cbc.ca/radio/podcasts/images/adeathincryptoland-promo.jpg" for "A Death In Cryptoland"
audiobookshelf_1  | [2023-02-04 16:46:15] INFO: [Server] Socket Connected v8S4OjopfghTX-j1AAAF
audiobookshelf_1  | npm ERR! path /
audiobookshelf_1  | npm ERR! command failed
audiobookshelf_1  | npm ERR! signal SIGTERM
audiobookshelf_1  | npm ERR! command sh -c -- node index.js
audiobookshelf_1  | 
audiobookshelf_1  | npm ERR! A complete log of this run can be found in:
audiobookshelf_1  | npm ERR!     /root/.npm/_logs/2023-02-04T15_07_28_886Z-debug-0.log
audiobookshelf_1  | 
audiobookshelf_1  | > audiobookshelf@2.2.14 start
audiobookshelf_1  | > node index.js
audiobookshelf_1  | 
audiobookshelf_1  | Config /config /metadata
audiobookshelf_1  | [2023-02-04 16:46:37] INFO: === Starting Server ===
audiobookshelf_1  | [2023-02-04 16:46:37] INFO: [Server] Init v2.2.14

Originally posted by @danielnbalasoiu in https://github.com/advplyr/audiobookshelf/issues/474#issuecomment-1416801019

Originally created by @advplyr on GitHub (Feb 4, 2023). ## Steps to reproduce #### 1. Import the OPML file <details> <summary>container logs during import process</summary> ``` audiobookshelf_1 | [2023-02-04 16:45:15] INFO: [CoverManager] Downloaded libraryItem cover "/data/podcasts\2.5 Admins/cover.png" from url "https://2.5admins.com/wp-content/uploads/powerpress/2.5-admins-1600.png" for "2.5 Admins" audiobookshelf_1 | [2023-02-04 16:45:16] INFO: [CoverManager] Downloaded libraryItem cover "/data/podcasts\99% Invisible/cover.jpg" from url "https://image.simplecastcdn.com/images/5b7d8c77-15ba-4eff-a999-2e725db21db5/c43e134f-15e6-41ae-9a2e-5e57cf761473/3000x3000/stitcher-cover-99percentinvisible-3000x3000-r2021-final.jpg?aid=rss_feed" for "99% Invisible" audiobookshelf_1 | [2023-02-04 16:45:17] INFO: [CoverManager] Downloaded libraryItem cover "/data/podcasts\A Death In Cryptoland/cover.jpg" from url "https://www.cbc.ca/radio/podcasts/images/adeathincryptoland-promo.jpg" for "A Death In Cryptoland" ``` </details> #### 2. Download an episode The episode should be saved in the `podcast` directory but there is nothing there: ```shell # tree -L 2 . ├── audiobooks ├── books └── podcasts ``` #### 3. Force rescan podcast library <details> <summary>container logs during rescan</summary> ``` audiobookshelf_1 | [2023-02-04 16:51:37] INFO: [Scanner] Starting library scan lscan_tdl7uztc7kkg6qaesq for pods audiobookshelf_1 | [2023-02-04 16:51:37] ERROR: Root path has no media folders: /data/podcasts (scandir.js:191) audiobookshelf_1 | [2023-02-04 16:51:37] INFO: [Scanner] Library scan lscan_tdl7uztc7kkg6qaesq completed in 0:00.0 | 0 Added | 0 Updated | 3 Missing audiobookshelf_1 | [2023-02-04 16:51:37] INFO: [LibraryController] Scan complete audiobookshelf_1 | [2023-02-04 16:51:37] INFO: [LibraryScan] Scan log saved "/metadata/logs/scans/2023-02-04_lscan_tdl7uztc7kkg6qaesq.txt" ``` </details> #### 4. Check scan log <details> <summary>scan log</summary> ``` # cat 2023-02-04_lscan_tdl7uztc7kkg6qaesq.txt {"id":"lscan_tdl7uztc7kkg6qaesq","type":"scan","libraryId":"lib_3q2zcu36yjvny4s6y2","libraryName":"pods","libraryMediaType":"podcast","folders":[{"id":"fol_2qdgzm399q7kke0k1p","fullPath":"/data/podcasts","libraryId":"lib_3q2zcu36yjvny4s6y2","addedAt":1675523275927}],"scanOptions":{"forceRescan":true,"parseSubtitles":false,"findCovers":false,"storeCoverWithItem":false,"preferAudioMetadata":false,"preferOpfMetadata":false,"preferMatchedMetadata":false,"preferOverdriveMediaMarker":false},"startedAt":1675529497357,"finishedAt":1675529497380,"elapsed":23,"resultsAdded":0,"resultsUpdated":0,"resultsMissing":3} {"timestamp":"2023-02-04T16:51:37.363Z","message":"0 item data found in folder \"/data/podcasts\"","levelName":"INFO","level":2} {"timestamp":"2023-02-04T16:51:37.363Z","message":"Library Item \"A Death In Cryptoland\" is missing","levelName":"WARN","level":3} {"timestamp":"2023-02-04T16:51:37.363Z","message":"Library Item \"2.5 Admins\" is missing","levelName":"WARN","level":3} {"timestamp":"2023-02-04T16:51:37.363Z","message":"Library Item \"99% Invisible\" is missing","levelName":"WARN","level":3} ``` </details> ### Screenshots <details> <summary>Expand me</summary> ![image](https://user-images.githubusercontent.com/46020698/216779954-a19e7168-76d8-4952-85fa-acfdf17a00f6.png) ![image](https://user-images.githubusercontent.com/46020698/216779968-888815a5-6d09-43be-921e-34a5e7076800.png) </details> Later edit: more logs ``` audiobookshelf_1 | [2023-02-04 15:07:55] INFO: [Watcher] Initializing watcher for "pods". audiobookshelf_1 | [2023-02-04 15:07:55] INFO: [Watcher] "pods" Ready audiobookshelf_1 | [2023-02-04 15:59:26] INFO: [Server] Socket w0t9Irl0DwZtv-V6AAAB disconnected from client "root" after 3105940ms (Reason: transport close) audiobookshelf_1 | [2023-02-04 15:59:27] INFO: [Server] Socket Connected uSUJh0Y7t4NfmEm0AAAD audiobookshelf_1 | [2023-02-04 16:45:15] INFO: [CoverManager] Downloaded libraryItem cover "/data/podcasts\2.5 Admins/cover.png" from url "https://2.5admins.com/wp-content/uploads/powerpress/2.5-admins-1600.png" for "2.5 Admins" audiobookshelf_1 | [2023-02-04 16:45:16] INFO: [CoverManager] Downloaded libraryItem cover "/data/podcasts\99% Invisible/cover.jpg" from url "https://image.simplecastcdn.com/images/5b7d8c77-15ba-4eff-a999-2e725db21db5/c43e134f-15e6-41ae-9a2e-5e57cf761473/3000x3000/stitcher-cover-99percentinvisible-3000x3000-r2021-final.jpg?aid=rss_feed" for "99% Invisible" audiobookshelf_1 | [2023-02-04 16:45:17] INFO: [CoverManager] Downloaded libraryItem cover "/data/podcasts\A Death In Cryptoland/cover.jpg" from url "https://www.cbc.ca/radio/podcasts/images/adeathincryptoland-promo.jpg" for "A Death In Cryptoland" audiobookshelf_1 | [2023-02-04 16:46:15] INFO: [Server] Socket Connected v8S4OjopfghTX-j1AAAF audiobookshelf_1 | npm ERR! path / audiobookshelf_1 | npm ERR! command failed audiobookshelf_1 | npm ERR! signal SIGTERM audiobookshelf_1 | npm ERR! command sh -c -- node index.js audiobookshelf_1 | audiobookshelf_1 | npm ERR! A complete log of this run can be found in: audiobookshelf_1 | npm ERR! /root/.npm/_logs/2023-02-04T15_07_28_886Z-debug-0.log audiobookshelf_1 | audiobookshelf_1 | > audiobookshelf@2.2.14 start audiobookshelf_1 | > node index.js audiobookshelf_1 | audiobookshelf_1 | Config /config /metadata audiobookshelf_1 | [2023-02-04 16:46:37] INFO: === Starting Server === audiobookshelf_1 | [2023-02-04 16:46:37] INFO: [Server] Init v2.2.14 ``` _Originally posted by @danielnbalasoiu in https://github.com/advplyr/audiobookshelf/issues/474#issuecomment-1416801019_
adam closed this issue 2026-04-24 23:26:41 +02:00
Author
Owner

@danielnbalasoiu commented on GitHub (Feb 4, 2023):

I tested the advplyr/audiobookshelf:edge image and it works. 🎉🥳

image

Thank you @advplyr ! 🤝 Keep up the great work you're doing! 🚀

@danielnbalasoiu commented on GitHub (Feb 4, 2023): I tested the `advplyr/audiobookshelf:edge` image and it works. 🎉🥳 ![image](https://user-images.githubusercontent.com/46020698/216788864-5fb770bb-33b8-43d9-a88a-88bb44d16667.png) Thank you @advplyr ! :handshake: Keep up the great work you're doing! :rocket:
Author
Owner

@advplyr commented on GitHub (Feb 12, 2023):

Fixed in v2.2.15

@advplyr commented on GitHub (Feb 12, 2023): Fixed in [v2.2.15](https://github.com/advplyr/audiobookshelf/releases/tag/v2.2.15)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf#936