BaseURL seems to break DLNA/UPnP #1256

Closed
opened 2026-02-06 20:42:29 +03:00 by OVERLORD · 51 comments
Owner

Originally created by @DarwinAwardWinner on GitHub (Feb 4, 2020).

Describe the bug
I want my Jellyfin server accessible at https://myserver/jellyfin/, so I set the base URL to /jellyfin. However, whenever a base URL is set, UPnP stops working (tested with VLC and gssdp-discover). Disabling base URL (setting it to empty) makes UPnP start working again.

To Reproduce

  1. Start with base URL disabled.
  2. Verify that UPnP is working.
  3. Set a base URL and restart Jellyfin.
  4. UPnP no longer works (e.g. not visible in VLC's UPnP menu)
  5. Unset base URL and restart Jellyfin
  6. UPnP works again.

Expected behavior
Setting a base URL should not cause UPnP discovery to stop working.

System (please complete the following information):

  • OS: Ubuntu 18.04.4 LTS
  • Browser: Firefox
  • Jellyfin Version: 10.4.3-1 and nightly 20200126
  • Installed Plugins: none
  • Reverse proxy: Caddy

Additional context
I was able to work around this issue for my use case by disabling Jellyfin's base URL and then configuring my Caddy reverse proxy appropriately, like this:

    # Jellyfin server
    proxy /jellyfin/ 127.0.0.1:8096 {
        transparent
        websocket
        without /jellyfin/ # Compensate for no base URL
    }

This issue was discussed in Matrix here: https://matrix.to/#/!omTEDrqCdeTFwiOuos:matrix.org/$1580844715840185QCpKn:matrix.org?via=matrix.org&via=bonifacelabs.ca&via=librem.one

Originally created by @DarwinAwardWinner on GitHub (Feb 4, 2020). **Describe the bug** I want my Jellyfin server accessible at https://myserver/jellyfin/, so I set the base URL to /jellyfin. However, whenever a base URL is set, UPnP stops working (tested with VLC and `gssdp-discover`). Disabling base URL (setting it to empty) makes UPnP start working again. **To Reproduce** <!-- Steps to reproduce the behavior: --> 1. Start with base URL disabled. 2. Verify that UPnP is working. 3. Set a base URL and restart Jellyfin. 4. UPnP no longer works (e.g. not visible in VLC's UPnP menu) 5. Unset base URL and restart Jellyfin 6. UPnP works again. **Expected behavior** Setting a base URL should not cause UPnP discovery to stop working. **System (please complete the following information):** - OS: Ubuntu 18.04.4 LTS - Browser: Firefox - Jellyfin Version: 10.4.3-1 and nightly 20200126 - Installed Plugins: none - Reverse proxy: Caddy **Additional context** I was able to work around this issue for my use case by disabling Jellyfin's base URL and then configuring my Caddy reverse proxy appropriately, like this: ``` # Jellyfin server proxy /jellyfin/ 127.0.0.1:8096 { transparent websocket without /jellyfin/ # Compensate for no base URL } ``` This issue was discussed in Matrix here: https://matrix.to/#/!omTEDrqCdeTFwiOuos:matrix.org/$1580844715840185QCpKn:matrix.org?via=matrix.org&via=bonifacelabs.ca&via=librem.one
OVERLORD added the bug label 2026-02-06 20:42:29 +03:00
Author
Owner

@PrplHaz4 commented on GitHub (Feb 5, 2020):

This is fixed on master. Will be in 10.5.

69d76af054

@PrplHaz4 commented on GitHub (Feb 5, 2020): This is fixed on master. Will be in 10.5. https://github.com/jellyfin/jellyfin/commit/69d76af054dd41cb729edc6d866413aa7e2de622
Author
Owner

@PrplHaz4 commented on GitHub (Feb 15, 2020):

@dkanada please reopen per https://github.com/jellyfin/jellyfin/issues/1322#issuecomment-586426345

@PrplHaz4 commented on GitHub (Feb 15, 2020): @dkanada please reopen per https://github.com/jellyfin/jellyfin/issues/1322#issuecomment-586426345
Author
Owner

@mazzystr commented on GitHub (Feb 15, 2020):

Sorry guys we don't have it yet.... Base URL: /jellyfin is still breaking DLNA. With Base URL set the server is discoverable but content cannot be listed. Blank out Base URL and server is discoverable, content is listable, and content is playable.

We gotta have Base URL working here. The next step is going to be running without --net=host, haproxy ssl offloading, and a broadcast relay between general network and container network.

Version : Jellyfin nightly image / 10.5.0
Clients: VLC android app & Yamaha RX-V685 amplifier

@mazzystr commented on GitHub (Feb 15, 2020): Sorry guys we don't have it yet.... `Base URL: /jellyfin` is still breaking DLNA. With `Base URL` set the server is discoverable but content cannot be listed. Blank out `Base URL` and server is discoverable, content is listable, and content is playable. We gotta have `Base URL` working here. The next step is going to be running without `--net=host`, haproxy ssl offloading, and a broadcast relay between general network and container network. Version : Jellyfin nightly image / 10.5.0 Clients: VLC android app & Yamaha RX-V685 amplifier
Author
Owner

@kylegordon commented on GitHub (Feb 19, 2020):

I see #1322 was closed in favour of this issue, but this issue does not mention non-exclusive port bindings as per https://github.com/jellyfin/jellyfin/issues/1322#issuecomment-573026321

Will that aspect of the issue also be covered, or would you rather it was opened as a new issue?

@kylegordon commented on GitHub (Feb 19, 2020): I see #1322 was closed in favour of this issue, but this issue does not mention non-exclusive port bindings as per https://github.com/jellyfin/jellyfin/issues/1322#issuecomment-573026321 Will that aspect of the issue also be covered, or would you rather it was opened as a new issue?
Author
Owner

@JustAMan commented on GitHub (Feb 19, 2020):

would you rather it was opened as a new issue?

It should be a separate issue, as it really is a separate issue :)

@JustAMan commented on GitHub (Feb 19, 2020): > would you rather it was opened as a new issue? It should be a separate issue, as it really _is_ a separate issue :)
Author
Owner

@Bond-009 commented on GitHub (Feb 20, 2020):

Did someone test this after #2400 was merged?

@Bond-009 commented on GitHub (Feb 20, 2020): Did someone test this after #2400 was merged?
Author
Owner

@PrplHaz4 commented on GitHub (Feb 20, 2020):

Did someone test this after #2400 was merged?

@mazzystr can you confirm the date or commit of the nightly you tested with (or test again with current nightly)?

@PrplHaz4 commented on GitHub (Feb 20, 2020): > > > Did someone test this after #2400 was merged? @mazzystr can you confirm the date or commit of the nightly you tested with (or test again with current nightly)?
Author
Owner

@Bond-009 commented on GitHub (Feb 20, 2020):

I would prefer the second option ;)

@Bond-009 commented on GitHub (Feb 20, 2020): I would prefer the second option ;)
Author
Owner

@mazzystr commented on GitHub (Feb 20, 2020):

$ podman image ls
registry.hub.docker.com/jellyfin/jellyfin     nightly           89ed24cc12ff   8 hours ago

I'm getting some descent results. My previous nightly was from 6 days ago... I deleted that and pulled new nightly. Initially DLNA failed with my existing system.xml using Baseurl /jellyfin. I manually edited system.xml Baseurl to /, restarted, DLNA works. I shutdown, manually edited system.xml Baseurl to /jellyfin, restarted, DLNA works.

My clients are VLC and Yamaha RX-V685 integrated amplifier. Not much I can do with the Yamaha other than power down/up and query the server. That confirms to work. To be absolutely sure with VLC I forced shutdown of the app, cleared storage/cache, let VLC requery the network and populate the server and directory structure. Video and audio media play successfully.

Sorry gents. I have to retract my confirmation. When I edited system.xml I forgot to close of the Baseurl line... God I hate hate hate xml.... Can't we move to yaml or json?? That caused Jellyfin to land a new and vanilla system.xml file... containing <BaseUrl>/</BaseUrl>. DLNA works out of the box. Change this to <BaseUrl>/jellyfin</BaseUrl> and restart, DLNA fails.

@mazzystr commented on GitHub (Feb 20, 2020): ``` $ podman image ls registry.hub.docker.com/jellyfin/jellyfin nightly 89ed24cc12ff 8 hours ago ``` ~~I'm getting some descent results. My previous nightly was from 6 days ago... I deleted that and pulled new nightly. Initially DLNA failed with my existing system.xml using `Baseurl /jellyfin`. I manually edited system.xml Baseurl to /, restarted, DLNA works. I shutdown, manually edited system.xml Baseurl to /jellyfin, restarted, DLNA works.~~ ~~My clients are VLC and Yamaha RX-V685 integrated amplifier. Not much I can do with the Yamaha other than power down/up and query the server. That confirms to work. To be absolutely sure with VLC I forced shutdown of the app, cleared storage/cache, let VLC requery the network and populate the server and directory structure. Video and audio media play successfully.~~ Sorry gents. I have to retract my confirmation. When I edited system.xml I forgot to close of the Baseurl line... God I hate hate hate xml.... Can't we move to yaml or json?? That caused Jellyfin to land a new and vanilla system.xml file... containing `<BaseUrl>/</BaseUrl>`. DLNA works out of the box. Change this to `<BaseUrl>/jellyfin</BaseUrl>` and restart, DLNA fails.
Author
Owner

@mazzystr commented on GitHub (Feb 20, 2020):

I've reverted back to latest and now my mobile apps are broke. Sigh... :/

Man when those apps break they break good. I went around the network checking dns... Let's Encrypt certs... restarting jellyfin and haproxy... just to uninstall reinstall and bam service is autodiscovered! Wife walks by and I notice she's scrolling through the Jellyfin library... Grrr! LOL!

@mazzystr commented on GitHub (Feb 20, 2020): I've reverted back to `latest` and now my mobile apps are broke. Sigh... :/ Man when those apps break they break good. I went around the network checking dns... Let's Encrypt certs... restarting jellyfin and haproxy... just to uninstall reinstall and bam service is autodiscovered! Wife walks by and I notice she's scrolling through the Jellyfin library... Grrr! LOL!
Author
Owner

@mazzystr commented on GitHub (Feb 21, 2020):

and I'm back on nightly 10.5.0 and DLNA still not working. Mobile apps are good. Chromecast streams are good.

I bring a tcpdump also...

# tcpdump -i eno1 ether broadcast and ether multicast
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eno1, link-type EN10MB (Ethernet), capture size 262144 bytes
16:54:06.544753 IP 192.168.0.169.40885 > 255.255.255.255.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
16:54:13.298923 IP 192.168.0.169.40885 > 255.255.255.255.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
16:54:16.524819 IP 192.168.0.169.43259 > 255.255.255.255.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
^C
3 packets captured
4 packets received by filter
0 packets dropped by kernel
[root@cube ~]# ^C
[root@cube ~]# tcpdump -i eno1 ether broadcast and ether multicast -vvvvv
tcpdump: listening on eno1, link-type EN10MB (Ethernet), capture size 262144 bytes
16:54:22.618230 IP (tos 0x0, ttl 64, id 9687, offset 0, flags [DF], proto UDP (17), length 78)
    192.168.0.169.43259 > 255.255.255.255.netbios-ns: [udp sum ok]
>>> NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
TrnID=0x1B9C
OpCode=0
NmFlags=0x0
Rcode=0
QueryCount=1
AnswerCount=0
AuthorityCount=0
AddressRecCount=0
QuestionRecords:
Name=*               NameType=0x00 (Workstation)
QuestionType=0x20
QuestionClass=0x1


16:54:28.865350 IP (tos 0x0, ttl 64, id 10059, offset 0, flags [DF], proto UDP (17), length 78)
    192.168.0.169.43259 > 255.255.255.255.netbios-ns: [udp sum ok]
