NAME
WWW::Twitch - automate parts of Twitch without the need for an API key
SYNOPSIS
use
5.012;
# say
use
WWW::Twitch;
my
$channel
=
'corion_de'
;
my
$twitch
= WWW::Twitch->new();
my
$info
=
$twitch
->live_stream(
$channel
);
if
(
$info
) {
my
$id
=
$info
->{id};
opendir
my
$dh
,
'.'
or
die
"$!"
;
# If we have stale recordings, maybe our network went down
# in between
my
@recordings
=
grep
{ /\b
$id
\.mp4(\.part)?$/ && -M
$_
< 30/24/60/60 }
readdir
$dh
;
if
( !
@recordings
) {
say
"$channel is live (Stream $id)"
;
say
"Launching youtube-dl"
;
}
else
{
say
"$channel is recording (@recordings)"
;
};
}
else
{
say
"$channel is offline"
;
}
METHODS
->new
my
$twitch
= WWW::Twitch->new();
Creates a new Twitch client
- device_id
-
Optional device id. If missing, a hardcoded device id will be used.
- client_id
-
Optional client id. If missing, a hardcoded client id will be used.
- client_version
-
Optional client version. If missing, a hardcoded client version will be used.
- ua
-
Optional HTTP user agent. If missing, a HTTP::Tiny object will be constructed.
->schedule( $channel )
my
$schedule
=
$twitch
->schedule(
'somechannel'
,
%options
);
Fetch the schedule of a channel
->is_live( $channel )
if
(
$twitch
->is_live(
'somechannel'
) ) {
...
}
Check whether a stream is currently live on a channel
->stream_playback_access_token( $channel )
my
$tok
=
$twitch
->stream_playback_access_token(
'somechannel'
);
say
$tok
->{channel_id};
Internal method to fetch the stream playback access token
->live_stream( $channel )
my
$tok
=
$twitch
->live_stream(
'somechannel'
);
Internal method to fetch information about a stream on a channel
->stream_status( $channel )
my
$status
=
$twitch
->stream_status_f(
'somechannel'
,
'another_channel'
);
for
my
$channel
(
$status
->get) {
say
$status
->{channel},
$status
->{status};
}
Fetches the status of multiple channels