半自动拉取千聊音频与PPT

1.获取千聊所有语信息:

  1. 课程界面可以获取的参数:
  1. 里面每一个content+.m4a
  2. 重新排列在一个数组中:0、1、2、3、……

2.下载

  1. 根据重新排列的数组逐个下载
  2. 合并
  3. 输出

PHP解决

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
<?php 
// $test:直接写入控制台JSON.stringify(__INIT_STATE__.thousandLive.totalSpeakList)的结果
$test = <<< string
string;
// 排序 start
$test_arr = json_decode($test);
$real = [];
foreach ($test_arr as $key => $value) {
// 转http下载
$real[$key] = str_replace('https', 'http', $value->content).'.m4a';
}
// 排序 end

// downFile("远程文件地址","保存目录");
function downFile($url,$flname,$path){
// echo $url;
$arr=parse_url($url);
$fileName = $flname;
$file=file_get_contents($url);
file_put_contents($path.$fileName,$file);
}

// 下载
$console = '';
$count = count($real);
foreach ($real as $key => $value) {
if ($key!=$count-1) {
downFile($value,$key.'.m4a','D:\\phpStudy\\PHPTutorial\\test\\down\\');
$console .= $key.'.aac|';
}
}
echo $console;
echo '下载完成!<br/>';
?>

然后下载了一大堆m4a文件,后面的思路用ffmpeg即可搞定
具体的ffmepg命令(.bat处理):

  • 将所有的M4A转为AAC

    1
    2
    for %%a in ("D:\phpStudy\PHPTutorial\test\down\ffmpeg\bin\*.m4a") do ffmpeg -i "%%a" -acodec copy "D:\phpStudy\PHPTutorial\test\down\ffmpeg\bin\tmp\%%~na.aac"
    pause
  • 将所有的AAC合并为一个result.aac(concat后面的文件可以直接运行PHP得到)

    1
    ffmpeg -i "concat:1.aac|2.aac" -c copy result.aac
  • AAC转为MP3

    1
    ffmpeg -i result.aac -b 1500 -ar 8000 -ac 2 -ab 32 -f mp3 result.mp3

同样的思路获取PPT

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
<?php 
/**
$test:直接写入控制台Network抓取到的
https://m.qlchat.com/api/wechat/topic/pptList
返回包中[->data->file的json数据]的结果
**/
$test = <<< string
string;

$test_arr = json_decode($test);
$real = [];
foreach ($test_arr as $key => $value) {
$real[$key] = str_replace('https', 'http', $value->url);
}
function downFile($url,$flname,$path){
// echo $url;
$arr=parse_url($url);
$fileName = $flname;
$file=file_get_contents($url);
file_put_contents($path.$fileName,$file);
}
$console = '';
$count = count($real);
foreach ($real as $key => $value) {
downFile($value,$key.'.jpg','D:\\phpStudy\\PHPTutorial\\test\\down\\');
$console .= $key.'|';
}
echo $console;
echo '下载完成!<br/>';
echo "正在合成……";
?>

然后图片按照顺序合成PPT的话,很多软件都可以实现,这边给出两种方式:

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×