>>> NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
TrnID=0x1B9E
OpCode=0
NmFlags=0x0
Rcode=0
QueryCount=1
AnswerCount=0
AuthorityCount=0
AddressRecCount=0
QuestionRecords:
Name=*               NameType=0x00 (Workstation)
QuestionType=0x20
QuestionClass=0x1


^C
2 packets captured
2 packets received by filter
0 packets dropped by kernel
[root@cube ~]#
[root@cube ~]#
[root@cube ~]#
[root@cube ~]# tcpdump -i eno1 ether broadcast and ether multicast -vvvvv
tcpdump: listening on eno1, link-type EN10MB (Ethernet), capture size 262144 bytes
16:55:09.687074 IP (tos 0x0, ttl 64, id 16095, offset 0, flags [DF], proto UDP (17), length 78)
    192.168.0.169.47826 > 255.255.255.255.netbios-ns: [udp sum ok]
>>> NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
TrnID=0x70BB
OpCode=0
NmFlags=0x0
Rcode=0
QueryCount=1
AnswerCount=0
AuthorityCount=0
AddressRecCount=0
QuestionRecords:
Name=*               NameType=0x00 (Workstation)
QuestionType=0x20
QuestionClass=0x1


16:55:15.871804 IP (tos 0x0, ttl 64, id 17143, offset 0, flags [DF], proto UDP (17), length 78)
    192.168.0.169.47826 > 255.255.255.255.netbios-ns: [udp sum ok]
>>> NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
TrnID=0x70BD
OpCode=0
NmFlags=0x0
Rcode=0
QueryCount=1
AnswerCount=0
AuthorityCount=0
AddressRecCount=0
QuestionRecords:
Name=*               NameType=0x00 (Workstation)
QuestionType=0x20
QuestionClass=0x1

I feel some data is missing from the tcpdump capture. I'll keep hacking here.

Edit: Yup the tcpdump was definitely missing some data. adding the -X switch decodes udp pkts. tcpdump pkt trace now showing some very interesting information. Here's some of the more important looking pkts...

17:27:58.812438 IP (tos 0x0, ttl 64, id 4848, offset 0, flags [DF], proto TCP (6), length 1550)
    cube.8096 > 192.168.0.169.38002: Flags [P.], cksum 0x8804 (incorrect -> 0x2230), seq 8110:9620, ack 1680, win 85, length 1510
	0x0000:  4500 060e 12f0 4000 4006 9ff6 c0a8 000a  E.....@.@.......
	0x0010:  c0a8 00a9 1fa0 9472 27f0 ffed 9ee4 7fd9  .......r'.......
	0x0020:  5018 0055 8804 0000 3564 660d 0acd 596d  P..U....5df...Ym
	0x0030:  73d3 3810 fece af10 e603 30d4 499c b469  s.8.......0.I..i
	0x0040:  0849 6fa0 e506 6ee6 e63a 53b8 e13e 7514  .Io...n..:S..>u.
	0x0050:  6b53 8bda 964f 92f3 c20d fffd 5676 6ccb  kS...O......Vvl.
	0x0060:  26ed 3884 14d2 4913 4bbb d23e fb68 65e7  &.8...I.K..>.he.
	0x0070:  d1e4 f1c5 5fe7 1ffe b97c 4b02 1d85 678f  ...._....|K...g.
	0x0080:  26e6 8330 aaa9 eba7 a14e 254c 1d88 dd8f  &..0.....N%L....
	0x0090:  570e 0969 7c63 2e1c e287 54a9 a993 4808  W..i|c....T...H.
	0x00a0:  0565 8ef1 02ca ce1e 3d22 f89a 44a0 29f1  .e......="..D.).
	0x00b0:  032a 15e8 a993 eab9 3b42 93aa 2ba6 110e  .*......;B..+...
	0x00c0:  bae0 b04c 84d4 389a 8835 c468 bae4 4c07  ...L..8..5.h..L.
	0x00d0:  5306 0bee 839b 5d1c 111e 73cd 69e8 2a9f  S.....]...s.i.*.
	0x00e0:  8630 f58e 4884 2d51 1a59 0d74 556f 4815  .0..H.-Q.Y.tUoH.
	0x00f0:  c8ac 9bce d025 16c5 e421 8f6f 0986 3c75  .....%...!.o..<u
	0x0100:  221a f339 289c 3b90 30af ae3b 9f95 880b  "..9(.;.0..;....
	0x0110:  f30c 461e eb5c c888 6a97 8106 5f73 34a9  ..F..\..j..._s4.
	0x0120:  62d6 1042 1288 d89e c8f2 8c14 4d92 90fb  b..B........M...
	0x0130:  d4b8 b99a 266e c06f 8210 df36 f02c 462b  ....&n.o...6.,F+
	0x0140:  4381 d689 0bff a67c 3175 3eb9 1f5f bbe7  C......|1u>.._..
	0x0150:  224a 7088 190f b95e 5bb3 bf7f 3b7d cb6e  "Jp....^[...;}.n
	0x0160:  604b c866 5a70 2381 2e98 4b98 b9d8 e0fa  `K.fZp#...K.....
	0x0170:  3431 39b1 0658 83da e2fc 9d6e 3654 9338  419..X.....n6T.8
	0x0180:  6b9e 3f20 0cd7 73be 2db9 52cc 8456 966d  k.?...s.-.R..V.m
	0x0190:  2c78 cc60 7544 6231 1761 2896 e61b 957e  ,x.`uDb1.a(....~
	0x01a0:  c017 75a4 8914 0948 bd9e 3ae2 66ac b9ae  ..u....H..:.f...
	0x01b0:  21db 3a63 cd43 710d d76d e2ac 79a5 32b4  !.:c.Cq..m..y.2.
	0x01c0:  6235 4c8d bbdd cf1b 789d 0818 a7b5 8cd6  b5L.....x.......
	0x01d0:  9c19 285f f2a4 b186 3e04 407e 9700 e44a  ..(_....>.@~...J
	0x01e0:  ccf5 924a 207f 9a61 c8d5 5a69 883a 770f  ...J...a..Zi.:w.
	0x01f0:  a7d7 899d 642a 35f7 3109 76b1 55d3 cf67  ....d*5.1.v.U..g
	0x0200:  6324 e89a 332b 7c6f e88d 06bd 977d cf3b  c$..3+|o.....}.;
	0x0210:  3de9 f507 659d 56a5 92af 232d 523f 7039  =...e.V...#-R?p9
	0x0220:  56aa 4314 ff02 58fc dea8 b7c2 7751 4299  V.C...X.....wQB.
	0x0230:  8531 e824 f10d 4690 afe6 c7ae 4bf8 a529  .1.$..F.....K..)
	0x0240:  0f72 425c 7713 5836 7a5e 79b8 8f80 565d  .rB\w.X6z^y...V]
	0x0250:  95e0 8e12 7479 5649 27d7 f965 3612 c932  ....tyVI'..e6..2
	0x0260:  3a75 306f 0031 a131 23cf ec1d 624c 06fd  :u0o.1.1#...bL..
	0x0270:  5eb2 7a5e eb09 c014 d898 9c0c 4765 9729  ^.z^........Ge.)
	0x0280:  825b 6e8a 38db 5e12 be82 d095 a62e c7a4  .[n.8.^.........
	0x0290:  bf71 1792 e346 94d5 ea98 98cd 4952 ae9f  .q...F......IR..
	0x02a0:  3bf9 a661 6742 69cc 759a b83c a258 7da4  ;..agBi.u..<.X}.
	0x02b0:  bb1b b0eb f027 43c3 9d9c e186 9a40 3b6c  .....'C......@;l
	0x02c0:  df70 393c 22c3 ab23 729a 257d d49a d8e1  .p9<"..#r.%}....
	0x02d0:  8ec4 9e9e 94ec 6d58 2b88 1d0e 4fcb ae5f  ......mX+...O.._
	0x02e0:  80d8 0258 7b62 0f04 6d6f 625f 20ab 2f72  ...X{b..mob_../r
	0x02f0:  5a5f b4e6 3509 53b5 1bb5 c7de 71c9 5f83  Z_..5.S.....q._.
	0x0300:  dad3 c1b0 ecba 8fda c1c3 d4ac 85ad 35bb  ..............5.
	0x0310:  8742 b72f bb9f 5a33 bada 8dce c1dd cb79  .B./..Z3.......y
	0x0320:  e4f5 7f25 3a0b 60ad b93c 14b4 bdb9 94ed  ...%:.`..<......
	0x0330:  c994 bbb1 79cf f21d bd6c 579c 0f74 435d  ....y....lW..tC]
	0x0340:  15c8 5ad3 7928 6c7b d3a9 dad3 a922 5a2c  ..Z.y(l{....."Z,
	0x0350:  e396 cf11 3f00 f503 6db7 2b0b 5cdb a7a4  ....?...m.+.\...
	0x0360:  43a1 db83 53ca 5ad1 49d9 6e95 796a 3dcf  C...S.Z.I.n.yj=.
	0x0370:  366e 9b5e af5f dd52 efbb 6f3e 4069 96b0  6n.^._.R..o>@i..
	0x0380:  5a97 e5c1 80ed c7e1 a514 c46b c924 fed0  Z..........k.$..
	0x0390:  f276 6373 34a8 186b b2e9 b5bc 6d3e 089b  .vcs4..k....m>..
	0x03a0:  16b4 d68c 1e0c dc8e 8c1a d9c9 fefd 8295  ................
	0x03b0:  6958 1db4 6775 f003 597d 5931 fed3 6b14  iX..gu..Y}Y1..k.
	0x03c0:  592d a0fd 1856 f701 b723 ab5b 18ed b767  Y-...V...#.[...g
	0x03d0:  b4bf 1ba3 b5ad b559 a883 e12f f344 4419  .......Y.../.DD.
	0x03e0:  525a 606b 4de9 e1d0 7d17 a795 f2a4 0214  RZ`kM...}.......
	0x03f0:  60fc 5493 5c76 caf5 a239 45f5 0645 26fc  `.T.\v...9E..E&.
	0x0400:  5793 b972 9db6 aeb6 7e40 e9f3 7d2e d094  W..r....~@..}...
	0x0410:  1273 2953 79c7 c71b a5aa 294c 7f3b c8b9  .s)Sy.....)L.;..
	0x0420:  0885 b454 b327 83ec b525 001d 4004 aedf  ...T.'...%..@...
	0x0430:  b4f7 7ae6 af54 c532 a9f2 ac10 2827 ddfc  ..z..T.2....('..
	0x0440:  7a23 9929 bd0e 21d7 934c 641d d4a0 6295  z#.)..!..Ld...b.
	0x0450:  a028 18eb 0be1 a711 7e1e 91ce 8cfa b737  .(......~......7
	0x0460:  52a4 313b 47f5 9cf2 1825 6fcb 721c 0bfd  R.1;G....%o.r...
	0x0470:  acb3 e43a 7883 860c 75d2 e7e4 bfac 68cc  ...:x...u.....h.
	0x0480:  98e6 550d 3046 7515 f5b9 c73c 328a 178d  ..U.0Fu....<2...
	0x0490:  f5ab 3b0c 735c 6362 cdb3 d5eb 6b8e c4cc  ..;.s\cb....k...
	0x04a0:  d289 04aa f1ef 5908 1873 f99d cc52 ad45  ......Y..s...R.E
	0x04b0:  5c6b 52a8 a3fb 0659 65c5 e324 adb7 6858  \kR....Ye..$..hX
	0x04c0:  a1f0 06b4 6656 bf0a e90c c206 563f 954a  ....fV......V?.J
	0x04d0:  c87b 70da 116f 0e35 1a43 54e9 2ab2 f024  .{p..o.5.CT.*..$
	0x04e0:  27b5 4a96 3d48 c059 1d71 c7b4 a01c 8fd9  '.J.=H.Y.q......
	0x04f0:  7079 231d ae5e 9066 bf69 ab13 c6b8 5145  py#..^.f.i....QE
	0x0500:  d72d 5144 b824 2e24 5d82 7c87 5a5f 088d  .-QD.$.$].|.Z_..
	0x0510:  c112 81e2 379e 488c c91c 7550 5681 30a4  ....7.H...uPV.0.
	0x0520:  6991 8c49 afde 16c2 1cf5 d446 23ea f65a  i..I.......F#..Z
	0x0530:  44df 347f 7133 fd7e 4cbc fa18 d989 0eb6  D.4.q3.~L.......
	0x0540:  a25c 5b75 7ccd b7f2 ee66 d94f baf9 49d2  .\[u|....f.O..I.
	0x0550:  6426 d87a a3aa 32be 284e 9c0c 0d66 3597  d&.z..2.(N...f5.
	0x0560:  8bde 399b 74b1 7fbb 65a3 40ee b4ad 9245  ..9.t...e.@....E
	0x0570:  0c4d 9bba 36a9 9858 7357 5678 b824 f160  .M..6..XsWVx.$.`
	0x0580:  a20c 8234 afe7 58a8 caec 3979 61ae eb33  ...4..X...9ya..3
	0x0590:  6f0f 58dd f2f8 1d9e a281 240d f755 ddbd  o.X.......$..U..
	0x05a0:  11d2 6b3c 0ea3 1ad8 252a d18a 9851 de60  ..k<....%*...Q.`
	0x05b0:  eaee 75b1 1746 6938 c94f 26ce 9648 9e58  ..u..Fi8.O&..H.X
	0x05c0:  7618 eaf1 333c 7561 7f83 54b8 52a6 4fbd  v...3<ua..T.R.O.
	0x05d0:  5ee7 a4d3 7bfa 6ad2 dd58 6e3c 8892 7ea6  ^...{.j..Xn<..~.
	0x05e0:  cfe3 b986 ea1a 951c cf04 41e2 59da 6f8b  ..........A.Y.o.
	0x05f0:  69ee e410 0673 90c8 55e1 dacd f945 bab3  i....s..U....E..
	0x0600:  53c7 ff01 6ef1 4b57 861c 0000 0d0a       S...n.KW......
17:27:58.812583 IP (tos 0x0, ttl 64, id 4850, offset 0, flags [DF], proto TCP (6), length 45)
    cube.8096 > 192.168.0.169.38002: Flags [P.], cksum 0x8223 (incorrect -> 0xe8bf), seq 9620:9625, ack 1680, win 85, length 5
	0x0000:  4500 002d 12f2 4000 4006 a5d5 c0a8 000a  E..-..@.@.......
	0x0010:  c0a8 00a9 1fa0 9472 27f1 05d3 9ee4 7fd9  .......r'.......
	0x0020:  5018 0055 8223 0000 300d 0a0d 0a         P..U.#..0....
17:27:58.816625 IP (tos 0x0, ttl 64, id 53302, offset 0, flags [DF], proto TCP (6), length 40)
    192.168.0.169.38002 > cube.8096: Flags [.], cksum 0x2ace (correct), seq 1680, ack 9570, win 672, length 0
	0x0000:  4500 0028 d036 4000 4006 e895 c0a8 00a9  E..(.6@.@.......
	0x0010:  c0a8 000a 9472 1fa0 9ee4 7fd9 27f1 05a1  .....r......'...
	0x0020:  5010 02a0 2ace 0000 0000 0000 0000       P...*.........
17:27:58.818892 IP (tos 0x0, ttl 64, id 53303, offset 0, flags [DF], proto TCP (6), length 40)
    192.168.0.169.38002 > cube.8096: Flags [.], cksum 0x2a97 (correct), seq 1680, ack 9625, win 672, length 0
	0x0000:  4500 0028 d037 4000 4006 e894 c0a8 00a9  E..(.7@.@.......
	0x0010:  c0a8 000a 9472 1fa0 9ee4 7fd9 27f1 05d8  .....r......'...
	0x0020:  5010 02a0 2a97 0000 0000 0000 0000       P...*.........
17:27:59.677866 IP (tos 0x0, ttl 64, id 64090, offset 0, flags [DF], proto UDP (17), length 351)
    cube.padl2sim > 192.168.0.169.48771: [bad udp cksum 0x8360 -> 0x0975!] UDP, length 323
	0x0000:  4500 015f fa5a 4000 4011 bd2f c0a8 000a  E.._.Z@.@../....
	0x0010:  c0a8 00a9 1474 be83 014b 8360 4854 5450  .....t...K.`HTTP
	0x0020:  2f31 2e31 2032 3030 204f 4b0d 0a45 5854  /1.1.200.OK..EXT
	0x0030:  3a20 0d0a 4441 5445 3a20 5468 752c 2032  :...DATE:.Thu,.2
	0x0040:  3020 4665 6220 3230 3230 2032 323a 3237  0.Feb.2020.22:27
	0x0050:  3a35 3920 474d 540d 0a43 4143 4845 2d43  :59.GMT..CACHE-C
	0x0060:  4f4e 5452 4f4c 3a20 6d61 782d 6167 6520  ONTROL:.max-age.
	0x0070:  3d20 3138 3030 0d0a 5354 3a20 7570 6e70  =.1800..ST:.upnp
	0x0080:  3a72 6f6f 7464 6576 6963 650d 0a53 4552  :rootdevice..SER
	0x0090:  5645 523a 204c 696e 7578 2f55 6e69 7820  VER:.Linux/Unix.
	0x00a0:  352e 312e 3130 2e31 2055 506e 502f 312e  5.1.10.1.UPnP/1.
	0x00b0:  3020 5253 5344 502f 312e 300d 0a55 534e  0.RSSDP/1.0..USN
	0x00c0:  3a20 7575 6964 3a37 6239 3330 6436 3833  :.uuid:7b930d683
	0x00d0:  3538 6434 3066 6139 3761 6336 3035 3063  58d40fa97ac6050c
	0x00e0:  6237 3030 3962 353a 3a75 706e 703a 726f  b7009b5::upnp:ro
	0x00f0:  6f74 6465 7669 6365 0d0a 4c4f 4341 5449  otdevice..LOCATI
	0x0100:  4f4e 3a20 6874 7470 3a2f 2f31 3932 2e31  ON:.http://192.1
	0x0110:  3638 2e30 2e31 303a 3830 3936 2f6a 656c  68.0.10:8096/jel
	0x0120:  6c79 6669 6e2f 646c 6e61 2f37 6239 3330  lyfin/dlna/7b930
	0x0130:  6436 3833 3538 6434 3066 6139 3761 6336  d68358d40fa97ac6
	0x0140:  3035 3063 6237 3030 3962 352f 6465 7363  050cb7009b5/desc
	0x0150:  7269 7074 696f 6e2e 786d 6c0d 0a0d 0a    ription.xml....
