B站下载BBDown

cat 1.txt|grep -A2 pubDate|grep -EA1 "$DT|$DT1"|grep http|awk -F '>|<' '{print $3}'

加入RSS

  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
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
#!/bin/bash
#1.将此脚本和BBDown放置同个目录
#2.同级目录创建"url.md"文件,填写B站URL地址(脚本自动读取最近10分钟内更新,读取后清空md文件)
#3.下载过的链接不再下载

#URL
URL_FILE=url.md
RSS_FILE=rss.md
#确认此目录是否存在!!!
VIDEO_DIR=/volume1/Download/B-site

#RSS地址
RSS=http://192.168.68.253:1200/bilibili/user/video/104412440
#################################################
echo >> $URL_FILE

#日期
DATE=`date +%F`

#SH
SHPATH=`readlink -f $0`
SHDIR=`dirname $SHPATH`

#DIR
LOG_DIR=$SHDIR/LOG
mkdir -p $LOG_DIR

#获取RSS两天内链接
DT=`date +'%d %b %Y'`
DT1=`date -d "1 day ago" +'%d %b %Y'`

curl $RSS >$LOG_DIR/rss.txt 
cat  $LOG_DIR/rss.txt |grep -A2 pubDate|grep -EA1 "$DT|$DT1"|grep http|awk -F '>|<' '{print $3}' >$SHDIR/$RSS_FILE

#当前下载地址文件
DOWN=$LOG_DIR/download.txt
#log
BBLOG=$LOG_DIR/BB.log
#历史下载存档
DOWN_LOG=$LOG_DIR/download_history.log

#合并下载链接到DOWN
#获取10分钟内更新的md文件
find $SHDIR -maxdepth 1 -type f -mmin -10 -name "*.md"|xargs -i cat {} >$DOWN

##############
echo ====================================================================================================
echo "下载地址"
cat $DOWN
echo ====================================================================================================






#开始执行下载
NUM=`cat $DOWN|wc -l`
for i in `seq $NUM`
do
#下载
echo "=======================================================">> $BBLOG
#对比下载链接是否下载过
    HTTP=`sed -n "$i"p $DOWN`
    cat $DOWN_LOG|grep "$HTTP" >/dev/null
    if [ $? -eq 0 ];then
    echo "存在地址:$HTTP,跳过下载。"
    else
    echo "开始下载:$HTTP"
    #下载
    cd $SHDIR
    ./BBDown "$HTTP" |tee -a $BBLOG
    #下载完成导入到下载日志
    echo "$HTTP" >> $DOWN_LOG 
    fi
done

###mp4移动到VIDEO_DIR 
NEW_FILE=`find $SHDIR  -type f  -name "*.mp4"`
if [ ! -z "$NEW_FILE" ];then
    for i in `echo $NEW_FILE`
    do
    #获取文件名
    MP4_NAME=`basename $i`
    #移动
    mv "$i" $VIDEO_DIR/$DATE.$MP4_NAME
    done
fi





#删除新生成的文件夹
NEW_DIR=`find $SHDIR -maxdepth 1 -type d -newer $LOG_DIR|grep -v $SHDIR$`
if [ ! -z $NEW_DIR ];then
    for i in `echo $NEW_DIR`
    do
    rm -rf "$i"
    done
fi



#清空手工url
> $SHDIR/$URL_FILE
 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
35
36
37
38
#!/bin/bash
#1.将此脚本和BBDown放置同个目录
#2.同级目录创建"url.md"文件,填写B站URL地址(脚本自动读取最近10分钟内更新,读取后清空md文件)

#URL
URL_FILE=url.md

#确认此目录是否存在!!!
VIDEO_DIR=/volume1/Download/B-site
#################################################
#SH
SHPATH=`readlink -f $0`
SHDIR=`dirname $SHPATH`

#log
BBLOG=$SHDIR/BB.log

#获取10分钟内更新的文件名
ONLINE=`find $SHDIR -type f -mmin -10 -name "$URL_FILE"`
#判断是否为空
if [ -z "$ONLINE" ];then exit;fi

#开始执行下载
echo $>>ONLINE
cd $SHDIR
NUM=`cat $ONLINE|wc -l`
for i in `seq $NUM`
do
#下载
echo "=======================================================">> $BBLOG
sed -n "$i"p $ONLINE` >> $BBLOG
./BBDown `sed -n "$i"p $ONLINE` >> $BBLOG
#移动mp4
find $SHDIR -maxdepth 1 -type f -name "*.mp4" |xargs -i mv {} $VIDEO_DIR  
done

#清空
> $ONLINE