LG TV UPnP/DLNA错误非法mimetyp

2022-01-18 23:47:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个python脚本,在我的LG智能电视上播放一个视频文件。到目前为止,我已经设置了minidlna服务器,可以流式传输音频和视频。它可以从同一局域网上的其他设备上工作。然后我有以下代码在我的电视上播放:

#import requests
#import sys


def upload_file(location, filename, controlURL):
    headers = {
        'Content-Type': 'text/xml; charset=utf-8',
        'SOAPAction': '"urn:schemas-upnp-org:service:AVTransport:1#SetAVTransportURI"',
    }
    #<DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sec="http://www.sec.co.kr/"><item id="0" parentID="-1" restricted="0"><dc:title>Video</dc:title><dc:creator>Anonymous</dc:creator><upnp:class>object.item.videoItem</upnp:class><res protocolInfo="http-get:*:video/mp4:*" sec:URIType="public">"http://' + location + '/' + filename + '"</res></item></DIDL-Lite>
    data = '<?xml version "1.0" encoding="utf-8"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:SetAVTransportURI xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><CurrentURI><![CDATA[http://' + location + '/' + filename + ']]></CurrentURI><CurrentURIMetaData></CurrentURIMetaData></u:SetAVTransportURI></s:Body></s:Envelope>'
    print "[*] Sending request"

    try:
        response = requests.post(controlURL, headers=headers, data=data, timeout=2)
    except Exception as ex:
        print "[x] Request failed!"
        sys.exit(ex)
    print response.status_code
    print response.text


upload_file("192.168.22.217:8200", "MediaItems/22.mp4", "http://192.168.22.198:1498/AVTransport/8167b8fc-bf78-da40-9070-5663d70a8a40/control.xml")

无论请求中是否有元数据,它都无法工作。我可以访问192.168.22.217:8200/MediaItems/22.mp4,它可以正常播放视频,controlURL是有效的(实际上我得到的方法有点不同,但这超出了这个问题的范围)。在

电视成功地联系了minidlna服务器(我可以从用HTTP 200响应并开始为文件提供服务的日志中看到),但是电视不播放任何内容,而是以HTTP 500响应:

^{pr2}$

为什么会这样?video/mp4是有效的mime类型。我也尝试过其他几种mime类型和文件格式,每次都是相同的结果。在

电视:LG 43UJ635V

笔记本电脑:MacBook Pro

minidlnad版本:minidlnad -V -> Version 1.1.5