17:27:59.677897 IP (tos 0x0, ttl 64, id 64091, offset 0, flags [DF], proto UDP (17), length 356)
    cube.padl2sim > 192.168.0.169.48771: [bad udp cksum 0x8365 -> 0x28d2!] UDP, length 328
	0x0000:  4500 0164 fa5b 4000 4011 bd29 c0a8 000a  E..d.[@.@..)....
	0x0010:  c0a8 00a9 1474 be83 0150 8365 4854 5450  .....t...P.eHTTP
	0x0020:  2f31 2e31 2032 3030 204f 4b0d 0a45 5854  /1.1.200.OK..EXT
	0x0030:  3a20 0d0a 4441 5445 3a20 5468 752c 2032  :...DATE:.Thu,.2
	0x0040:  3020 4665 6220 3230 3230 2032 323a 3237  0.Feb.2020.22:27
	0x0050:  3a35 3920 474d 540d 0a43 4143 4845 2d43  :59.GMT..CACHE-C
	0x0060:  4f4e 5452 4f4c 3a20 6d61 782d 6167 6520  ONTROL:.max-age.
	0x0070:  3d20 3138 3030 0d0a 5354 3a20 7575 6964  =.1800..ST:.uuid
	0x0080:  3a37 6239 3330 6436 3833 3538 6434 3066  :7b930d68358d40f
	0x0090:  6139 3761 6336 3035 3063 6237 3030 3962  a97ac6050cb7009b
	0x00a0:  350d 0a53 4552 5645 523a 204c 696e 7578  5..SERVER:.Linux
	0x00b0:  2f55 6e69 7820 352e 312e 3130 2e31 2055  /Unix.5.1.10.1.U
	0x00c0:  506e 502f 312e 3020 5253 5344 502f 312e  PnP/1.0.RSSDP/1.
	0x00d0:  300d 0a55 534e 3a20 7575 6964 3a37 6239  0..USN:.uuid:7b9
	0x00e0:  3330 6436 3833 3538 6434 3066 6139 3761  30d68358d40fa97a
	0x00f0:  6336 3035 3063 6237 3030 3962 350d 0a4c  c6050cb7009b5..L
	0x0100:  4f43 4154 494f 4e3a 2068 7474 703a 2f2f  OCATION:.http://
	0x0110:  3139 322e 3136 382e 302e 3130 3a38 3039  192.168.0.10:809
	0x0120:  362f 6a65 6c6c 7966 696e 2f64 6c6e 612f  6/jellyfin/dlna/
	0x0130:  3762 3933 3064 3638 3335 3864 3430 6661  7b930d68358d40fa
	0x0140:  3937 6163 3630 3530 6362 3730 3039 6235  97ac6050cb7009b5
	0x0150:  2f64 6573 6372 6970 7469 6f6e 2e78 6d6c  /description.xml
	0x0160:  0d0a 0d0a                                ....

I was able to the following manual command...

