QYN2

#!/bin/bash

# 自动下载电视剧,支持按集断点下载,正在追的电视剧添加到计划任务每天定期执行一次即可
# 庆余年在线网站:    https://www.jjwu.net/vodplay/46471_5_1.html
# 使用Ubuntu系统,需要安装的工具
# apt-get install -y parallel wget ffmpeg

# 创建存放视频和缓存的目录
mkdir -p mp4/cache

# 
for x in `seq -w $(ls mp4 | wc -l) 36 `
do
    # 打印正在处理的剧集
    echo -e "第 $x 集"
    # 清空缓存目录
    rm -rf mp4/cache/*
    # 从m3u8文件中除去广告ts,获取电视剧ts,并生成ts文件的url保存到file.list
    curl -s "https://s3.bfengbf.com/video/qingyuniandierji/第$x集/index.m3u8" \
        | awk '/^000.*ts$/{print "https://s3.bfengbf.com/video/qingyuniandierji/第'$x'集/"$1}' \
        > mp4/cache/file.list
    # 如果这一集还没更新,那么file.list文件中不存在ts文件的url,退出脚本
    cat mp4/cache/file.list | grep '^http.*ts$' &>/dev/null || exit
    # 100并发下载ts文件
    parallel -j 30 -a mp4/cache/file.list wget --timeout=30 -nv -P mp4/cache

    while [ -s mp4/cache/file.list ]    
    do
        for y in `ls mp4/cache/`
        do
            sed -i "/$y/d" mp4/cache/file.list
        done

        for z in `cat mp4/cache/file.list`
        do
            wget -c --timeout=30 --tries=10 -nv -P mp4/cache $z
        done
    done
    # 合并ts文件
    for j in `ls mp4/cache`
    do
        cat mp4/cache/$j >> mp4/cache/input.ts
    done
    # 将ts文件转换成mp4文件
    ffmpeg -n -loglevel quiet -i mp4/cache/input.ts -vcodec copy -acodec copy -absf aac_adtstoasc mp4/$x.mp4

done

 

直接生成 m3u8 文件的方法,有个小bug,自己找吧

#!/bin/bash

# 第一版:去掉菠菜广告
fun_1(){
    for i in `seq -w 36`
    do
        curl -s "https://s3.bfengbf.com/video/qingyuniandierji/第$i集/index.m3u8" \
            | sed -e "s@^000@https://s3.bfengbf.com/video/qingyuniandierji/第$i集/000@" \
                -e '/adjump/d' \
            > $i.m3u8
    done
}

# 第二版:与更新同步,没有更新的剧集不会生成 m3u8 文件
fun_2(){
    for i in `seq -w 36`
    do
        curl -s "https://s3.bfengbf.com/video/qingyuniandierji/第$i集/index.m3u8" > $i.m3u8
        cat $i.m3u8 | grep '^000.*ts$' &>/dev/null || break
        sed -i  -e '/adjump/d' \
            -e "s@^000@https://s3.bfengbf.com/video/qingyuniandierji/第$i集/000@" \
            $i.m3u8
    done
    rm -rf $i.m3u8
}

# 第三版:前面已经处理过的剧集,不再重复处理
fun_3(){
    for i in `seq -w $(ls *.m3u8 | wc -l) 36`
    do
        curl -s "https://s3.bfengbf.com/video/qingyuniandierji/第$i集/index.m3u8" > $i.m3u8
        cat $i.m3u8 | grep '^000.*ts$' &>/dev/null || break
        sed -i  -e '/adjump/d' \
            -e "s@^000@https://s3.bfengbf.com/video/qingyuniandierji/第$i集/000@" \
            $i.m3u8
    done
    rm -rf $i.m3u8
}

#fun_1
#fun_2
fun_3

 

直接生成 m3u8 文件的方法,有个小bug(bug最简单的修复方法)

#!/bin/bash

# 第一版:去掉菠菜广告
fun_1(){
    for i in `seq -w 36`
    do
        curl -s "https://s3.bfengbf.com/video/qingyuniandierji/第$i集/index.m3u8" \
            | sed -e "s@^000@https://s3.bfengbf.com/video/qingyuniandierji/第$i集/000@" \
                -e '/adjump/d' \
            > $i.m3u8
    done
}

# 第二版:与更新同步,没有更新的剧集不会生成 m3u8 文件
fun_2(){
    for i in `seq -w 36`
    do
        curl -s "https://s3.bfengbf.com/video/qingyuniandierji/第$i集/index.m3u8" > $i.m3u8
        cat $i.m3u8 | grep '^000.*ts$' &>/dev/null || break
        sed -i  -e '/adjump/d' \
            -e "s@^000@https://s3.bfengbf.com/video/qingyuniandierji/第$i集/000@" \
            $i.m3u8
    done
    rm -rf $i.m3u8
}

# 第三版:前面已经处理过的剧集,不再重复处理
fun_3(){
    for i in `seq -w $(ls *.m3u8 | wc -l) 36`
    do
        curl -s "https://s3.bfengbf.com/video/qingyuniandierji/第$i集/index.m3u8" > $i.m3u8
        cat $i.m3u8 | grep '^000.*ts$' &>/dev/null || break
        sed -i  -e '/adjump/d' \
            -e "s@^000@https://s3.bfengbf.com/video/qingyuniandierji/第$i集/000@" \
            $i.m3u8
    done
    rm -rf $i.m3u8
}

# 第四版:解决最后一集下载后被误删的情况
fun_4(){
    for i in `seq -w $(ls *.m3u8 | wc -l) 37`
    do
        curl -s "https://s3.bfengbf.com/video/qingyuniandierji/第$i集/index.m3u8" > $i.m3u8
        cat $i.m3u8 | grep '^000.*ts$' &>/dev/null || break
        sed -i  -e '/adjump/d' \
            -e "s@^000@https://s3.bfengbf.com/video/qingyuniandierji/第$i集/000@" \
            $i.m3u8
    done
    rm -rf $i.m3u8
}

#fun_1
#fun_2
#fun_3
fun_4

 

posted @ 2024-05-19 03:14  三角形  阅读(567)  评论(0编辑  收藏  举报