Net::UPnP - Perl extension for UPnP
Contents
Copyright And License
Copyright (C) 2005 by Satoshi Konno
It may be used, redistributed, and/or modified under the terms of BSD License.
perl v5.36.0 2022-12-06 Net::UPnP(3pm)
Description
This package provides some functions to control UPnP devices.
Currently, the package provides only functions for the control point. To control UPnP devices, see
Net::UPnP::ControlPoint.
As a sample of the control point, the package provides Net::UPnP::AV::MediaServer to control the devices
such as DLNA media servers. As the example, please dms2vodcast.pl that converts from the MPEG2 movies to
the MPEG4 one and outputs the RSS file for Vodcasting.
Name
Net::UPnP - Perl extension for UPnP
See Also
Net::UPnP::ControlPoint
Net::UPnP::AV::MediaServer
Synopsis
use Net::UPnP::ControlPoint;
my $obj = Net::UPnP::ControlPoint->new();
@dev_list = $obj->search(st =>'upnp:rootdevice', mx => 3);
$devNum= 0;
foreach $dev (@dev_list) {
$device_type = $dev->getdevicetype();
if ($device_type ne 'urn:schemas-upnp-org:device:MediaServer:1') {
next;
}
print "[$devNum] : " . $dev->getfriendlyname() . "\n";
unless ($dev->getservicebyname('urn:schemas-upnp-org:service:ContentDirectory:1')) {
next;
}
$condir_service = $dev->getservicebyname('urn:schemas-upnp-org:service:ContentDirectory:1');
unless (defined(condir_service)) {
next;
}
%action_in_arg = (
'ObjectID' => 0,
'BrowseFlag' => 'BrowseDirectChildren',
'Filter' => '*',
'StartingIndex' => 0,
'RequestedCount' => 0,
'SortCriteria' => '',
);
$action_res = $condir_service->postcontrol('Browse', \%action_in_arg);
unless ($action_res->getstatuscode() == 200) {
next;
}
$actrion_out_arg = $action_res->getargumentlist();
unless ($actrion_out_arg->{'Result'}) {
next;
}
$result = $actrion_out_arg->{'Result'};
while ($result =~ m/<dc:title>(.*?)<\/dc:title>/sgi) {
print "\t$1\n";
}
$devNum++;
}