# curl http://192.168.0.10:8096/jellyfin/dlna/7b930d68358d40fa97ac6050cb7009b5/description.xml
<?xml version="1.0"?><root xmlns="urn:schemas-upnp-org:device-1-0" xmlns:dlna="urn:schemas-dlna-org:device-1-0"><specVersion><major>1</major><minor>0</minor></specVersion><URLBase>http://192.168.0.10:8096/jellyfin</URLBase><device><dlna:X_DLNACAP/><dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">DMS-1.50</dlna:X_DLNADOC><dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">M-DMS-1.50</dlna:X_DLNADOC><deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType><friendlyName>Jellyfin - jellyfin</friendlyName><manufacturer>Jellyfin</manufacturer><manufacturerURL>https://github.com/jellyfin/jellyfin</manufacturerURL><modelDescription>UPnP/AV 1.0 Compliant Media Server</modelDescription><modelName>Jellyfin Server</modelName><modelNumber>01</modelNumber><modelURL>https://github.com/jellyfin/jellyfin</modelURL><serialNumber>7b930d68358d40fa97ac6050cb7009b5</serialNumber><UPC/><UDN>uuid:7b930d68358d40fa97ac6050cb7009b5</UDN><iconList><icon><mimetype>image/png</mimetype><width>240</width><height>240</height><depth>24</depth><url>/dlna/7b930d68358d40fa97ac6050cb7009b5/icons/logo240.png</url></icon><icon><mimetype>image/jpeg</mimetype><width>240</width><height>240</height><depth>24</depth><url>/dlna/7b930d68358d40fa97ac6050cb7009b5/icons/logo240.jpg</url></icon><icon><mimetype>image/png</mimetype><width>120</width><height>120</height><depth>24</depth><url>/dlna/7b930d68358d40fa97ac6050cb7009b5/icons/logo120.png</url></icon><icon><mimetype>image/jpeg</mimetype><width>120</width><height>120</height><depth>24</depth><url>/dlna/7b930d68358d40fa97ac6050cb7009b5/icons/logo120.jpg</url></icon><icon><mimetype>image/png</mimetype><width>48</width><height>48</height><depth>24</depth><url>/dlna/7b930d68358d40fa97ac6050cb7009b5/icons/logo48.png</url></icon><icon><mimetype>image/jpeg</mimetype><width>48</width><height>48</height><depth>24</depth><url>/dlna/7b930d68358d40fa97ac6050cb7009b5/icons/logo48.jpg</url></icon></iconList><presentationURL>http://192.168.0.10:8096/jellyfin/web/index.html</presentationURL><serviceList><service><serviceType>urn:schemas-upnp-org:service:ContentDirectory:1</serviceType><serviceId>urn:upnp-org:serviceId:ContentDirectory</serviceId><SCPDURL>/dlna/7b930d68358d40fa97ac6050cb7009b5/contentdirectory/contentdirectory.xml</SCPDURL><controlURL>/dlna/7b930d68358d40fa97ac6050cb7009b5/contentdirectory/control</controlURL><eventSubURL>/dlna/7b930d68358d40fa97ac6050cb7009b5/contentdirectory/events</eventSubURL></service><service><serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType><serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId><SCPDURL>/dlna/7b930d68358d40fa97ac6050cb7009b5/connectionmanager/connectionmanager.xml</SCPDURL><controlURL>/dlna/7b930d68358d40fa97ac6050cb7009b5/connectionmanager/control</controlURL><eventSubURL>/dlna/7b930d68358d40fa97ac6050cb7009b5/connectionmanager/events</eventSubURL></service></serviceList></device></root>
@mazzystr commented on GitHub (Feb 21, 2020): and I'm back on `nightly 10.5.0` and DLNA still not working. Mobile apps are good. Chromecast streams are good. I bring a tcpdump also... ``` # tcpdump -i eno1 ether broadcast and ether multicast tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eno1, link-type EN10MB (Ethernet), capture size 262144 bytes 16:54:06.544753 IP 192.168.0.169.40885 > 255.255.255.255.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST 16:54:13.298923 IP 192.168.0.169.40885 > 255.255.255.255.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST 16:54:16.524819 IP 192.168.0.169.43259 > 255.255.255.255.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST ^C 3 packets captured 4 packets received by filter 0 packets dropped by kernel [root@cube ~]# ^C [root@cube ~]# tcpdump -i eno1 ether broadcast and ether multicast -vvvvv tcpdump: listening on eno1, link-type EN10MB (Ethernet), capture size 262144 bytes 16:54:22.618230 IP (tos 0x0, ttl 64, id 9687, offset 0, flags [DF], proto UDP (17), length 78) 192.168.0.169.43259 > 255.255.255.255.netbios-ns: [udp sum ok] >>> NBT UDP PACKET(137): QUERY; REQUEST; UNICAST TrnID=0x1B9C OpCode=0 NmFlags=0x0 Rcode=0 QueryCount=1 AnswerCount=0 AuthorityCount=0 AddressRecCount=0 QuestionRecords: Name=* NameType=0x00 (Workstation) QuestionType=0x20 QuestionClass=0x1 16:54:28.865350 IP (tos 0x0, ttl 64, id 10059, offset 0, flags [DF], proto UDP (17), length 78) 192.168.0.169.43259 > 255.255.255.255.netbios-ns: [udp sum ok] >>> NBT UDP PACKET(137): QUERY; REQUEST; UNICAST TrnID=0x1B9E OpCode=0 NmFlags=0x0 Rcode=0 QueryCount=1 AnswerCount=0 AuthorityCount=0 AddressRecCount=0 QuestionRecords: Name=* NameType=0x00 (Workstation) QuestionType=0x20 QuestionClass=0x1 ^C 2 packets captured 2 packets received by filter 0 packets dropped by kernel [root@cube ~]# [root@cube ~]# [root@cube ~]# [root@cube ~]# tcpdump -i eno1 ether broadcast and ether multicast -vvvvv tcpdump: listening on eno1, link-type EN10MB (Ethernet), capture size 262144 bytes 16:55:09.687074 IP (tos 0x0, ttl 64, id 16095, offset 0, flags [DF], proto UDP (17), length 78) 192.168.0.169.47826 > 255.255.255.255.netbios-ns: [udp sum ok] >>> NBT UDP PACKET(137): QUERY; REQUEST; UNICAST TrnID=0x70BB OpCode=0 NmFlags=0x0 Rcode=0 QueryCount=1 AnswerCount=0 AuthorityCount=0 AddressRecCount=0 QuestionRecords: Name=* NameType=0x00 (Workstation) QuestionType=0x20 QuestionClass=0x1 16:55:15.871804 IP (tos 0x0, ttl 64, id 17143, offset 0, flags [DF], proto UDP (17), length 78) 192.168.0.169.47826 > 255.255.255.255.netbios-ns: [udp sum ok] >>> NBT UDP PACKET(137): QUERY; REQUEST; UNICAST TrnID=0x70BD OpCode=0 NmFlags=0x0 Rcode=0 QueryCount=1 AnswerCount=0 AuthorityCount=0 AddressRecCount=0 QuestionRecords: Name=* NameType=0x00 (Workstation) QuestionType=0x20 QuestionClass=0x1 ``` I feel some data is missing from the tcpdump capture. I'll keep hacking here. Edit: Yup the tcpdump was definitely missing some data. adding the `-X` switch decodes udp pkts. tcpdump pkt trace now showing some very interesting information. Here's some of the more important looking pkts... ``` 17:27:58.812438 IP (tos 0x0, ttl 64, id 4848, offset 0, flags [DF], proto TCP (6), length 1550) cube.8096 > 192.168.0.169.38002: Flags [P.], cksum 0x8804 (incorrect -> 0x2230), seq 8110:9620, ack 1680, win 85, length 1510 0x0000: 4500 060e 12f0 4000 4006 9ff6 c0a8 000a E.....@.@....... 0x0010: c0a8 00a9 1fa0 9472 27f0 ffed 9ee4 7fd9 .......r'....... 0x0020: 5018 0055 8804 0000 3564 660d 0acd 596d P..U....5df...Ym 0x0030: 73d3 3810 fece af10 e603 30d4 499c b469 s.8.......0.I..i 0x0040: 0849 6fa0 e506 6ee6 e63a 53b8 e13e 7514 .Io...n..:S..>u. 0x0050: 6b53 8bda 964f 92f3 c20d fffd 5676 6ccb kS...O......Vvl. 0x0060: 26ed 3884 14d2 4913 4bbb d23e fb68 65e7 &.8...I.K..>.he. 0x0070: d1e4 f1c5 5fe7 1ffe b97c 4b02 1d85 678f ...._....|K...g. 0x0080: 26e6 8330 aaa9 eba7 a14e 254c 1d88 dd8f &..0.....N%L.... 0x0090: 570e 0969 7c63 2e1c e287 54a9 a993 4808 W..i|c....T...H. 0x00a0: 0565 8ef1 02ca ce1e 3d22 f89a 44a0 29f1 .e......="..D.). 0x00b0: 032a 15e8 a993 eab9 3b42 93aa 2ba6 110e .*......;B..+... 0x00c0: bae0 b04c 84d4 389a 8835 c468 bae4 4c07 ...L..8..5.h..L. 0x00d0: 5306 0bee 839b 5d1c 111e 73cd 69e8 2a9f S.....]...s.i.*. 0x00e0: 8630 f58e 4884 2d51 1a59 0d74 556f 4815 .0..H.-Q.Y.tUoH. 0x00f0: c8ac 9bce d025 16c5 e421 8f6f 0986 3c75 .....%...!.o..<u 0x0100: 221a f339 289c 3b90 30af ae3b 9f95 880b "..9(.;.0..;.... 0x0110: f30c 461e eb5c c888 6a97 8106 5f73 34a9 ..F..\..j..._s4. 0x0120: 62d6 1042 1288 d89e c8f2 8c14 4d92 90fb b..B........M... 0x0130: d4b8 b99a 266e c06f 8210 df36 f02c 462b ....&n.o...6.,F+ 0x0140: 4381 d689 0bff a67c 3175 3eb9 1f5f bbe7 C......|1u>.._.. 0x0150: 224a 7088 190f b95e 5bb3 bf7f 3b7d cb6e "Jp....^[...;}.n 0x0160: 604b c866 5a70 2381 2e98 4b98 b9d8 e0fa `K.fZp#...K..... 0x0170: 3431 39b1 0658 83da e2fc 9d6e 3654 9338 419..X.....n6T.8 0x0180: 6b9e 3f20 0cd7 73be 2db9 52cc 8456 966d k.?...s.-.R..V.m 0x0190: 2c78 cc60 7544 6231 1761 2896 e61b 957e ,x.`uDb1.a(....~ 0x01a0: c017 75a4 8914 0948 bd9e 3ae2 66ac b9ae ..u....H..:.f... 0x01b0: 21db 3a63 cd43 710d d76d e2ac 79a5 32b4 !.:c.Cq..m..y.2. 0x01c0: 6235 4c8d bbdd cf1b 789d 0818 a7b5 8cd6 b5L.....x....... 0x01d0: 9c19 285f f2a4 b186 3e04 407e 9700 e44a ..(_....>.@~...J 0x01e0: ccf5 924a 207f 9a61 c8d5 5a69 883a 770f ...J...a..Zi.:w. 0x01f0: a7d7 899d 642a 35f7 3109 76b1 55d3 cf67 ....d*5.1.v.U..g 0x0200: 6324 e89a 332b 7c6f e88d 06bd 977d cf3b c$..3+|o.....}.; 0x0210: 3de9 f507 659d 56a5 92af 232d 523f 7039 =...e.V...#-R?p9 0x0220: 56aa 4314 ff02 58fc dea8 b7c2 7751 4299 V.C...X.....wQB. 0x0230: 8531 e824 f10d 4690 afe6 c7ae 4bf8 a529 .1.$..F.....K..) 0x0240: 0f72 425c 7713 5836 7a5e 79b8 8f80 565d .rB\w.X6z^y...V] 0x0250: 95e0 8e12 7479 5649 27d7 f965 3612 c932 ....tyVI'..e6..2 0x0260: 3a75 306f 0031 a131 23cf ec1d 624c 06fd :u0o.1.1#...bL.. 0x0270: 5eb2 7a5e eb09 c014 d898 9c0c 4765 9729 ^.z^........Ge.) 0x0280: 825b 6e8a 38db 5e12 be82 d095 a62e c7a4 .[n.8.^......... 0x0290: bf71 1792 e346 94d5 ea98 98cd 4952 ae9f .q...F......IR.. 0x02a0: 3bf9 a661 6742 69cc 759a b83c a258 7da4 ;..agBi.u..<.X}. 0x02b0: bb1b b0eb f027 43c3 9d9c e186 9a40 3b6c .....'C......@;l 0x02c0: df70 393c 22c3 ab23 729a 257d d49a d8e1 .p9<"..#r.%}.... 0x02d0: 8ec4 9e9e 94ec 6d58 2b88 1d0e 4fcb ae5f ......mX+...O.._ 0x02e0: 80d8 0258 7b62 0f04 6d6f 625f 20ab 2f72 ...X{b..mob_../r 0x02f0: 5a5f b4e6 3509 53b5 1bb5 c7de 71c9 5f83 Z_..5.S.....q._. 0x0300: dad3 c1b0 ecba 8fda c1c3 d4ac 85ad 35bb ..............5. 0x0310: 8742 b72f bb9f 5a33 bada 8dce c1dd cb79 .B./..Z3.......y 0x0320: e4f5 7f25 3a0b 60ad b93c 14b4 bdb9 94ed ...%:.`..<...... 0x0330: c994 bbb1 79cf f21d bd6c 579c 0f74 435d ....y....lW..tC] 0x0340: 15c8 5ad3 7928 6c7b d3a9 dad3 a922 5a2c ..Z.y(l{....."Z, 0x0350: e396 cf11 3f00 f503 6db7 2b0b 5cdb a7a4 ....?...m.+.\... 0x0360: 43a1 db83 53ca 5ad1 49d9 6e95 796a 3dcf C...S.Z.I.n.yj=. 0x0370: 366e 9b5e af5f dd52 efbb 6f3e 4069 96b0 6n.^._.R..o>@i.. 0x0380: 5a97 e5c1 80ed c7e1 a514 c46b c924 fed0 Z..........k.$.. 0x0390: f276 6373 34a8 186b b2e9 b5bc 6d3e 089b .vcs4..k....m>.. 0x03a0: 16b4 d68c 1e0c dc8e 8c1a d9c9 fefd 8295 ................ 0x03b0: 6958 1db4 6775 f003 597d 5931 fed3 6b14 iX..gu..Y}Y1..k. 0x03c0: 592d a0fd 1856 f701 b723 ab5b 18ed b767 Y-...V...#.[...g 0x03d0: b4bf 1ba3 b5ad b559 a883 e12f f344 4419 .......Y.../.DD. 0x03e0: 525a 606b 4de9 e1d0 7d17 a795 f2a4 0214 RZ`kM...}....... 0x03f0: 60fc 5493 5c76 caf5 a239 45f5 0645 26fc `.T.\v...9E..E&. 0x0400: 5793 b972 9db6 aeb6 7e40 e9f3 7d2e d094 W..r....~@..}... 0x0410: 1273 2953 79c7 c71b a5aa 294c 7f3b c8b9 .s)Sy.....)L.;.. 0x0420: 0885 b454 b327 83ec b525 001d 4004 aedf ...T.'...%..@... 0x0430: b4f7 7ae6 af54 c532 a9f2 ac10 2827 ddfc ..z..T.2....('.. 0x0440: 7a23 9929 bd0e 21d7 934c 641d d4a0 6295 z#.)..!..Ld...b. 0x0450: a028 18eb 0be1 a711 7e1e 91ce 8cfa b737 .(......~......7 0x0460: 52a4 313b 47f5 9cf2 1825 6fcb 721c 0bfd R.1;G....%o.r... 0x0470: acb3 e43a 7883 860c 75d2 e7e4 bfac 68cc ...:x...u.....h. 0x0480: 98e6 550d 3046 7515 f5b9 c73c 328a 178d ..U.0Fu....<2... 0x0490: f5ab 3b0c 735c 6362 cdb3 d5eb 6b8e c4cc ..;.s\cb....k... 0x04a0: d289 04aa f1ef 5908 1873 f99d cc52 ad45 ......Y..s...R.E 0x04b0: 5c6b 52a8 a3fb 0659 65c5 e324 adb7 6858 \kR....Ye..$..hX 0x04c0: a1f0 06b4 6656 bf0a e90c c206 563f 954a ....fV......V?.J 0x04d0: c87b 70da 116f 0e35 1a43 54e9 2ab2 f024 .{p..o.5.CT.*..$ 0x04e0: 27b5 4a96 3d48 c059 1d71 c7b4 a01c 8fd9 '.J.=H.Y.q...... 0x04f0: 7079 231d ae5e 9066 bf69 ab13 c6b8 5145 py#..^.f.i....QE 0x0500: d72d 5144 b824 2e24 5d82 7c87 5a5f 088d .-QD.$.$].|.Z_.. 0x0510: c112 81e2 379e 488c c91c 7550 5681 30a4 ....7.H...uPV.0. 0x0520: 6991 8c49 afde 16c2 1cf5 d446 23ea f65a i..I.......F#..Z 0x0530: 44df 347f 7133 fd7e 4cbc fa18 d989 0eb6 D.4.q3.~L....... 0x0540: a25c 5b75 7ccd b7f2 ee66 d94f baf9 49d2 .\[u|....f.O..I. 0x0550: 6426 d87a a3aa 32be 284e 9c0c 0d66 3597 d&.z..2.(N...f5. 0x0560: 8bde 399b 74b1 7fbb 65a3 40ee b4ad 9245 ..9.t...e.@....E 0x0570: 0c4d 9bba 36a9 9858 7357 5678 b824 f160 .M..6..XsWVx.$.` 0x0580: a20c 8234 afe7 58a8 caec 3979 61ae eb33 ...4..X...9ya..3 0x0590: 6f0f 58dd f2f8 1d9e a281 240d f755 ddbd o.X.......$..U.. 0x05a0: 11d2 6b3c 0ea3 1ad8 252a d18a 9851 de60 ..k<....%*...Q.` 0x05b0: eaee 75b1 1746 6938 c94f 26ce 9648 9e58 ..u..Fi8.O&..H.X 0x05c0: 7618 eaf1 333c 7561 7f83 54b8 52a6 4fbd v...3<ua..T.R.O. 0x05d0: 5ee7 a4d3 7bfa 6ad2 dd58 6e3c 8892 7ea6 ^...{.j..Xn<..~. 0x05e0: cfe3 b986 ea1a 951c cf04 41e2 59da 6f8b ..........A.Y.o. 0x05f0: 69ee e410 0673 90c8 55e1 dacd f945 bab3 i....s..U....E.. 0x0600: 53c7 ff01 6ef1 4b57 861c 0000 0d0a S...n.KW...... 17:27:58.812583 IP (tos 0x0, ttl 64, id 4850, offset 0, flags [DF], proto TCP (6), length 45) cube.8096 > 192.168.0.169.38002: Flags [P.], cksum 0x8223 (incorrect -> 0xe8bf), seq 9620:9625, ack 1680, win 85, length 5 0x0000: 4500 002d 12f2 4000 4006 a5d5 c0a8 000a E..-..@.@....... 0x0010: c0a8 00a9 1fa0 9472 27f1 05d3 9ee4 7fd9 .......r'....... 0x0020: 5018 0055 8223 0000 300d 0a0d 0a P..U.#..0.... 17:27:58.816625 IP (tos 0x0, ttl 64, id 53302, offset 0, flags [DF], proto TCP (6), length 40) 192.168.0.169.38002 > cube.8096: Flags [.], cksum 0x2ace (correct), seq 1680, ack 9570, win 672, length 0 0x0000: 4500 0028 d036 4000 4006 e895 c0a8 00a9 E..(.6@.@....... 0x0010: c0a8 000a 9472 1fa0 9ee4 7fd9 27f1 05a1 .....r......'... 0x0020: 5010 02a0 2ace 0000 0000 0000 0000 P...*......... 17:27:58.818892 IP (tos 0x0, ttl 64, id 53303, offset 0, flags [DF], proto TCP (6), length 40) 192.168.0.169.38002 > cube.8096: Flags [.], cksum 0x2a97 (correct), seq 1680, ack 9625, win 672, length 0 0x0000: 4500 0028 d037 4000 4006 e894 c0a8 00a9 E..(.7@.@....... 0x0010: c0a8 000a 9472 1fa0 9ee4 7fd9 27f1 05d8 .....r......'... 0x0020: 5010 02a0 2a97 0000 0000 0000 0000 P...*......... 17:27:59.677866 IP (tos 0x0, ttl 64, id 64090, offset 0, flags [DF], proto UDP (17), length 351) cube.padl2sim > 192.168.0.169.48771: [bad udp cksum 0x8360 -> 0x0975!] UDP, length 323 0x0000: 4500 015f fa5a 4000 4011 bd2f c0a8 000a E.._.Z@.@../.... 0x0010: c0a8 00a9 1474 be83 014b 8360 4854 5450 .....t...K.`HTTP 0x0020: 2f31 2e31 2032 3030 204f 4b0d 0a45 5854 /1.1.200.OK..EXT 0x0030: 3a20 0d0a 4441 5445 3a20 5468 752c 2032 :...DATE:.Thu,.2 0x0040: 3020 4665 6220 3230 3230 2032 323a 3237 0.Feb.2020.22:27 0x0050: 3a35 3920 474d 540d 0a43 4143 4845 2d43 :59.GMT..CACHE-C 0x0060: 4f4e 5452 4f4c 3a20 6d61 782d 6167 6520 ONTROL:.max-age. 0x0070: 3d20 3138 3030 0d0a 5354 3a20 7570 6e70 =.1800..ST:.upnp 0x0080: 3a72 6f6f 7464 6576 6963 650d 0a53 4552 :rootdevice..SER 0x0090: 5645 523a 204c 696e 7578 2f55 6e69 7820 VER:.Linux/Unix. 0x00a0: 352e 312e 3130 2e31 2055 506e 502f 312e 5.1.10.1.UPnP/1. 0x00b0: 3020 5253 5344 502f 312e 300d 0a55 534e 0.RSSDP/1.0..USN 0x00c0: 3a20 7575 6964 3a37 6239 3330 6436 3833 :.uuid:7b930d683 0x00d0: 3538 6434 3066 6139 3761 6336 3035 3063 58d40fa97ac6050c 0x00e0: 6237 3030 3962 353a 3a75 706e 703a 726f b7009b5::upnp:ro 0x00f0: 6f74 6465 7669 6365 0d0a 4c4f 4341 5449 otdevice..LOCATI 0x0100: 4f4e 3a20 6874 7470 3a2f 2f31 3932 2e31 ON:.http://192.1 0x0110: 3638 2e30 2e31 303a 3830 3936 2f6a 656c 68.0.10:8096/jel 0x0120: 6c79 6669 6e2f 646c 6e61 2f37 6239 3330 lyfin/dlna/7b930 0x0130: 6436 3833 3538 6434 3066 6139 3761 6336 d68358d40fa97ac6 0x0140: 3035 3063 6237 3030 3962 352f 6465 7363 050cb7009b5/desc 0x0150: 7269 7074 696f 6e2e 786d 6c0d 0a0d 0a ription.xml.... 17:27:59.677897 IP (tos 0x0, ttl 64, id 64091, offset 0, flags [DF], proto UDP (17), length 356) cube.padl2sim > 192.168.0.169.48771: [bad udp cksum 0x8365 -> 0x28d2!] UDP, length 328 0x0000: 4500 0164 fa5b 4000 4011 bd29 c0a8 000a E..d.[@.@..).... 0x0010: c0a8 00a9 1474 be83 0150 8365 4854 5450 .....t...P.eHTTP 0x0020: 2f31 2e31 2032 3030 204f 4b0d 0a45 5854 /1.1.200.OK..EXT 0x0030: 3a20 0d0a 4441 5445 3a20 5468 752c 2032 :...DATE:.Thu,.2 0x0040: 3020 4665 6220 3230 3230 2032 323a 3237 0.Feb.2020.22:27 0x0050: 3a35 3920 474d 540d 0a43 4143 4845 2d43 :59.GMT..CACHE-C 0x0060: 4f4e 5452 4f4c 3a20 6d61 782d 6167 6520 ONTROL:.max-age. 0x0070: 3d20 3138 3030 0d0a 5354 3a20 7575 6964 =.1800..ST:.uuid 0x0080: 3a37 6239 3330 6436 3833 3538 6434 3066 :7b930d68358d40f 0x0090: 6139 3761 6336 3035 3063 6237 3030 3962 a97ac6050cb7009b 0x00a0: 350d 0a53 4552 5645 523a 204c 696e 7578 5..SERVER:.Linux 0x00b0: 2f55 6e69 7820 352e 312e 3130 2e31 2055 /Unix.5.1.10.1.U 0x00c0: 506e 502f 312e 3020 5253 5344 502f 312e PnP/1.0.RSSDP/1. 0x00d0: 300d 0a55 534e 3a20 7575 6964 3a37 6239 0..USN:.uuid:7b9 0x00e0: 3330 6436 3833 3538 6434 3066 6139 3761 30d68358d40fa97a 0x00f0: 6336 3035 3063 6237 3030 3962 350d 0a4c c6050cb7009b5..L 0x0100: 4f43 4154 494f 4e3a 2068 7474 703a 2f2f OCATION:.http:// 0x0110: 3139 322e 3136 382e 302e 3130 3a38 3039 192.168.0.10:809 0x0120: 362f 6a65 6c6c 7966 696e 2f64 6c6e 612f 6/jellyfin/dlna/ 0x0130: 3762 3933 3064 3638 3335 3864 3430 6661 7b930d68358d40fa 0x0140: 3937 6163 3630 3530 6362 3730 3039 6235 97ac6050cb7009b5 0x0150: 2f64 6573 6372 6970 7469 6f6e 2e78 6d6c /description.xml 0x0160: 0d0a 0d0a .... ``` I was able to the following manual command... ``` # curl http://192.168.0.10:8096/jellyfin/dlna/7b930d68358d40fa97ac6050cb7009b5/description.xml <?xml version="1.0"?><root xmlns="urn:schemas-upnp-org:device-1-0" xmlns:dlna="urn:schemas-dlna-org:device-1-0"><specVersion><major>1</major><minor>0</minor></specVersion><URLBase>http://192.168.0.10:8096/jellyfin</URLBase><device><dlna:X_DLNACAP/><dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">DMS-1.50</dlna:X_DLNADOC><dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">M-DMS-1.50</dlna:X_DLNADOC><deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType><friendlyName>Jellyfin - jellyfin</friendlyName><manufacturer>Jellyfin</manufacturer><manufacturerURL>https://github.com/jellyfin/jellyfin</manufacturerURL><modelDescription>UPnP/AV 1.0 Compliant Media Server</modelDescription><modelName>Jellyfin Server</modelName><modelNumber>01</modelNumber><modelURL>https://github.com/jellyfin/jellyfin</modelURL><serialNumber>7b930d68358d40fa97ac6050cb7009b5</serialNumber><UPC/><UDN>uuid:7b930d68358d40fa97ac6050cb7009b5</UDN><iconList><icon><mimetype>image/png</mimetype><width>240</width><height>240</height><depth>24</depth><url>/dlna/7b930d68358d40fa97ac6050cb7009b5/icons/logo240.png</url></icon><icon><mimetype>image/jpeg</mimetype><width>240</width><height>240</height><depth>24</depth><url>/dlna/7b930d68358d40fa97ac6050cb7009b5/icons/logo240.jpg</url></icon><icon><mimetype>image/png</mimetype><width>120</width><height>120</height><depth>24</depth><url>/dlna/7b930d68358d40fa97ac6050cb7009b5/icons/logo120.png</url></icon><icon><mimetype>image/jpeg</mimetype><width>120</width><height>120</height><depth>24</depth><url>/dlna/7b930d68358d40fa97ac6050cb7009b5/icons/logo120.jpg</url></icon><icon><mimetype>image/png</mimetype><width>48</width><height>48</height><depth>24</depth><url>/dlna/7b930d68358d40fa97ac6050cb7009b5/icons/logo48.png</url></icon><icon><mimetype>image/jpeg</mimetype><width>48</width><height>48</height><depth>24</depth><url>/dlna/7b930d68358d40fa97ac6050cb7009b5/icons/logo48.jpg</url></icon></iconList><presentationURL>http://192.168.0.10:8096/jellyfin/web/index.html</presentationURL><serviceList><service><serviceType>urn:schemas-upnp-org:service:ContentDirectory:1</serviceType><serviceId>urn:upnp-org:serviceId:ContentDirectory</serviceId><SCPDURL>/dlna/7b930d68358d40fa97ac6050cb7009b5/contentdirectory/contentdirectory.xml</SCPDURL><controlURL>/dlna/7b930d68358d40fa97ac6050cb7009b5/contentdirectory/control</controlURL><eventSubURL>/dlna/7b930d68358d40fa97ac6050cb7009b5/contentdirectory/events</eventSubURL></service><service><serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType><serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId><SCPDURL>/dlna/7b930d68358d40fa97ac6050cb7009b5/connectionmanager/connectionmanager.xml</SCPDURL><controlURL>/dlna/7b930d68358d40fa97ac6050cb7009b5/connectionmanager/control</controlURL><eventSubURL>/dlna/7b930d68358d40fa97ac6050cb7009b5/connectionmanager/events</eventSubURL></service></serviceList></device></root> ```
Author
Owner

@twinkybot commented on GitHub (May 16, 2020):

Most probably this is the correct bug for me as well. As there are quite some I didn'T want to create a new one.
EDIT: Server is Ubuntu 19.04 with latest Jellyfin from PPA, Version 10.5.5

First of all I have a subdomain e.g. jellyfin.example.org. What would my BaseUrl be? I tried "/" but this is removed after restart.
My log says when I try to play via DLNA

Error processing request. URL: "http://jelyyfin.example.org/Sessions/ffb30e5672d6215cdd02a581d347b63e/Playing?ItemIds=85458581b2ce6b928d07854964ee6a3d&PlayCommand=PlayNow&StartPositionTicks=2023149430"
System.ArgumentNullException: Value cannot be null. (Parameter 'baseUrl')
   at MediaBrowser.Model.Dlna.StreamInfo.ToUrl(String baseUrl, String accessToken)
   at Emby.Dlna.PlayTo.PlayToController.CreatePlaylistItem(BaseItem item, User user, Int64 startPostionTicks, String mediaSourceId, Nullable`1 audioStreamIndex, Nullable`1 subtitleStreamIndex)
   at Emby.Dlna.PlayTo.PlayToController.SendPlayCommand(PlayRequest command, CancellationToken cancellationToken)
   at Emby.Server.Implementations.Session.SessionManager.SendMessageToSession[T](SessionInfo session, String name, T data, CancellationToken cancellationToken)
   at Emby.Server.Implementations.Session.SessionManager.SendPlayCommand(String controllingSessionId, String sessionId, PlayRequest command, CancellationToken cancellationToken)
   at Emby.Server.Implementations.Services.ServiceExecGeneral.GetTaskResult(Task task)
   at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken)
   at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken)

