Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DLNA not showing certain folders' content #9

Open
ptasznikarium opened this issue Apr 12, 2021 · 22 comments
Open

DLNA not showing certain folders' content #9

ptasznikarium opened this issue Apr 12, 2021 · 22 comments
Assignees

Comments

@ptasznikarium
Copy link

When using DLNA, going to 'Folders' view, then my music folder, then Artist folder, you should see Albums' folders of that Artist.
Problem is if Artist's folder is in format "Artist_name -- discography", then there is no Albums listed.

Content is still available if I access it by anything else than 'Folders' view.

It was working fine before JF 10.7 (I went from 10.6.x to 10.7.1) and still is broken in 10.7.2

All Artists with folders in format "Artist_name -- discography" and "Artist_name -- discography YYYY" are affected.

I tried renaming test folder by removing " -- discography" part. refreshing metadata, and restarting JF, but in DLNA I still could see old "Artist_name -- discography" folder, so not sure how to test it....

System (please complete the following information):

  • OS: Linux
  • Virtualization: None, JF is installed
  • Clients: Any DLNA client
  • Jellyfin Version: 10.7.1 and 10.7.2
  • Storage: NAS, Linux EXT
@BaronGreenback BaronGreenback self-assigned this Apr 15, 2021
@BaronGreenback
Copy link

I think i've been able to reproduce this - @ptasznikarium can you check to see if the files are visible in the web interface - because they aren't on mine.

@BaronGreenback
Copy link

After further investigation - it looks like the folder is never being scanned.

@ptasznikarium
Copy link
Author

Mine were visible, but was scanned long time ago @BaronGreenback

However I added new artist with same naming format and it was scanned without issue.
It shows everywhere but in folder/artist/ view.

@BaronGreenback
Copy link

BaronGreenback commented Apr 19, 2021

I'm not able to reproduce the issue - is the below correct? (The music does have tags embedded)

Folder structure
image

VLC
image

@ptasznikarium
Copy link
Author

Nope @BaronGreenback
Given your folders, in VLC go to
Folders -> Music1 -> 10,00 Maniaics -- discography

@ptasznikarium
Copy link
Author

ptasznikarium commented Apr 19, 2021

I see your 10,00 Manaics -- discography is in Music, while in VLC you look at Music1
Also it looks like two different servers, 'Jellyfin Test Music', while in VLC it's 'Jellyfin - BrotherOFBeast'

This poses no problem tho as bug is in Folders view

@BaronGreenback
Copy link

The library is called music1 as i've already got another music.

This is what's in all the folders.

image

@ptasznikarium
Copy link
Author

Ok, but problem is in 'Folders' view, not in 'Music' @BaronGreenback

image

@BaronGreenback
Copy link

Sorry - early in the morning here.

I'm running with full debug - so my response is very slow, but i did eventually get.

image

@ptasznikarium
Copy link
Author

ptasznikarium commented Apr 20, 2021

No worries, I might have not explained it well enough in first place, I blame my english (that is my 3rd language, therefore not that great) ;)

Yes you can see Artist's folders, but no Albums in those affected Artist folders.

@ptasznikarium
Copy link
Author

So for example Artist's Albums on server:

image

Accessing DLNA via Windows 10 File Explorer or via music player on Android, I can see this structure:

image

And as shown above, there is no Albums displayed in that 'Folders view'.

But those are visible in other views, for example in Music -> Album Artist:

image

@ptasznikarium
Copy link
Author

On a side note, I can see that in VLC you see folder structure as:
Folders / FOLDER / Music / 10,000 Maniacs
Wondering where this is coming from as I would expect:
Folders / Music / 10,000 Maniacs

Not sure what is causing to display that FOLDER between Folders and Music.

@BaronGreenback
Copy link

progressed it a bit further.

First thing I've found is that the file type is important. VLC doesn't show items if it doesn't like the file type. (This seems to be the case even if it can play the contents.)

@ptasznikarium
Copy link
Author

This have nothing to do with VLC @BaronGreenback .
I do not have VLC,
I used DLNA on Windows 10 File Explorer and Foobar on Android.
both was working fine before 10.7 (or 10.7.1).

Most of my files are FLAC but I tested on MP3 amd it's the same.

On a sidenote, DLNA is broken on Foobar for Android, you see server but cannot go in, Not sure if it's Foobar update that broke it but I suspect it's 10.7 as well. Maybe will have some time next week to get old version of JF and test it.

@BaronGreenback
Copy link

this same issue appears on hisense tv.

