perl调用curl下载m3u8
2022/5/1 17:12:54
本文主要是介绍perl调用curl下载m3u8,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
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';
这篇关于perl调用curl下载m3u8的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14Fetch / Axios学习:入门教程与实战指南
- 2024-11-14Typescript 类型课程入门教程
- 2024-11-14Fetch / Axios课程:初学者必看的网络请求教程
- 2024-11-14Styled-components课程:初学者指南
- 2024-11-13pre-commit 自动化测试课程:入门教程与实践指南
- 2024-11-13什么是AIGC?如何使用AIGC技术辅助办公?
- 2024-11-13Slicm 框架怎么进行用户认证?-icode9专业技术文章分享
- 2024-11-13在查询时将 map_coord 列的值转换为字符串有哪些方法?-icode9专业技术文章分享
- 2024-11-13如何将微信地区改成自定义文案?-icode9专业技术文章分享
- 2024-11-13DNS 缓存存在问题有哪些症状和解决方法?-icode9专业技术文章分享