Playing on Laptop or any other device works fine.

Furthermore when I try to access Jellyfin from the A/V Receiver it shows as DLNA Server "----empty----" which I am not sure what it means. Either that there is no server or that there is no content. I don't trust my device anymore :) but it used to work with Emby with some hiccups but it worked.

@twinkybot commented on GitHub (May 16, 2020): Most probably this is the correct bug for me as well. As there are quite some I didn'T want to create a new one. EDIT: Server is Ubuntu 19.04 with latest Jellyfin from PPA, Version 10.5.5 First of all I have a subdomain e.g. jellyfin.example.org. What would my BaseUrl be? I tried "/" but this is removed after restart. My log says when I try to play via DLNA ``` Error processing request. URL: "http://jelyyfin.example.org/Sessions/ffb30e5672d6215cdd02a581d347b63e/Playing?ItemIds=85458581b2ce6b928d07854964ee6a3d&PlayCommand=PlayNow&StartPositionTicks=2023149430" System.ArgumentNullException: Value cannot be null. (Parameter 'baseUrl') at MediaBrowser.Model.Dlna.StreamInfo.ToUrl(String baseUrl, String accessToken) at Emby.Dlna.PlayTo.PlayToController.CreatePlaylistItem(BaseItem item, User user, Int64 startPostionTicks, String mediaSourceId, Nullable`1 audioStreamIndex, Nullable`1 subtitleStreamIndex) at Emby.Dlna.PlayTo.PlayToController.SendPlayCommand(PlayRequest command, CancellationToken cancellationToken) at Emby.Server.Implementations.Session.SessionManager.SendMessageToSession[T](SessionInfo session, String name, T data, CancellationToken cancellationToken) at Emby.Server.Implementations.Session.SessionManager.SendPlayCommand(String controllingSessionId, String sessionId, PlayRequest command, CancellationToken cancellationToken) at Emby.Server.Implementations.Services.ServiceExecGeneral.GetTaskResult(Task task) at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken) ``` Playing on Laptop or any other device works fine. Furthermore when I try to access Jellyfin from the A/V Receiver it shows as DLNA Server "----empty----" which I am not sure what it means. Either that there is no server or that there is no content. I don't trust my device anymore :) but it used to work with Emby with some hiccups but it worked.
Author
Owner