@BaronGreenback
Copy link

FYI: Confirmed that DLNA folders doesn't work as expected - as well as hiding folders/items, it also displays items from other libraries.

@BaronGreenback
Copy link

BaronGreenback commented May 10, 2021

Have traced the issue to how JF expects the folder structure to be.

eg.
Physical File Structure is..
...\Music\10,000 Maniacs\10,000 Manaics -- discography\Disc 1

Can only get this.
image

This is because "10,000 Manaics -- discography" (ignore the spelling mistake) is stored as a MusicAlbum by the scanner.
(The MusicAlbum class returns the property Tracks as their siblings, whereas Folders return the property Children, so you are not able to move down the database tree because of how the item is read from the database.)

@BaronGreenback
Copy link

image

@ptasznikarium
Copy link
Author

Have traced the issue to how JF expects the folder structure to be.

eg.
Physical File Structure is..
...\Music\10,000 Maniacs\10,000 Manaics -- discography\Disc 1

This is because "10,000 Manaics -- discography" (ignore the spelling mistake) is stored as a MusicAlbum by the scanner.
(The MusicAlbum class returns the property Tracks as their siblings, whereas Folders return the property Children, so you are not able to move down the database tree because of how the item is read from the database.)

This is a bit strange, why you would go for structure like ".. \Artist \ Artist -- discography \ ..." ?

My structure is like following:
...\Music\10,000 Maniacs -- discography\Album 1\CD 1
...\Music\10,000 Maniacs -- discography\Album 1\CD 2
...\Music\10,000 Maniacs -- discography\Album 2
etc

I miss content as described previously, only if Artist have ' -- discography' appended.

@BaronGreenback
Copy link

BaronGreenback commented May 10, 2021

That's because it currently uses the internal name for the item and not the folder name.

In my instance 10,000 Maniacs -- discography is the folder name.

@barronpm barronpm transferred this issue from jellyfin/jellyfin Nov 30, 2023
@Hadatko
Copy link

Hadatko commented Dec 14, 2023

Hello. This looks still an issue :'( at least on TCL tv

I noticed a lot of errors like this:

[2023-12-14 04:02:17.935 +01:00] [ERR] [131] Emby.Dlna.ContentDirectory.ContentDirectoryService: Error processing control request
System.NullReferenceException: Object reference not set to an instance of an object.
   at MediaBrowser.Model.Dlna.StreamBuilder.BuildVideoItem(MediaSourceInfo item, VideoOptions options)
   at MediaBrowser.Model.Dlna.StreamBuilder.BuildVideoItem(VideoOptions options)
   at Emby.Dlna.Didl.DidlBuilder.AddVideoResource(XmlWriter writer, BaseItem video, String deviceId, Filter filter, StreamInfo streamInfo)
   at Emby.Dlna.Didl.DidlBuilder.WriteItemElement(XmlWriter writer, BaseItem item, User user, BaseItem context, Nullable`1 contextStubType, String deviceId, Filter filter, StreamInfo streamInfo)
   at Emby.Dlna.ContentDirectory.ControlHandler.HandleBrowse(XmlWriter xmlWriter, IReadOnlyDictionary`2 sparams, String deviceId)
   at Emby.Dlna.Service.BaseControlHandler.CreateControlResponse(ControlRequestInfo requestInfo)
   at Emby.Dlna.Service.BaseControlHandler.ProcessControlRequestInternalAsync(ControlRequest request)
   at Emby.Dlna.Service.BaseControlHandler.ProcessControlRequestAsync(ControlRequest request)
