Advertisement
EchtkPvL

[Twitch] Get m3u8

Feb 18th, 2018
457
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.26 KB | None | 0 0
  1. <?php
  2. /**
  3.  *
  4.  * Get Twitch m3u8 file
  5.  *
  6.  * @author    EchtkPvL <dev@echtkpvl.de>
  7.  * @version   0.1.0
  8.  * @copyright 18.02.2018 EchtkPvL
  9.  */
  10. $streamer = '<streamer>';
  11. $clid = '<client id>'; // https://dev.twitch.tv/docs/v5#getting-a-client-id
  12.  
  13. $opts = [
  14.   "http" => [
  15.     "method" => "GET",
  16.     "header" => "Accept: application/vnd.twitchtv.v5+json\r\n".
  17.                 "Client-ID: ".$clid."\r\n"
  18.   ]
  19. ];
  20. $context = stream_context_create($opts);
  21. $access_token = file_get_contents('http://api.twitch.tv/api/channels/'.$streamer.'/access_token', false, $context);
  22. $decoded = json_decode($access_token, true);
  23.  
  24. $url = 'http://usher.twitch.tv/api/channel/hls/'.$streamer.'.m3u8?player=twitchweb&token='.$decoded['token'].'&sig='.$decoded['sig'].'&allow_audio_only=true&allow_source=true&type=any&p='.rand(100000,999999);
  25. $m3u8 = file_get_contents($url);
  26.  
  27. $regex_video = '/#[^,]*,GROUP-ID="([^"]*)",[^,]*,[^#]*\n#[^,]*,[^,]*,RESOLUTION=([^,]*),CODECS="[^"]*",VIDEO="(\1)"\n([^\n]*)/';
  28. $regex_audio = '/#[^,]*,GROUP-ID="([^"]*)",[^,]*,[^#]*\n#[^,]*,[^,]*,CODECS="[^"]*",VIDEO="(\1)"\n([^\n]*)/';
  29. preg_match_all($regex_video, $m3u8, $array_video, PREG_SET_ORDER);
  30. preg_match_all($regex_audio, $m3u8, $array_audio, PREG_SET_ORDER);
  31.  
  32. echo $array_audio[0][3].PHP_EOL;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement