linux合并bilibili下载的blv视频
B站下载的学习视频,用python+sh合并处理,自己mark一下
手机bilibili下载了视频,想要搞到电脑上看,结果发现下载下来的都是文件夹里的一堆片段,仔细一看还是 .blv,脑那样啊! 在虚拟机里边用win的客户端试着下载了一个视频,发现是 .flv,看着好像,结果就是。
blv修改成flv就可以了,它就是flv格式的。遇到的主要为问题就是文件名最好不要有空格,linux下空格文件名处理容易出问题。还有os.chdir()是否一定需要绝对路径没有研究,刚开始写的是相对路径,结果有问题
为了排除问题修改为绝对路径,但是相对路径好像也可以,当然绝对路径可定不会出问题。
#!/usr/bin/env python
# coding=utf-8 import os
import sys
import json
import os.path def get_video_name(d):
''' b站下载的视频都分割成小片段放在文件夹里,第一层文件夹中有entry.json文件,记录了视频名称 '''
if os.path.exists('entry.json'):
with open('entry.json', 'r') as f:
data = json.load(f)
return data['page_data']['part'] def merge_flv(d, video_name, output_path):
try:
os.chdir(list(os.walk(d))[1][0])
os.system("bash ~/Desktop/temp/merge.sh %s %s" % (video_name.replace(' ', '_'), output_path))
os.chdir(os.pardir)
except Exception as e:
print("%s Bash脚本执行失败!\n" % (base_path + '/' + d), e) def get_all_videos(base_path, output_path):
dirs = os.listdir(base_path)
for d in dirs:
try:
os.chdir(base_path + '/' + d)
video_name = get_video_name(d)
merge_flv(base_path + '/' + d, video_name, output_path)
except Exception as e:
print("%s不是文件夹或者无权限进入!\n" % (base_path + '/' + d), e) if __name__ == "__main__":
''' 如果没有在脚本中指定路径,可以在脚本参加中指定,参数1:根目录,参数2:输入路径 '''
base_path = ""
output_path = ""
if not base_path: base_path = sys.argv[1]
if not output_path: output_path = sys.argv[2]
get_all_videos(base_path, output_path)
合并处理用的是linux下的ffmpeg工具,参考的(照抄这里的:http://www.songyawei.cn/content/4015)
#!/bin/bash # 设定脚本需要传入两个参数,第一个是合并的视频名,第二个是合并的视频存放路径
# 修改后缀blv为flv
rename .blv .flv *.blv &&\ # bash获取当前目录下的所有flv文件
for f in *.flv; do echo "file $f" >> mylist.txt; done # 合并flv文件
ffmpeg -f concat -i mylist.txt -c copy "$1.flv" &&\ # 经合并生成的文件移动到指定的文件夹
mv "$1.flv" $2
linux合并bilibili下载的blv视频的更多相关文章
- python3自动下载优酷视频小程序
我们一般都在优酷里看一些好玩的视频,有时候看到精彩的就想下载到本地保存起来留作纪念,在win下可以用维棠等软件下载,但苦了用linux的孩子们.尽管chrome和firefox的一些插件可以下载,但有 ...
- Python 爬虫实例(13) 下载 m3u8 格式视频
Python requests 下载 m3u8 格式 视频 最近爬取一个视频网站,遇到 m3u8 格式的视频需要下载. 抓包分析,视频文件是多个 ts 文件,什么是 ts文件,请去百度 ...
- 老司机图文教程教你如何免费下载腾讯视频的视频mp4(直接下载到,不用qlv格式转mp4格式,亲测)
关于如何下载到腾讯视频的mp4这个问题,大家想必经过多翻搜索,都未必找到满意的答案吧. 下载微信公众号文章中引用的腾讯视频的方法也是一样适用本方法. 因为用腾讯视电脑客户端和手机APP下载到的都是QL ...
- 怎样下载YouTube 4K视频
随着科技的进步,人们生活水平的提高,视频的清晰度也越来越高,以前那个观看模糊视频的时代已经一去不复返了.从最开始的720P和1080P高清视频,再到2K,进而到如今的4K(即3840×2160)极清视 ...
- 使用终端批量下载 B 站视频
需要使用一个叫做 you-get 的命令行程序 可以通过 Homebrew 安装(macOS), 安装命令为 brew install you-get, 其他平台的安装可参考 Github 主页: s ...
- you-get下载B站视频
you-get下载B站视频 库存 you-get介绍 https://github.com/soimort/you-get you-get是一个命令行工具,可以下载知名网站的视频 支持的网站有 ht ...
- 使用js脚本批量下载慕课网视频
慕课网(http://www.imooc.com/)上有很多不错的视频,当然我不是来给慕课网打广告的,我本人学习过很多慕课网上的免费的视频. 在线看如果网速慢时,可能会有卡顿,没网时无法观看.所有说下 ...
- Linux合并文件、去除重复行的命令
Linux合并文件命令: awk '{printf("%s\n",$0)}' YQ-*101?.txt > 123.txt linux去除重复行命令:cat YQ-10 ...
- Linux下校验下载文件的完整性(MD5,SHA1,PGP)
查看: Linux下校验下载文件的完整性(MD5,SHA1,PGP) http://blog.useasp.net/archive/2014/03/29/use-md5-sha1-or-pgp-to- ...
- 下载的youtube视频
youtube 视频下载方法[详解] 1.打开网址: http://kej.tw/flvretriever/. 2.输入要下载的youtube视频的网址. 3.点击右侧RETRIEVE NOW ! ...
随机推荐
- 0x06_自制操作系统My-OS,IDT,GDT,PIC初始化,实现键盘中断
把class03改成class04 IDT,GDT,PIC 我来介绍什么是IDT和GDT,PIC,怎么实现键盘中断 GDT全局描述表在16位CPU用不到,到了32位CPU要用. 16位CPU实模式用基 ...
- Cesium CallbackProperty(十五)
Cesium中的entities可以随时间变化长度高度,主要依赖于CallbackProperty函数. 因为使用CallbackProperty,cesium中一切可视化的要素都可以与时间联系起来. ...
- Spring AOP 报错:Error creating bean with name 'student' defined in file
问题概述 Spring AOP 报错,一直显示:Error creating bean with name 'student' defined in file 的报错.从五个方向排查:第一,aspec ...
- day06-动态SQL语句
动态SQL语句 1.基本介绍 官方文档 mybatis – MyBatis 3 | 动态 SQL 为什么需要动态SQL? 动态SQL是MyBatis的强大特性之一 使用 JDBC 或其他类似的框架,根 ...
- Vue学习笔记之计算属性、内容分发、自定义事件
1. 计算属性 计算属性的重点突出在属性两个字上(属性是名词),首先它是个属性其次这个属性有计算的能力(计算是动词),这里的计算就是个函数:简单点说,它就是一个能够将计算结果缓存起来的属性(将行为转化 ...
- LeetCode-442 数组中重复的数据
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/find-all-duplicates-in-an-array 题目描述 给你一个长度为 n 的整 ...
- Spring的注入方式
Spring的注入方式 目录 Spring的注入方式 一.前言 二.常见的三种注入方式 2.1.Field注入 2.2 构造器注入 2.3 setter注入 三.构造器注入的好处 四.答疑 一.前言 ...
- the default discovery settings are unsuitable for production use at least one of...的解决办法
解决办法 elasticsearch.yml加上 discovery.type: single-node
- IT之软件公司组织架构
总结一下软件企业的组织架构,软件公司大部分都很年轻,整个行业还在调整期,一般规模都在300人以内,现在国内大型的软件产品公司都不是靠软件起家的,国内软件三强:华为.中信.海尔都是从硬件甚至是家电做起的 ...
- Python安装第三库超时的解决方法
Python安装第三库超时的解决方法 1. 在很多时候使用python的时候需要使用到某些第三方库,比较常规的方法是使用cmd命令使用在线安装的方法(前提是在安装好了python相应版本时候配置好了相 ...