[2023-12-14 04:02:17.954 +01:00] [INF] [131] Emby.Dlna.ContentDirectory.ContentDirectoryService: StreamBuilder.BuildVideoItem( Profile="Generic Device", Path="/data/movies/Akcne/1997 - Piaty element/The.Fifth.Element.BluRay.1080p.x264.5.1.Judas.mp4", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) "media:/videos/dbf9430e-14ce-6053-32fd-6aa460c31bcc/stream.mov?MediaSourceId=dbf9430e14ce605332fd6aa460c31bcc&Static=true&VideoCodec=h264&AudioCodec=aac&AudioStreamIndex=1&api_key=<token>&Tag=b8381ba5293b2b9de9075d70749f7b34"
[2023-12-14 04:02:17.954 +01:00] [INF] [131] Emby.Dlna.ContentDirectory.ContentDirectoryService: StreamBuilder.BuildVideoItem( Profile="Generic Device", Path="/data/movies/Akcne/1998 - Armagedon/Armageddon.avi", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) "media:/videos/7017a8cb-7ba2-28fb-ded4-943220072891/stream.mkv?MediaSourceId=7017a8cb7ba228fbded4943220072891&Static=true&VideoCodec=mpeg4&AudioCodec=mp3&AudioStreamIndex=1&api_key=<token>&Tag=fec8c7bb8c8a6e29680d354b8c38bf7f"
[2023-12-14 04:02:17.955 +01:00] [ERR] [131] Emby.Dlna.ContentDirectory.ContentDirectoryService: Error processing control request
System.NullReferenceException: Object reference not set to an instance of an object.
   at MediaBrowser.Model.Dlna.StreamBuilder.BuildVideoItem(MediaSourceInfo item, VideoOptions options)
   at MediaBrowser.Model.Dlna.StreamBuilder.BuildVideoItem(VideoOptions options)
   at Emby.Dlna.Didl.DidlBuilder.AddVideoResource(XmlWriter writer, BaseItem video, String deviceId, Filter filter, StreamInfo streamInfo)
   at Emby.Dlna.Didl.DidlBuilder.WriteItemElement(XmlWriter writer, BaseItem item, User user, BaseItem context, Nullable`1 contextStubType, String deviceId, Filter filter, StreamInfo streamInfo)
   at Emby.Dlna.ContentDirectory.ControlHandler.HandleBrowse(XmlWriter xmlWriter, IReadOnlyDictionary`2 sparams, String deviceId)
   at Emby.Dlna.Service.BaseControlHandler.CreateControlResponse(ControlRequestInfo requestInfo)
   at Emby.Dlna.Service.BaseControlHandler.ProcessControlRequestInternalAsync(ControlRequest request)
   at Emby.Dlna.Service.BaseControlHandler.ProcessControlRequestAsync(ControlRequest request)
[2023-12-14 04:02:17.971 +01:00] [INF] [131] Emby.Dlna.ContentDirectory.ContentDirectoryService: StreamBuilder.BuildVideoItem( Profile="Generic Device", Path="/data/movies/Akcne/1997 - Piaty element/The.Fifth.Element.BluRay.1080p.x264.5.1.Judas.mp4", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) "media:/videos/dbf9430e-14ce-6053-32fd-6aa460c31bcc/stream.mov?MediaSourceId=dbf9430e14ce605332fd6aa460c31bcc&Static=true&VideoCodec=h264&AudioCodec=aac&AudioStreamIndex=1&api_key=<token>&Tag=b8381ba5293b2b9de9075d70749f7b34"
[2023-12-14 04:02:17.972 +01:00] [INF] [131] Emby.Dlna.ContentDirectory.ContentDirectoryService: StreamBuilder.BuildVideoItem( Profile="Generic Device", Path="/data/movies/Akcne/1998 - Armagedon/Armageddon.avi", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) "media:/videos/7017a8cb-7ba2-28fb-ded4-943220072891/stream.mkv?MediaSourceId=7017a8cb7ba228fbded4943220072891&Static=true&VideoCodec=mpeg4&AudioCodec=mp3&AudioStreamIndex=1&api_key=<token>&Tag=fec8c7bb8c8a6e29680d354b8c38bf7f"
[2023-12-14 04:02:17.972 +01:00] [ERR] [131] Emby.Dlna.ContentDirectory.ContentDirectoryService: Error processing control request
System.NullReferenceException: Object reference not set to an instance of an object.
   at MediaBrowser.Model.Dlna.StreamBuilder.BuildVideoItem(MediaSourceInfo item, VideoOptions options)
   at MediaBrowser.Model.Dlna.StreamBuilder.BuildVideoItem(VideoOptions options)
   at Emby.Dlna.Didl.DidlBuilder.AddVideoResource(XmlWriter writer, BaseItem video, String deviceId, Filter filter, StreamInfo streamInfo)
   at Emby.Dlna.Didl.DidlBuilder.WriteItemElement(XmlWriter writer, BaseItem item, User user, BaseItem context, Nullable`1 contextStubType, String deviceId, Filter filter, StreamInfo streamInfo)
   at Emby.Dlna.ContentDirectory.ControlHandler.HandleBrowse(XmlWriter xmlWriter, IReadOnlyDictionary`2 sparams, String deviceId)
   at Emby.Dlna.Service.BaseControlHandler.CreateControlResponse(ControlRequestInfo requestInfo)
   at Emby.Dlna.Service.BaseControlHandler.ProcessControlRequestInternalAsync(ControlRequest request)
   at Emby.Dlna.Service.BaseControlHandler.ProcessControlRequestAsync(ControlRequest request)
