import time from LoggerUtils import Logger, initLogger from bs4 import BeautifulSoup as bs from urllib.request import urlopen, Request import json import Contant from sqlalchemy import create_engine from entity.DownloadInfoEntity import DownloadInfo from service.DownloadInfoService import DownloadInfoService from common.YoutubeUtils import YouTubeUtil from common.DownloadUtils import DownloadUtil import operator import argparse if __name__ == "__main__": # 读取配置文件 with open('download_video_config.json', 'r', encoding='utf-8') as f: # 使用json.load()方法读取文件内容 data = json.load(f) # 初始化日志 Contant.logDir = data['log']['dir'] Contant.logFileName = data['log']['fileName'] initLogger(Contant.logDir, Contant.logFileName) # 连接mysql dbHost = data['mysql']['host'] dbPort = data['mysql']['port'] dbUserName = data['mysql']['username'] dbPassword = data['mysql']['password'] dbDatabase = data['mysql']['database'] Logger.info("尝试连接mysql host:'{}' port:'{}' username:'{}' password:'{}' database:'{}'", dbHost, dbPort, dbUserName, dbPassword, dbDatabase) Contant.engin = create_engine( f'mysql+mysqlconnector://{dbUserName}:{dbPassword}@{dbHost}:{dbPort}/{dbDatabase}') Logger.info("连接mysql成功") # 获取一个未下载的video downloadRootPath = data['download_root_path'] if downloadRootPath == "" or downloadRootPath == None: Logger.error("downloadRootPath配置错误...") exit Logger.info(f"downloadRootPaht: '{downloadRootPath}'") downloadInfo: DownloadInfo = DownloadInfoService.getOneNoFinish() if downloadInfo != None: Logger.info("开始下载videoId:{}".format(downloadInfo.videoId)) # 下载字幕文件或音频文件 DownloadUtil.downloadOne(downloadInfo.videoId, downloadRootPath) # 重新获取下一个下载任务 downloadInfo: DownloadInfo = DownloadInfoService.getOneNoFinish() else: Logger.info("完成下载")