@twinkybot commented on GitHub (May 28, 2020):

Any insides?
I'd ague as DLNA is a major functionality tat the priority should be higher on this one, no?
Or is the "Known Issues" list sorted ascending in priority (highest at the bottom)?

@twinkybot commented on GitHub (May 28, 2020): Any insides? I'd ague as DLNA is a major functionality tat the priority should be higher on this one, no? Or is the "Known Issues" list sorted ascending in priority (highest at the bottom)?
Author
Owner

@Noir- commented on GitHub (Jun 7, 2020):

This is breaking for me as well. I also tried adding <BaseUrl>/</BaseUrl> to the config.xml but it seems to get automatically removed.
My client is a LG OLED C9 TV.

@Noir- commented on GitHub (Jun 7, 2020): This is breaking for me as well. I also tried adding `<BaseUrl>/</BaseUrl>` to the config.xml but it seems to get automatically removed. My client is a LG OLED C9 TV.
Author
Owner

@PacifistRiot commented on GitHub (Jun 28, 2020):

Confirmed that base url also breaks DLNA on my LG smart TV using 10.5.5.

@PacifistRiot commented on GitHub (Jun 28, 2020): Confirmed that base url also breaks DLNA on my LG smart TV using 10.5.5.
Author
Owner

@dkanada commented on GitHub (Jun 28, 2020):

The solution is really just to not use a base URL, which should resolve any problems you have been seeing.

@dkanada commented on GitHub (Jun 28, 2020): The solution is really just to not use a base URL, which should resolve any problems you have been seeing.
Author
Owner

@dkanada commented on GitHub (Jun 28, 2020):

Of course, this is definitely something we should fix, but if the setting is unused nothing should be amiss for now.

@dkanada commented on GitHub (Jun 28, 2020): Of course, this is definitely something we should fix, but if the setting is unused nothing should be amiss for now.
Author
Owner

@Noir- commented on GitHub (Jun 28, 2020):

The thing is that this configuration option isn't even in the settings GUI as far as I can tell. It just renders an installation unusable and you have to debug and manually edit the config to make it work. At the moment, UPNP with Jellyfin is really a mess 😕

@Noir- commented on GitHub (Jun 28, 2020): The thing is that this configuration option isn't even in the settings GUI as far as I can tell. It just renders an installation unusable and you have to debug and manually edit the config to make it work. At the moment, UPNP with Jellyfin is really a mess :confused:
Author
Owner

@twinkybot commented on GitHub (Jun 29, 2020):

@dkanada

The solution is really just to not use a base URL, which should resolve any problems you have been seeing.

No it is not as an empty base URL throws an Exception. What is your proposed solution?

@twinkybot commented on GitHub (Jun 29, 2020): @dkanada > The solution is really just to not use a base URL, which should resolve any problems you have been seeing. No it is not as an empty base URL throws an Exception. What is your proposed solution?
Author
Owner

@dkanada commented on GitHub (Jun 29, 2020):

Hmmmm it must be a DLNA only exception then, I'm running without one right now and have zero errors. No proposed solutions though, I don't have a single device that supports DLNA for testing.

I'd ague as DLNA is a major functionality that the priority should be higher on this one, no?

None of the devs enjoy working on DLNA, so it has a low priority. If someone shows up that uses DLNA and wants to maintain and improve the feature that would change. We can't really do anything about it for now.

@dkanada commented on GitHub (Jun 29, 2020): Hmmmm it must be a DLNA only exception then, I'm running without one right now and have zero errors. No proposed solutions though, I don't have a single device that supports DLNA for testing. > I'd ague as DLNA is a major functionality that the priority should be higher on this one, no? None of the devs enjoy working on DLNA, so it has a low priority. If someone shows up that uses DLNA and wants to maintain and improve the feature that would change. We can't really do anything about it for now.
Author
Owner

@twinkybot commented on GitHub (Jun 29, 2020):

This is sad :( as I need the feature. I used to listen to my music in my living room via my A/V Receiver and now I can only listen to internet radio. Sad.
Like I wrote in reddit. It is a shame that no one wants to write executable specifications as it would have helped enormously to fix this. I want to help but I am utterly lost in the code and I actually don't want to spend so much time to figure out what is wrong :(
Especially as I do not know how DLNA works in the first place :)