[2023-12-14 04:02:19.908 +01:00] [INF] [144] Emby.Dlna.ContentDirectory.ContentDirectoryService: StreamBuilder.BuildVideoItem( Profile="Generic Device", Path="/data/movies/ARozpravky/1992 - Tom a Jerry - Film Cz/Tom a Jerry - Film  (1992) Cz.avi", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) "media:/videos/c3488636-663e-f823-5743-c5487ddce522/stream.avi?MediaSourceId=c3488636663ef8235743c5487ddce522&Static=true&VideoCodec=mpeg4&AudioCodec=mp3&AudioStreamIndex=1&api_key=<token>&Tag=91339e65d8fa0950dcc2a8bd22d54492"

@mikeilabs
Copy link

Hello. This looks still an issue :'( at least on TCL tv

I noticed a lot of errors like this:

[2023-12-14 04:02:17.935 +01:00] [ERR] [131] Emby.Dlna.ContentDirectory.ContentDirectoryService: Error processing control request
System.NullReferenceException: Object reference not set to an instance of an object.
   at MediaBrowser.Model.Dlna.StreamBuilder.BuildVideoItem(MediaSourceInfo item, VideoOptions options)
   at MediaBrowser.Model.Dlna.StreamBuilder.BuildVideoItem(VideoOptions options)
   at Emby.Dlna.Didl.DidlBuilder.AddVideoResource(XmlWriter writer, BaseItem video, String deviceId, Filter filter, StreamInfo streamInfo)
   at Emby.Dlna.Didl.DidlBuilder.WriteItemElement(XmlWriter writer, BaseItem item, User user, BaseItem context, Nullable`1 contextStubType, String deviceId, Filter filter, StreamInfo streamInfo)
   at Emby.Dlna.ContentDirectory.ControlHandler.HandleBrowse(XmlWriter xmlWriter, IReadOnlyDictionary`2 sparams, String deviceId)
   at Emby.Dlna.Service.BaseControlHandler.CreateControlResponse(ControlRequestInfo requestInfo)
   at Emby.Dlna.Service.BaseControlHandler.ProcessControlRequestInternalAsync(ControlRequest request)
   at Emby.Dlna.Service.BaseControlHandler.ProcessControlRequestAsync(ControlRequest request)
[2023-12-14 04:02:17.954 +01:00] [INF] [131] Emby.Dlna.ContentDirectory.ContentDirectoryService: StreamBuilder.BuildVideoItem( Profile="Generic Device", Path="/data/movies/Akcne/1997 - Piaty element/The.Fifth.Element.BluRay.1080p.x264.5.1.Judas.mp4", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) "media:/videos/dbf9430e-14ce-6053-32fd-6aa460c31bcc/stream.mov?MediaSourceId=dbf9430e14ce605332fd6aa460c31bcc&Static=true&VideoCodec=h264&AudioCodec=aac&AudioStreamIndex=1&api_key=<token>&Tag=b8381ba5293b2b9de9075d70749f7b34"
[2023-12-14 04:02:17.954 +01:00] [INF] [131] Emby.Dlna.ContentDirectory.ContentDirectoryService: StreamBuilder.BuildVideoItem( Profile="Generic Device", Path="/data/movies/Akcne/1998 - Armagedon/Armageddon.avi", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) "media:/videos/7017a8cb-7ba2-28fb-ded4-943220072891/stream.mkv?MediaSourceId=7017a8cb7ba228fbded4943220072891&Static=true&VideoCodec=mpeg4&AudioCodec=mp3&AudioStreamIndex=1&api_key=<token>&Tag=fec8c7bb8c8a6e29680d354b8c38bf7f"
[2023-12-14 04:02:17.955 +01:00] [ERR] [131] Emby.Dlna.ContentDirectory.ContentDirectoryService: Error processing control request
System.NullReferenceException: Object reference not set to an instance of an object.
   at MediaBrowser.Model.Dlna.StreamBuilder.BuildVideoItem(MediaSourceInfo item, VideoOptions options)
   at MediaBrowser.Model.Dlna.StreamBuilder.BuildVideoItem(VideoOptions options)
   at Emby.Dlna.Didl.DidlBuilder.AddVideoResource(XmlWriter writer, BaseItem video, String deviceId, Filter filter, StreamInfo streamInfo)
   at Emby.Dlna.Didl.DidlBuilder.WriteItemElement(XmlWriter writer, BaseItem item, User user, BaseItem context, Nullable`1 contextStubType, String deviceId, Filter filter, StreamInfo streamInfo)
   at Emby.Dlna.ContentDirectory.ControlHandler.HandleBrowse(XmlWriter xmlWriter, IReadOnlyDictionary`2 sparams, String deviceId)
   at Emby.Dlna.Service.BaseControlHandler.CreateControlResponse(ControlRequestInfo requestInfo)
   at Emby.Dlna.Service.BaseControlHandler.ProcessControlRequestInternalAsync(ControlRequest request)
   at Emby.Dlna.Service.BaseControlHandler.ProcessControlRequestAsync(ControlRequest request)
