ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

perl调用curl下载m3u8

2022-05-01 17:00:40  阅读:316  来源: 互联网

标签:tns name err m3u8 perl tn print curl my


perl调用curl下载m3u8

 1 use strict; use warnings;
 2 #格式: prefix,file1,file2...
 3 my $fn = $ARGV[0];
 4 print "File=$fn\n"; 
 5 
 6 sub slurp{
 7     # 一次性读取文件, 参数是文件名
 8     open(my $f, '<', shift);     my $c = '';     while (<$f>){    $c = $c.$_; }    close($f); return $c;
 9 }
10 
11 my $doc = slurp($fn);
12 my @tns = split(/,/, $doc);
13 my $prefix = shift(@tns);
14 my @names = ();
15 # 检查是否有后缀名
16 if (index($tns[0], '.ts') == -1){
17     print "auto edit url\n";
18     foreach my $tn (@tns){
19         $tn =~ s/\&/A/g;
20         $tn =~ s/\?/B/g;
21         $tn =~ s/\=/C/g;
22         $tn = $tn.'.ts';
23         if (-e $tn) {} else { push(@names, $tn); }
24     }
25 } else {
26     foreach my $tn (@tns) {
27         if (-e $tn) {} else { push(@names, $tn); }
28     }
29 }
30 
31 my $tm = time;
32 
33 my @errs = ();
34 my $app = "curl.exe -L -k -A \"Mozilla/5.0 (Windows NT 6.1; WOW64) Chrome/72.0.3626.96\" ";
35 print "[0|0]\n";
36 for (my $j = 0; $j < scalar(@names); $j++){
37     my $name = $names[$j];
38     if (-e $name.".err"){
39         unlink($name.".err");
40         unlink($name);
41     }
42     my $cmd = $app." --stderr ".$name.".err -o ".$name.' "'.$prefix.'/'.$name.'"';
43     system($cmd);
44     
45     if (-e $name.".err"){
46         my $err = slurp($name.".err");
47         if (index($err, 'curl:') > -1){
48             #curl 下载错误
49             push(@errs, $name);
50             
51             if (-e $name){
52                 unlink($name);
53             }
54         }
55         unlink($name.".err");
56         
57     }
58     if (time - $tm >= 150){
59         print '['.$j.'|'.scalar(@errs)."]\n";
60         $tm = time;
61     }
62     
63 }
64 
65 print "\n";
66 if (scalar(@errs) > 0){
67     print "Error:".join(',', @errs)."\n";
68 }
69 print 'FINISH';

 

标签:tns,name,err,m3u8,perl,tn,print,curl,my
来源: https://www.cnblogs.com/crella2/p/16213264.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有