@twinkybot commented on GitHub (Jun 29, 2020): This is sad :( as I need the feature. I used to listen to my music in my living room via my A/V Receiver and now I can only listen to internet radio. Sad. Like I wrote in reddit. It is a shame that no one wants to write executable specifications as it would have helped enormously to fix this. I want to help but I am utterly lost in the code and I actually don't want to spend so much time to figure out what is wrong :( Especially as I do not know how DLNA works in the first place :)
Author
Owner

@Noir- commented on GitHub (Jun 29, 2020):

None of the devs enjoy working on DLNA, so it has a low priority. If someone shows up that uses DLNA and wants to maintain and improve the feature that would change. We can't really do anything about it for now.

What if there would be some people backing this with a bounty?

@Noir- commented on GitHub (Jun 29, 2020): > None of the devs enjoy working on DLNA, so it has a low priority. If someone shows up that uses DLNA and wants to maintain and improve the feature that would change. We can't really do anything about it for now. What if there would be some people backing this with a bounty?
Author
Owner

@twinkybot commented on GitHub (Jun 29, 2020):

What if there would be some people backing this with a bounty?

Bounties have a draw back. People's interest is in those cases only the bounty and not the project, thus they'll most probably hack and do not write maintainable code.

@twinkybot commented on GitHub (Jun 29, 2020): > What if there would be some people backing this with a bounty? Bounties have a draw back. People's interest is in those cases only the bounty and not the project, thus they'll most probably hack and do not write maintainable code.
Author
Owner

@Noir- commented on GitHub (Jun 29, 2020):

Yeah that's the worst case scenario but luckily it's not about a whole new feature (Isn't it possible to add maintainability to the bounty criteria?). But it sounds like this code isn't maintained anyway. Ideally, the bounty would go to a developer with a certain reputation. You know, I do a lot of things which I don't certainly enjoy but I get money for that 😉 So my hope is that the money helps with prioritization.

If UPNP is so horrible that it's not maintainable maybe it should be removed all together?

@Noir- commented on GitHub (Jun 29, 2020): Yeah that's the worst case scenario but luckily it's not about a whole new feature (Isn't it possible to add maintainability to the bounty criteria?). But it sounds like this code isn't maintained anyway. Ideally, the bounty would go to a developer with a certain reputation. You know, I do a lot of things which I don't certainly enjoy but I get money for that :wink: So my hope is that the money helps with prioritization. If UPNP is so horrible that it's not maintainable maybe it should be removed all together?
Author
Owner

@PrplHaz4 commented on GitHub (Jun 29, 2020):

I think these two PRs might already make some progress towards fixing this issue - I think the next step is making sure PublishedServerUrl is what is sent out for SSDP messages.

@BaronGreenback any idea if this is the case with your new network mgmt implementation?

https://github.com/jellyfin/jellyfin/pull/3033
https://github.com/jellyfin/jellyfin/pull/3257

@PrplHaz4 commented on GitHub (Jun 29, 2020): I think these two PRs might already make some progress towards fixing this issue - I think the next step is making sure `PublishedServerUrl` is what is sent out for SSDP messages. @BaronGreenback any idea if this is the case with your new network mgmt implementation? https://github.com/jellyfin/jellyfin/pull/3033 https://github.com/jellyfin/jellyfin/pull/3257
Author
Owner

@BaronGreenback commented on GitHub (Jun 29, 2020):

Perfect timing - just going through Emby.dnla with nullable.

As far as #3257 and ssdp messages go - it only provides the ability to filter them from going out on certain interfaces.

But looking at your exception above on the 16th May - that's being put together in descriptionXmlBuilder.cs where BaseURL is set to the _serverAddress.

This value is calculated from the requested string up to the /dnla/

var url = Request.AbsoluteUri;
var serverAddress = url.Substring(0, url.IndexOf("/dlna/", StringComparison.OrdinalIgnoreCase));
(serverAddress is the baseUrl in the error msg)

Given that the request is from:

Error processing request. URL: "http://jelyyfin.example.org/Sessions/ffb30e5672d6215cdd02a581d347b63e/Playing?ItemIds=85458581b2ce6b928d07854964ee6a3d&PlayCommand=PlayNow&StartPositionTicks=2023149430"
System.ArgumentNullException: Value cannot be null. (Parameter 'baseUrl')

this code is never going to work.

@BaronGreenback commented on GitHub (Jun 29, 2020): Perfect timing - just going through Emby.dnla with nullable. As far as #3257 and ssdp messages go - it only provides the ability to filter them from going out on certain interfaces. But looking at your exception above on the 16th May - that's being put together in descriptionXmlBuilder.cs where BaseURL is set to the _serverAddress. This value is calculated from the requested string up to the /dnla/ var url = Request.AbsoluteUri; var serverAddress = url.Substring(0, url.IndexOf("/dlna/", StringComparison.OrdinalIgnoreCase)); (serverAddress is the baseUrl in the error msg) Given that the request is from: Error processing request. URL: "http://jelyyfin.example.org/Sessions/ffb30e5672d6215cdd02a581d347b63e/Playing?ItemIds=85458581b2ce6b928d07854964ee6a3d&PlayCommand=PlayNow&StartPositionTicks=2023149430" System.ArgumentNullException: Value cannot be null. (Parameter 'baseUrl') this code is never going to work.
Author
Owner

@BaronGreenback commented on GitHub (Jun 29, 2020):

Check PR #3481 based upon #3033 - may work - most likely won't but may be a step in the right direction.

*** Local Subnet has to be defined for DLNA to work.

@BaronGreenback commented on GitHub (Jun 29, 2020): Check PR #3481 based upon #3033 - may work - most likely won't but may be a step in the right direction. *** Local Subnet has to be defined for DLNA to work.
Author
Owner

@BaronGreenback commented on GitHub (Jul 2, 2020):

@twinkybot Done some testing today. PR #2377 should now work with BaseDir and published-server-url. Details in the PR.

If you could test on your system?

@BaronGreenback commented on GitHub (Jul 2, 2020): @twinkybot Done some testing today. PR #2377 should now work with BaseDir and published-server-url. Details in the PR. If you could test on your system?
Author
Owner

@twinkybot commented on GitHub (Jul 4, 2020):

Yes I gladly would but I do not know how. I have Ubuntu and installed Jellyfin via deb. I presume I need to checkout this branch and package it myself to a deb?
Is there a documentation for this?

@twinkybot commented on GitHub (Jul 4, 2020): Yes I gladly would but I do not know how. I have Ubuntu and installed Jellyfin via deb. I presume I need to checkout this branch and package it myself to a deb? Is there a documentation for this?
Author
Owner

@twinkybot commented on GitHub (Jul 4, 2020):

So I need to execut ./build.sh -t native -p ubuntu.amd64

But before that I have to install dotnet like described here: https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu#2004-
Right?

It created a packages-microsoft.prd.deb, is that right?

@twinkybot commented on GitHub (Jul 4, 2020): So I need to execut `./build.sh -t native -p ubuntu.amd64` But before that I have to install dotnet like described here: https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu#2004- Right? It created a packages-microsoft.prd.deb, is that right?
Author
Owner

@twinkybot commented on GitHub (Jul 4, 2020):

Sorry found the documentation (blush)

@twinkybot commented on GitHub (Jul 4, 2020): Sorry found the documentation (blush)
Author
Owner

@twinkybot commented on GitHub (Jul 4, 2020):

Because I forgot to change the file I had to build it twice and now I am getting an error I do not know what to do:

debian/rules:42: recipe for target 'override_dh_auto_build' failed
make[1]: *** [override_dh_auto_build] Error 1
make[1]: Verzeichnis „/home/twinkybot/workspace/jellyfin“ wird verlassen
debian/rules:33: recipe for target 'binary' failed
make: *** [binary] Error 2
dpkg-buildpackage: Fehler: fakeroot debian/rules binary Unterprozess gibt Abbruchstatus 2 zurück
@twinkybot commented on GitHub (Jul 4, 2020): Because I forgot to change the file I had to build it twice and now I am getting an error I do not know what to do: ``` debian/rules:42: recipe for target 'override_dh_auto_build' failed make[1]: *** [override_dh_auto_build] Error 1 make[1]: Verzeichnis „/home/twinkybot/workspace/jellyfin“ wird verlassen debian/rules:33: recipe for target 'binary' failed make: *** [binary] Error 2 dpkg-buildpackage: Fehler: fakeroot debian/rules binary Unterprozess gibt Abbruchstatus 2 zurück ```
Author
Owner

@BaronGreenback commented on GitHub (Jul 4, 2020):

Sorry not at all familiar with linux building. However, came across this https://github.com/CESNET/libyang/issues/627 if it's of any help?

@BaronGreenback commented on GitHub (Jul 4, 2020): Sorry not at all familiar with linux building. However, came across this https://github.com/CESNET/libyang/issues/627 if it's of any help?
Author
Owner

@mazzystr commented on GitHub (Jul 10, 2020):

Curiously, I can start/play media via DLNA to my amp (Yamaha RX-V685) with Jellyfin (container jellyfin/jellyfin:nightly-20200709) /jellyfin BaseURL setting if I start it from the web or app. If I use the amp app and select server source no dlna endpooint is discovered. Soon as I remove BaseURL setting the amp app discovers the DLNA endpoint is discovered and I can browse and play media.

@mazzystr commented on GitHub (Jul 10, 2020): Curiously, I can start/play media via DLNA to my amp (Yamaha RX-V685) with Jellyfin (container jellyfin/jellyfin:nightly-20200709) /jellyfin BaseURL setting if I start it from the web or app. If I use the amp app and select server source no dlna endpooint is discovered. Soon as I remove BaseURL setting the amp app discovers the DLNA endpoint is discovered and I can browse and play media.
Author
Owner

@BaronGreenback commented on GitHub (Jul 10, 2020):

#2377 hasn't been accepted into the build yet - so you'll need to pull in that code and compile.

It you have already done that change the settings in you logging.default.json file to
{
"Serilog": {
"MinimumLevel": {
"Default": "Warning",
"Override": {
"Microsoft": "Warning",
"System": "Warning",
"Emby.Dlna": "Debug",
"Emby.Dlna.Eventing": "Debug"
}

restart jellyfin - and post the log here.

This will turn on the dlna debugging

@BaronGreenback commented on GitHub (Jul 10, 2020): #2377 hasn't been accepted into the build yet - so you'll need to pull in that code and compile. It you have already done that change the settings in you logging.default.json file to { "Serilog": { "MinimumLevel": { "Default": "Warning", "Override": { "Microsoft": "Warning", "System": "Warning", "Emby.Dlna": "Debug", "Emby.Dlna.Eventing": "Debug" } restart jellyfin - and post the log here. This will turn on the dlna debugging
Author
Owner

@zzc-tongji commented on GitHub (Jul 17, 2020):

I have met the same problem when running Jellyfin 10.5.5 in Docker.

@zzc-tongji commented on GitHub (Jul 17, 2020): I have met the same problem when running Jellyfin 10.5.5 in Docker.
Author
Owner

@twinkybot commented on GitHub (Jul 21, 2020):

AWEWSOME: with the new delivered package (Version 10.6.0) it is working!

Thanks a lot!!!!!

For me this bug can be closed.

@twinkybot commented on GitHub (Jul 21, 2020): AWEWSOME: with the new delivered package (Version 10.6.0) it is working! Thanks a lot!!!!! For me this bug can be closed.
Author
Owner

@zzc-tongji commented on GitHub (Jul 24, 2020):

It seems that the problem still exists in 10.6.0 (Docker).

@zzc-tongji commented on GitHub (Jul 24, 2020): It seems that the problem still exists in 10.6.0 (Docker).
Author
Owner

@BaronGreenback commented on GitHub (Jul 24, 2020):

Should be fixed in https://github.com/jellyfin/jellyfin/pull/3481

@BaronGreenback commented on GitHub (Jul 24, 2020): Should be fixed in https://github.com/jellyfin/jellyfin/pull/3481
Author
Owner

@BaronGreenback commented on GitHub (Aug 1, 2020):

@zzc-tongji 10.6.0 breaks certains other things. Try 10.6.1 and let me know if it works.

@BaronGreenback commented on GitHub (Aug 1, 2020): @zzc-tongji 10.6.0 breaks certains other things. Try 10.6.1 and let me know if it works.
Author
Owner

@zzc-tongji commented on GitHub (Sep 4, 2020):

@BaronGreenback I have upgraded to 10.6.4 and it seems still doesn't work.

DLAN client as nPlayer says Premature end of data in tag HTML line 2.

@zzc-tongji commented on GitHub (Sep 4, 2020): @BaronGreenback I have upgraded to 10.6.4 and it seems still doesn't work. DLAN client as [nPlayer](https://apps.apple.com/us/app/nplayer/id1116905928) says `Premature end of data in tag HTML line 2`.
Author
Owner

@kyz commented on GitHub (Sep 14, 2020):

I've been trying to use Jellyfin to play to a Samsung Smart TV.

Installed: Jellyfin 10.6.4-1
OS: Ubuntu 20.04 amd64
Running behind Apache 2 proxy (serving http on port 80 and https on 443, the only ports open on the firewall)
Base URL is /jellyfin
Local bind address is 127.0.0.1
LAN networks set to 10.0.0.0/255.255.255.0

I get an exception if local bind address is set to 127.0.0.1:

[2020-09-14 12:01:22.277 +00:00] [DBG] Attempting to create PlayToController from location "http://10.0.0.238:7676/smp_16_"
[2020-09-14 12:01:22.277 +00:00] [DBG] Logging session activity from location "http://10.0.0.238:7676/smp_16_"
[2020-09-14 12:01:23.300 +00:00] [DBG] Dlna Device.Start
[2020-09-14 12:01:23.316 +00:00] [DBG] Found matching device profile: "Samsung Smart TV"
[2020-09-14 12:01:23.366 +00:00] [INF] DLNA Session created for "[TV]Samsung LED32" - "UE32F5500"
...
[2020-09-14 12:02:08.399 +00:00] [DBG] "[TV]Samsung LED32" - Received PlayRequest: PlayNow
[2020-09-14 12:02:08.420 +00:00] [DBG] Found matching device profile: "Samsung Smart TV"
[2020-09-14 12:02:08.507 +00:00] [INF] Profile: "Samsung Smart TV", Path: "/video/films/FOO.mp4", isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[2020-09-14 12:02:08.545 +00:00] [ERR] Error processing request. URL: "http://127.0.0.1:8096/jellyfin/Sessions/FOO/Playing?ItemIds=FOO&PlayCommand=PlayNow&StartPositionTicks=0"
System.ArgumentNullException: Value cannot be null. (Parameter 'baseUrl')
   at MediaBrowser.Model.Dlna.StreamInfo.ToUrl(String baseUrl, String accessToken)
   at Emby.Dlna.PlayTo.PlayToController.CreatePlaylistItem(BaseItem item, User user, Int64 startPostionTicks, String mediaSourceId, Nullable`1 audioStreamIndex, Nullable`1 subtitleStreamIndex)
   at Emby.Dlna.PlayTo.PlayToController.SendPlayCommand(PlayRequest command, CancellationToken cancellationToken)
   at Emby.Dlna.PlayTo.PlayToController.SendMessage[T](String name, Guid messageId, T data, CancellationToken cancellationToken)
   at Emby.Server.Implementations.Session.SessionManager.SendMessageToSession[T](SessionInfo session, String name, T data, CancellationToken cancellationToken)
   at Emby.Server.Implementations.Session.SessionManager.SendPlayCommand(String controllingSessionId, String sessionId, PlayRequest command, CancellationToken cancellationToken)
   at Emby.Server.Implementations.Services.ServiceExecGeneral.GetTaskResult(Task task)
   at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken)
   at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken)

However, provided the local bind address is left blank, DLNA sending to the TV works both when a base URL is set and when it is blank, and it also works when "LAN networks" are set and when they are blank.

@kyz commented on GitHub (Sep 14, 2020): I've been trying to use Jellyfin to play to a Samsung Smart TV. Installed: Jellyfin 10.6.4-1 OS: Ubuntu 20.04 amd64 Running behind Apache 2 proxy (serving http on port 80 and https on 443, the only ports open on the firewall) Base URL is /jellyfin Local bind address is 127.0.0.1 LAN networks set to 10.0.0.0/255.255.255.0 I get an exception if local bind address is set to 127.0.0.1: ``` [2020-09-14 12:01:22.277 +00:00] [DBG] Attempting to create PlayToController from location "http://10.0.0.238:7676/smp_16_" [2020-09-14 12:01:22.277 +00:00] [DBG] Logging session activity from location "http://10.0.0.238:7676/smp_16_" [2020-09-14 12:01:23.300 +00:00] [DBG] Dlna Device.Start [2020-09-14 12:01:23.316 +00:00] [DBG] Found matching device profile: "Samsung Smart TV" [2020-09-14 12:01:23.366 +00:00] [INF] DLNA Session created for "[TV]Samsung LED32" - "UE32F5500" ... [2020-09-14 12:02:08.399 +00:00] [DBG] "[TV]Samsung LED32" - Received PlayRequest: PlayNow [2020-09-14 12:02:08.420 +00:00] [DBG] Found matching device profile: "Samsung Smart TV" [2020-09-14 12:02:08.507 +00:00] [INF] Profile: "Samsung Smart TV", Path: "/video/films/FOO.mp4", isEligibleForDirectPlay: True, isEligibleForDirectStream: True [2020-09-14 12:02:08.545 +00:00] [ERR] Error processing request. URL: "http://127.0.0.1:8096/jellyfin/Sessions/FOO/Playing?ItemIds=FOO&PlayCommand=PlayNow&StartPositionTicks=0" System.ArgumentNullException: Value cannot be null. (Parameter 'baseUrl') at MediaBrowser.Model.Dlna.StreamInfo.ToUrl(String baseUrl, String accessToken) at Emby.Dlna.PlayTo.PlayToController.CreatePlaylistItem(BaseItem item, User user, Int64 startPostionTicks, String mediaSourceId, Nullable`1 audioStreamIndex, Nullable`1 subtitleStreamIndex) at Emby.Dlna.PlayTo.PlayToController.SendPlayCommand(PlayRequest command, CancellationToken cancellationToken) at Emby.Dlna.PlayTo.PlayToController.SendMessage[T](String name, Guid messageId, T data, CancellationToken cancellationToken) at Emby.Server.Implementations.Session.SessionManager.SendMessageToSession[T](SessionInfo session, String name, T data, CancellationToken cancellationToken) at Emby.Server.Implementations.Session.SessionManager.SendPlayCommand(String controllingSessionId, String sessionId, PlayRequest command, CancellationToken cancellationToken) at Emby.Server.Implementations.Services.ServiceExecGeneral.GetTaskResult(Task task) at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken) ``` However, provided the local bind address is left blank, DLNA sending to the TV works both when a base URL is set and when it is blank, and it also works when "LAN networks" are set and when they are blank.
Author
Owner

@BaronGreenback commented on GitHub (Sep 14, 2020):

DLNA uses ip address and not urls, so that is why it works.

The system cannot find 127.0.0.1 in the list of ip addresses, hence the null crash.

This whole backend system is currently going through the PR system as i type.
I will run this against the new version to make sure it works.

@BaronGreenback commented on GitHub (Sep 14, 2020): DLNA uses ip address and not urls, so that is why it works. The system cannot find 127.0.0.1 in the list of ip addresses, hence the null crash. This whole backend system is currently going through the PR system as i type. I will run this against the new version to make sure it works.
Author
Owner

@crobibero commented on GitHub (Sep 28, 2020):

Should be fixed by https://github.com/jellyfin/jellyfin/pull/4162

@crobibero commented on GitHub (Sep 28, 2020): Should be fixed by https://github.com/jellyfin/jellyfin/pull/4162
Author
Owner

@transiient commented on GitHub (Nov 6, 2020):

Has this change been implemented in Docker image jellyfin/jellyfin:2020-11-05.1? The image reports version 10.7.0 but the issue still occurs in it.

The WireShark output below is a short capture from when I attempt to access my Jellyfin instance (hosted on 192.168.1.200) via VLC Media Player on Windows 10. It occurs after I double-click the Jellyfin instance. I can't even get the Jellyfin instance to appear on my PS3 console or Windows Media Player.

image

It seems as though DLNA is still looking for jellyfin.server/dlna/af... instead of jellyfin.server/baseurl/dlna/af... as it should be. Been trying to get this working all day.

@transiient commented on GitHub (Nov 6, 2020): Has this change been implemented in Docker image `jellyfin/jellyfin:2020-11-05.1`? The image reports version `10.7.0` but the issue still occurs in it. The WireShark output below is a short capture from when I attempt to access my Jellyfin instance (hosted on 192.168.1.200) via VLC Media Player on Windows 10. It occurs after I double-click the Jellyfin instance. I can't even get the Jellyfin instance to appear on my PS3 console or Windows Media Player. ![image](https://user-images.githubusercontent.com/6699307/98307391-8aa0b500-1fbd-11eb-932d-45375320f3e7.png) It seems as though DLNA is *still* looking for `jellyfin.server/dlna/af...` instead of `jellyfin.server/baseurl/dlna/af...` as it should be. Been trying to get this working all day.
Author
Owner

@BaronGreenback commented on GitHub (Nov 6, 2020):

Its not been merged with the unstable yet.

@BaronGreenback commented on GitHub (Nov 6, 2020): Its not been merged with the unstable yet.
Author
Owner

@transiient commented on GitHub (Nov 21, 2020):

@BaronGreenback I apologise for bringing up a closed issue, but could I ask how I can track which commits are in unstable? Thanks!

@transiient commented on GitHub (Nov 21, 2020): @BaronGreenback I apologise for bringing up a closed issue, but could I ask how I can track which commits _are_ in unstable? Thanks!
Author
Owner

@PrplHaz4 commented on GitHub (Nov 21, 2020):

@BaronGreenback I apologise for bringing up a closed issue, but could I ask how I can track which commits are in unstable? Thanks!

#4161 says the fix was merged to master on Sept 27:

Bond-009 merged commit 43add83 into jellyfin:master on Sep 27

At this point you're probably better off waiting for the RC to test, as that has significant network changes that will impact DLNA (for the better)...

To check commit history: https://github.com/jellyfin/jellyfin/commits/master - but beware it's loooong since last release...

@PrplHaz4 commented on GitHub (Nov 21, 2020): > > > @BaronGreenback I apologise for bringing up a closed issue, but could I ask how I can track which commits _are_ in unstable? Thanks! #4161 says the fix was merged to master on Sept 27: > > Bond-009 merged commit 43add83 into jellyfin:master on Sep 27 At this point you're probably better off waiting for the RC to test, as that has significant network changes that will impact DLNA (for the better)... To check commit history: https://github.com/jellyfin/jellyfin/commits/master - but beware it's loooong since last release...
Author
Owner

@BaronGreenback commented on GitHub (Nov 21, 2020):

I've just checked (and corrected a subsequent bug) - DLNA with baseurl works in network PR 2.

@BaronGreenback commented on GitHub (Nov 21, 2020): I've just checked (and corrected a subsequent bug) - DLNA with baseurl works in network PR 2.
Author
Owner

@cloventt commented on GitHub (Jun 17, 2021):

I'm still seeing this issue on 20210616.1-unstable (admin dashboard shows version 10.8.0 linux X64 running inside Docker) and on version 10.7.5 stable.

DLNA works fine without a base URL set. As soon as it is set, DLNA stops working. Unsetting it makes DLNA work again.

@cloventt commented on GitHub (Jun 17, 2021): I'm still seeing this issue on 20210616.1-unstable (admin dashboard shows version 10.8.0 linux X64 running inside Docker) and on version 10.7.5 stable. DLNA works fine without a base URL set. As soon as it is set, DLNA stops working. Unsetting it makes DLNA work again.
Author
Owner

@BaronGreenback commented on GitHub (Jun 17, 2021):

What are you setting baseurl to?

@BaronGreenback commented on GitHub (Jun 17, 2021): What are you setting baseurl to?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#1256