[2023-12-14 04:02:17.971 +01:00] [INF] [131] Emby.Dlna.ContentDirectory.ContentDirectoryService: StreamBuilder.BuildVideoItem( Profile="Generic Device", Path="/data/movies/Akcne/1997 - Piaty element/The.Fifth.Element.BluRay.1080p.x264.5.1.Judas.mp4", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) "media:/videos/dbf9430e-14ce-6053-32fd-6aa460c31bcc/stream.mov?MediaSourceId=dbf9430e14ce605332fd6aa460c31bcc&Static=true&VideoCodec=h264&AudioCodec=aac&AudioStreamIndex=1&api_key=<token>&Tag=b8381ba5293b2b9de9075d70749f7b34"
[2023-12-14 04:02:17.972 +01:00] [INF] [131] Emby.Dlna.ContentDirectory.ContentDirectoryService: StreamBuilder.BuildVideoItem( Profile="Generic Device", Path="/data/movies/Akcne/1998 - Armagedon/Armageddon.avi", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) "media:/videos/7017a8cb-7ba2-28fb-ded4-943220072891/stream.mkv?MediaSourceId=7017a8cb7ba228fbded4943220072891&Static=true&VideoCodec=mpeg4&AudioCodec=mp3&AudioStreamIndex=1&api_key=<token>&Tag=fec8c7bb8c8a6e29680d354b8c38bf7f"
[2023-12-14 04:02:17.972 +01:00] [ERR] [131] Emby.Dlna.ContentDirectory.ContentDirectoryService: Error processing control request
System.NullReferenceException: Object reference not set to an instance of an object.
   at MediaBrowser.Model.Dlna.StreamBuilder.BuildVideoItem(MediaSourceInfo item, VideoOptions options)
   at MediaBrowser.Model.Dlna.StreamBuilder.BuildVideoItem(VideoOptions options)
   at Emby.Dlna.Didl.DidlBuilder.AddVideoResource(XmlWriter writer, BaseItem video, String deviceId, Filter filter, StreamInfo streamInfo)
   at Emby.Dlna.Didl.DidlBuilder.WriteItemElement(XmlWriter writer, BaseItem item, User user, BaseItem context, Nullable`1 contextStubType, String deviceId, Filter filter, StreamInfo streamInfo)
   at Emby.Dlna.ContentDirectory.ControlHandler.HandleBrowse(XmlWriter xmlWriter, IReadOnlyDictionary`2 sparams, String deviceId)
   at Emby.Dlna.Service.BaseControlHandler.CreateControlResponse(ControlRequestInfo requestInfo)
   at Emby.Dlna.Service.BaseControlHandler.ProcessControlRequestInternalAsync(ControlRequest request)
   at Emby.Dlna.Service.BaseControlHandler.ProcessControlRequestAsync(ControlRequest request)
[2023-12-14 04:02:19.908 +01:00] [INF] [144] Emby.Dlna.ContentDirectory.ContentDirectoryService: StreamBuilder.BuildVideoItem( Profile="Generic Device", Path="/data/movies/ARozpravky/1992 - Tom a Jerry - Film Cz/Tom a Jerry - Film  (1992) Cz.avi", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) "media:/videos/c3488636-663e-f823-5743-c5487ddce522/stream.avi?MediaSourceId=c3488636663ef8235743c5487ddce522&Static=true&VideoCodec=mpeg4&AudioCodec=mp3&AudioStreamIndex=1&api_key=<token>&Tag=91339e65d8fa0950dcc2a8bd22d54492"

Have the same Issue, switched back to Emby because no directories or files are displayed in Jellyfin

@github-actions github-actions bot removed the bug label Jun 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

No branches or pull requests

4 participants