/usr/bin/xiph2vclt is in vclt-tools 0.1.4-4.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | #!/usr/bin/perl
# Copyright (C) Philipp 'ph3-der-loewe' Schafft - 2009-2011
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 3
# as published by the Free Software Foundation.
#
# It is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this software; see the file COPYING.gplv3. If not, write to
# the Free Software Foundation, 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
use strict;
use XML::Simple;
use Data::Dumper;
use Digest::SHA qw(sha1);
my %mine2codec = (
'application/ogg' => 'ogg_vorbis',
# 'audio/mpeg' => 'mpeg',
# 'audio/aacp' => 'aacp',
# 'audio/aac' => 'aac',
# 'video/nsv' => 'nsv',
);
my $xml = XMLin($ARGV[0] || 'yp.xml');
my $list = $xml->{'entry'};
if ( ref($list) eq 'HASH' ) {
$list = [$list];
}
my $type;
my $uuid;
foreach my $c (@{$list}) {
$type = $mine2codec{$c->{'server_type'}};
print "TITLE=$c->{'server_name'}\n" if $c->{'server_name'};
print "STREAMURL=$c->{'listen_url'}\n";
print "SIGNALINFO=codec:$type\n" if defined $type;
if ( defined(($uuid = gen_uuid($c))) ) {
print "HASH={UUID}$uuid\n";
}
print "==\n";
}
exit(0);
# ---
sub gen_uuid {
use bytes;
my ($c) = @_;
my $hash = '\153\247\270\021\235\255\021\321\200\264\000\300\117\324\060\310'; # URL NS
my $sha1;
my $uuid;
$hash .= $c->{'listen_url'};
$sha1 = sha1($hash);
$uuid = substr($sha1, 0, 16);
substr($uuid, 6, 1, chr(ord(substr($uuid, 6, 1)) & 0x0f | 0x50));
substr($uuid, 8, 1, chr(ord(substr($uuid, 8, 1)) & 0x3f | 0x80));
return join('-',
map { unpack('H*', $_) }
map { substr($uuid, 0, $_, '') }
(4, 2, 2, 2, 6));
}
#ll
__END__
'current_song' => 'Juan Chavez APPO - Entrevista a Juan Chavez de la APPO',
'bitrate' => 'Quality 2.0',
'listen_url' => 'http://labbs.net:8080/nerdfiles.ogg',
'channels' => '0',
'samplerate' => '0',
'genre' => 'linux gnu',
'server_type' => 'application/ogg',
'server_name' => 'nerdfiles.ogg'
|