python 에서 빌 리 빌 리 를 대량으로 합성 한 m4s 캐 시 파일 은 MP4 형식 ver 2.5 입 니 다.
※내 보 낸 동 영상 은 UP 주 분류 에 따라 저 장 됩 니 다.
※제목 형식 추가
메모:ffmpeg 를 설치 해 야 사용 할 수 있 습 니 다.
ffmpeg 다운로드 주소:https://ffmpeg.zeranoe.com/builds/
ffmpeg 설치 방법:
다운 로드 된 압축 패 키 지 를 풀 고 빈 디 렉 터 리 를 Path 환경 변수 에 추가 하고 Win+R 을 누 르 면 cmd 를 입력 하여 팝 업 상자 에 ffmpeg 를 입력 합 니 다.'내부 나 외부 명령 도 아 닙 니 다'같은 것 이 나타 나 지 않 으 면 설치 에 성공 한 것 입 니 다.
참조 링크:https://www.jb51.net/article/153806.htm
캡 처 실행
도구 원본 코드
import os
import json
import random
import time
import requests
#
def clearSpace(str):
return str.replace(" ", "").replace(" ", "");
# Uid Up
def getUpNameByUid(uid):
try:
url = 'https://space.bilibili.com/' + str(uid)
html = requests.get(url)
html.encoding = 'UTF-8'
html = html.text
index1 = html.find("<title>") + len("<title>")
index2 = html.find(" ", index1)
result = html[index1:index2]
if (result != ""):
return result
else:
return uid
except Exception:
return uid
#
def getTimeStamp():
t = time.localtime(time.time())
return str(t.tm_year) + '_' + str(t.tm_mon) + '_' + str(t.tm_mday) + '_' + str(t.tm_hour) + \
str(t.tm_min) + str(t.tm_sec) + str(random.randint(10, 99))
#
def correctFileName(name):
n_list = list(name)
for i in range(0, len(n_list)):
index = 0
for i in n_list:
if (
i == '\\' or i == '/' or i == ':' or i == '*' or i == '?' or i == '\"' or i == '<' or i == '>' or i == '|'):
n_list.pop(index)
index = index + 1
return ''.join(n_list)
# json
def getVideoName(path):
f = open(path, encoding='utf-8')
setting = json.load(f)
try:
result = setting['page_data']['download_subtitle'] #
except KeyError:
try:
result = setting['title'] + ' ' + setting['ep']['index'] + ' ' + setting['ep']['index_title']
except KeyError:
try:
result = setting['title']
except KeyError:
result = getTimeStamp()
return result
def getVideoOwner(path):
try:
f = open(path, encoding='utf-8')
setting = json.load(f)
return clearSpace(getUpNameByUid(setting['owner_id']))
except Exception:
return ""
#
def getFileList(file_dir):
#
title = []
owner = []
videoPath = []
audioPath = []
#
for root, dirs, files in os.walk(file_dir):
if ('entry.json' in files):
title.append(getVideoName(str(root) + '\\entry.json'))
owner.append(getVideoOwner(str(root) + '\\entry.json'))
if ('video.m4s' in files and 'audio.m4s' in files):
videoPath.append(str(root) + '\\video.m4s')
audioPath.append(str(root) + '\\audio.m4s')
if (len(title) < len(videoPath)):
title.append(getTimeStamp())
if ('0.blv' in files):
title.pop()
return [title, owner, videoPath, audioPath]
# mp4
def getMP4(title, owner, video_path, audio_path):
#
if not os.path.exists("./output"):
os.mkdir("./output")
# MP4
for i in title:
reName = correctFileName(i)
# MP4
if not os.path.exists("./output/" + reName + ".mp4"):
#
t_stamp = getTimeStamp()
#
os.system(
"ffmpeg -i " + video_path[title.index(i)] + " -i " + audio_path[
title.index(i)] + " -codec copy ./output/" + t_stamp + ".mp4")
# Up
curOwner = owner[title.index(i)]
if curOwner != "":
if not os.path.exists("./output/" + curOwner):
os.mkdir("./output/" + curOwner)
os.rename("./output/" + t_stamp + ".mp4", "./output/" + curOwner + "/" + reName + ".mp4")
else:
#
os.rename("./output/" + t_stamp + ".mp4", "./output/" + reName + ".mp4")
print(" ...")
print(" :" + reName)
print("UP :" + curOwner)
print(" :" + video_path[title.index(i)])
print(" :" + audio_path[title.index(i)])
time.sleep(1)
print(" M4S ver2.5")
fileDir = str(input(" M4S :"))
f = getFileList(fileDir)
getMP4(f[0], f[1], f[2], f[3])
print(" ")
컴 파일 된 실행 가능 한 파일(EXE):링크:https://pan.baidu.com/s/1bLOg6GGJ5Wp7gcW73sXzvg
추출 코드:yqvm
python 대량 합성 bilibili 의 m4s 캐 시 파일 이 MP4 형식 ver 2.5 라 는 글 을 소개 합 니 다.더 많은 python 대량 합성 bilibili 캐 시 파일 내용 은 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.