|
@@ -316,133 +316,143 @@ class KuaiShou:
|
|
|
测试环境:env == dev
|
|
|
正式环境:env == prod
|
|
|
"""
|
|
|
+ try:
|
|
|
+ for i in range(1, len(Feishu.get_values_batch("Zt2PGQ")) + 1):
|
|
|
+ time.sleep(1)
|
|
|
+ download_photo_id = Feishu.get_values_batch("Zt2PGQ")[i][2]
|
|
|
+ download_video_title = Feishu.get_values_batch("Zt2PGQ")[i][3]
|
|
|
+ download_video_play_cnt = Feishu.get_values_batch("Zt2PGQ")[i][4]
|
|
|
+ download_video_comment_cnt = Feishu.get_values_batch("Zt2PGQ")[i][5]
|
|
|
+ download_video_like_cnt = Feishu.get_values_batch("Zt2PGQ")[i][6]
|
|
|
+ download_video_share_cnt = Feishu.get_values_batch("Zt2PGQ")[i][7]
|
|
|
+ download_video_duration = Feishu.get_values_batch("Zt2PGQ")[i][8]
|
|
|
+ download_video_resolution = Feishu.get_values_batch("Zt2PGQ")[i][9]
|
|
|
+ download_video_width = download_video_resolution.split("*")[0]
|
|
|
+ download_video_height = download_video_resolution.split("*")[-1]
|
|
|
+ download_video_send_time = Feishu.get_values_batch("Zt2PGQ")[i][10]
|
|
|
+ download_user_name = Feishu.get_values_batch("Zt2PGQ")[i][11]
|
|
|
+ download_user_id = Feishu.get_values_batch("Zt2PGQ")[i][12]
|
|
|
+ download_head_url = Feishu.get_values_batch("Zt2PGQ")[i][13][0]["link"]
|
|
|
+ download_cover_url = Feishu.get_values_batch("Zt2PGQ")[i][14][0]["link"]
|
|
|
+ download_video_url = Feishu.get_values_batch("Zt2PGQ")[i][15][0]["link"]
|
|
|
+
|
|
|
+ # Common.logger().info("download_photo_id:{}", download_photo_id)
|
|
|
+ # Common.logger().info("download_video_title:{}", download_video_title)
|
|
|
+ # Common.logger().info("download_video_play_cnt:{}", download_video_play_cnt)
|
|
|
+ # Common.logger().info("download_video_comment_cnt:{}", download_video_comment_cnt)
|
|
|
+ # Common.logger().info("download_video_like_cnt:{}", download_video_like_cnt)
|
|
|
+ # Common.logger().info("download_video_share_cnt:{}", download_video_share_cnt)
|
|
|
+ # Common.logger().info("download_video_duration:{}", download_video_duration)
|
|
|
+ # Common.logger().info("download_video_resolution:{}", download_video_resolution)
|
|
|
+ # Common.logger().info("download_video_send_time:{}", download_video_send_time)
|
|
|
+ # Common.logger().info("download_user_name:{}", download_user_name)
|
|
|
+ # Common.logger().info("download_user_id:{}", download_user_id)
|
|
|
+ # Common.logger().info("download_head_url:{}", download_head_url)
|
|
|
+ # Common.logger().info("download_cover_url:{}", download_cover_url)
|
|
|
+ # Common.logger().info("download_video_url:{}", download_video_url)
|
|
|
+
|
|
|
+ Common.logger().info("正在判断第{}行,视频:{}", i, download_video_title)
|
|
|
+
|
|
|
+ # 过滤空行
|
|
|
+ if download_photo_id is None or download_video_title is None or download_video_play_cnt is None:
|
|
|
+ Common.logger().warning("空行,略过")
|
|
|
+ # 去重
|
|
|
+ elif download_photo_id in [j for m in Feishu.get_values_batch("3b207c") for j in m]:
|
|
|
+ Common.logger().info("该视频已下载:{}", download_video_title)
|
|
|
+ # 删除行或列,可选 ROWS、COLUMNS
|
|
|
+ time.sleep(1)
|
|
|
+ Feishu.dimension_range("Zt2PGQ", "ROWS", i + 1, i + 1)
|
|
|
+ return
|
|
|
+ # 下载规则
|
|
|
+ elif cls.kuaishou_download_rule(
|
|
|
+ download_video_duration, download_video_width, download_video_height,
|
|
|
+ download_video_play_cnt, download_video_like_cnt, download_video_share_cnt) is True:
|
|
|
+ Common.logger().info("开始下载快手视频:{}".format(download_video_title))
|
|
|
+
|
|
|
+ # 下载封面
|
|
|
+ Common.download_method(text="cover",
|
|
|
+ d_name=str(download_video_title), d_url=str(download_cover_url))
|
|
|
+ # 下载视频
|
|
|
+ Common.download_method(text="video",
|
|
|
+ d_name=str(download_video_title), d_url=str(download_video_url))
|
|
|
+ # 保存视频信息至 "./videos/{download_video_title}/info.txt"
|
|
|
+ with open("./videos/" + download_video_title
|
|
|
+ + "/" + "info.txt", "a", encoding="UTF-8") as f_a:
|
|
|
+ f_a.write(str(download_photo_id) + "\n" +
|
|
|
+ str(download_video_title) + "\n" +
|
|
|
+ str(download_video_duration) + "\n" +
|
|
|
+ str(download_video_play_cnt) + "\n" +
|
|
|
+ str(download_video_comment_cnt) + "\n" +
|
|
|
+ str(download_video_like_cnt) + "\n" +
|
|
|
+ str(download_video_share_cnt) + "\n" +
|
|
|
+ str(download_video_resolution) + "\n" +
|
|
|
+ str(int(time.mktime(
|
|
|
+ time.strptime(download_video_send_time, "%Y/%m/%d %H:%M:%S")))) + "\n" +
|
|
|
+ str(download_user_name) + "\n" +
|
|
|
+ str(download_head_url) + "\n" +
|
|
|
+ str(download_video_url) + "\n" +
|
|
|
+ str(download_cover_url) + "\n" +
|
|
|
+ str(cls.did))
|
|
|
+ Common.logger().info("==========视频信息已保存至info.txt==========")
|
|
|
+
|
|
|
+ # 添加视频 ID 到 list,用于统计当次下载总数
|
|
|
+ cls.download_video_list.append(download_photo_id)
|
|
|
+
|
|
|
+ # 上传视频
|
|
|
+ Common.logger().info("开始上传视频:{}".format(download_video_title))
|
|
|
+ Publish.upload_and_publish(env, "play")
|
|
|
+
|
|
|
+ # 保存视频 ID 到云文档:https://w42nne6hzg.feishu.cn/sheets/shtcnp4SaJt37q6OOOrYzPMjQkg?sheet=3b207c
|
|
|
+ Common.logger().info("保存视频ID至云文档:{}", download_video_title)
|
|
|
+ # 视频ID工作表,插入首行
|
|
|
+ Feishu.insert_columns("3b207c", "ROWS", 1, 2)
|
|
|
+ # 视频ID工作表,首行写入数据
|
|
|
+ upload_time = int(time.time())
|
|
|
+ values = [[str(time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(upload_time))),
|
|
|
+ "推荐榜",
|
|
|
+ str(download_photo_id),
|
|
|
+ str(download_video_title),
|
|
|
+ str(download_video_play_cnt),
|
|
|
+ str(download_video_comment_cnt),
|
|
|
+ str(download_video_like_cnt),
|
|
|
+ str(download_video_share_cnt),
|
|
|
+ str(download_video_duration),
|
|
|
+ str(download_video_resolution),
|
|
|
+ str(download_video_send_time),
|
|
|
+ str(download_user_name),
|
|
|
+ str(download_user_id),
|
|
|
+ str(download_head_url),
|
|
|
+ str(download_cover_url),
|
|
|
+ str(download_video_url)]]
|
|
|
+ time.sleep(1)
|
|
|
+ Feishu.update_values("3b207c", "A2:Q2", values)
|
|
|
+
|
|
|
+ # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=Zt2PGQ
|
|
|
+ Common.logger().info("从云文档删除该视频信息:{}", download_video_title)
|
|
|
+ # 删除行或列,可选 ROWS、COLUMNS
|
|
|
+ time.sleep(1)
|
|
|
+ Feishu.dimension_range("Zt2PGQ", "ROWS", i + 1, i + 1)
|
|
|
+ return
|
|
|
+ else:
|
|
|
+ # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=Zt2PGQ
|
|
|
+ Common.logger().info("该视频不满足下载规则,删除在云文档中的信息:{}", download_video_title)
|
|
|
+ # 删除行或列,可选 ROWS、COLUMNS
|
|
|
+ Feishu.dimension_range("Zt2PGQ", "ROWS", i + 1, i + 1)
|
|
|
+ return
|
|
|
+ except Exception as e:
|
|
|
+ Common.logger().error("视频 info 异常,删除该视频信息", e)
|
|
|
+ # 删除行或列,可选 ROWS、COLUMNS
|
|
|
+ Feishu.dimension_range("Zt2PGQ", "ROWS", i + 1, i + 1)
|
|
|
+ return
|
|
|
+
|
|
|
+ # 执行上传及下载
|
|
|
+ @classmethod
|
|
|
+ def run_download_publish(cls):
|
|
|
try:
|
|
|
if len(Feishu.get_values_batch("Zt2PGQ")) == 1:
|
|
|
pass
|
|
|
else:
|
|
|
- for i in range(1, len(Feishu.get_values_batch("Zt2PGQ")) + 1):
|
|
|
- time.sleep(1)
|
|
|
- try:
|
|
|
- download_photo_id = Feishu.get_values_batch("Zt2PGQ")[i][2]
|
|
|
- download_video_title = Feishu.get_values_batch("Zt2PGQ")[i][3]
|
|
|
- download_video_play_cnt = Feishu.get_values_batch("Zt2PGQ")[i][4]
|
|
|
- download_video_comment_cnt = Feishu.get_values_batch("Zt2PGQ")[i][5]
|
|
|
- download_video_like_cnt = Feishu.get_values_batch("Zt2PGQ")[i][6]
|
|
|
- download_video_share_cnt = Feishu.get_values_batch("Zt2PGQ")[i][7]
|
|
|
- download_video_duration = Feishu.get_values_batch("Zt2PGQ")[i][8]
|
|
|
- download_video_resolution = Feishu.get_values_batch("Zt2PGQ")[i][9]
|
|
|
- download_video_width = download_video_resolution.split("*")[0]
|
|
|
- download_video_height = download_video_resolution.split("*")[-1]
|
|
|
- download_video_send_time = Feishu.get_values_batch("Zt2PGQ")[i][10]
|
|
|
- download_user_name = Feishu.get_values_batch("Zt2PGQ")[i][11]
|
|
|
- download_user_id = Feishu.get_values_batch("Zt2PGQ")[i][12]
|
|
|
- download_head_url = Feishu.get_values_batch("Zt2PGQ")[i][13][0]["link"]
|
|
|
- download_cover_url = Feishu.get_values_batch("Zt2PGQ")[i][14][0]["link"]
|
|
|
- download_video_url = Feishu.get_values_batch("Zt2PGQ")[i][15][0]["link"]
|
|
|
-
|
|
|
- # Common.logger().info("download_photo_id:{}", download_photo_id)
|
|
|
- # Common.logger().info("download_video_title:{}", download_video_title)
|
|
|
- # Common.logger().info("download_video_play_cnt:{}", download_video_play_cnt)
|
|
|
- # Common.logger().info("download_video_comment_cnt:{}", download_video_comment_cnt)
|
|
|
- # Common.logger().info("download_video_like_cnt:{}", download_video_like_cnt)
|
|
|
- # Common.logger().info("download_video_share_cnt:{}", download_video_share_cnt)
|
|
|
- # Common.logger().info("download_video_duration:{}", download_video_duration)
|
|
|
- # Common.logger().info("download_video_resolution:{}", download_video_resolution)
|
|
|
- # Common.logger().info("download_video_send_time:{}", download_video_send_time)
|
|
|
- # Common.logger().info("download_user_name:{}", download_user_name)
|
|
|
- # Common.logger().info("download_user_id:{}", download_user_id)
|
|
|
- # Common.logger().info("download_head_url:{}", download_head_url)
|
|
|
- # Common.logger().info("download_cover_url:{}", download_cover_url)
|
|
|
- # Common.logger().info("download_video_url:{}", download_video_url)
|
|
|
-
|
|
|
- Common.logger().info("正在判断第{}行,视频:{}", i, download_video_title)
|
|
|
-
|
|
|
- # 过滤空行
|
|
|
- if download_photo_id is None or download_video_title is None or download_video_play_cnt is None:
|
|
|
- Common.logger().warning("空行,略过")
|
|
|
- # 去重
|
|
|
- elif download_photo_id in [j for m in Feishu.get_values_batch("3b207c") for j in m]:
|
|
|
- Common.logger().info("该视频已下载:{}", download_video_title)
|
|
|
- # 下载规则
|
|
|
- elif cls.kuaishou_download_rule(
|
|
|
- download_video_duration, download_video_width, download_video_height,
|
|
|
- download_video_play_cnt, download_video_like_cnt, download_video_share_cnt) is True:
|
|
|
- Common.logger().info("开始下载快手视频:{}".format(download_video_title))
|
|
|
-
|
|
|
- # 下载封面
|
|
|
- Common.download_method(text="cover",
|
|
|
- d_name=str(download_video_title), d_url=str(download_cover_url))
|
|
|
- # 下载视频
|
|
|
- Common.download_method(text="video",
|
|
|
- d_name=str(download_video_title), d_url=str(download_video_url))
|
|
|
- # 保存视频信息至 "./videos/{download_video_title}/info.txt"
|
|
|
- with open("./videos/" + download_video_title
|
|
|
- + "/" + "info.txt", "a", encoding="UTF-8") as f_a:
|
|
|
- f_a.write(str(download_photo_id) + "\n" +
|
|
|
- str(download_video_title) + "\n" +
|
|
|
- str(download_video_duration) + "\n" +
|
|
|
- str(download_video_play_cnt) + "\n" +
|
|
|
- str(download_video_comment_cnt) + "\n" +
|
|
|
- str(download_video_like_cnt) + "\n" +
|
|
|
- str(download_video_share_cnt) + "\n" +
|
|
|
- str(download_video_resolution) + "\n" +
|
|
|
- str(int(time.mktime(
|
|
|
- time.strptime(download_video_send_time, "%Y/%m/%d %H:%M:%S")))) + "\n" +
|
|
|
- str(download_user_name) + "\n" +
|
|
|
- str(download_head_url) + "\n" +
|
|
|
- str(download_video_url) + "\n" +
|
|
|
- str(download_cover_url) + "\n" +
|
|
|
- str(cls.did))
|
|
|
- Common.logger().info("==========视频信息已保存至info.txt==========")
|
|
|
-
|
|
|
- # 添加视频 ID 到 list,用于统计当次下载总数
|
|
|
- cls.download_video_list.append(download_photo_id)
|
|
|
-
|
|
|
- # 上传视频
|
|
|
- Common.logger().info("开始上传视频:{}".format(download_video_title))
|
|
|
- Publish.upload_and_publish(env, "play")
|
|
|
-
|
|
|
- # 保存视频 ID 到云文档:https://w42nne6hzg.feishu.cn/sheets/shtcnp4SaJt37q6OOOrYzPMjQkg?sheet=3b207c
|
|
|
- Common.logger().info("保存视频ID至云文档:{}", download_video_title)
|
|
|
- # 视频ID工作表,插入首行
|
|
|
- Feishu.insert_columns("3b207c", "ROWS", 1, 2)
|
|
|
- # 视频ID工作表,首行写入数据
|
|
|
- upload_time = int(time.time())
|
|
|
- values = [[str(time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(upload_time))),
|
|
|
- "推荐榜",
|
|
|
- str(download_photo_id),
|
|
|
- str(download_video_title),
|
|
|
- str(download_video_play_cnt),
|
|
|
- str(download_video_comment_cnt),
|
|
|
- str(download_video_like_cnt),
|
|
|
- str(download_video_share_cnt),
|
|
|
- str(download_video_duration),
|
|
|
- str(download_video_resolution),
|
|
|
- str(download_video_send_time),
|
|
|
- str(download_user_name),
|
|
|
- str(download_user_id),
|
|
|
- str(download_head_url),
|
|
|
- str(download_cover_url),
|
|
|
- str(download_video_url)]]
|
|
|
- time.sleep(1)
|
|
|
- Feishu.update_values("3b207c", "A2:Q2", values)
|
|
|
-
|
|
|
- # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=Zt2PGQ
|
|
|
- Common.logger().info("从云文档删除该视频信息:{}", download_video_title)
|
|
|
- # 删除行或列,可选 ROWS、COLUMNS
|
|
|
- time.sleep(1)
|
|
|
- Feishu.dimension_range("Zt2PGQ", "ROWS", i + 1, i + 1)
|
|
|
- else:
|
|
|
- # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=Zt2PGQ
|
|
|
- Common.logger().info("该视频不满足下载规则,删除在云文档中的信息:{}", download_video_title)
|
|
|
- # 删除行或列,可选 ROWS、COLUMNS
|
|
|
- Feishu.dimension_range("Zt2PGQ", "ROWS", i + 1, i + 1)
|
|
|
- except Exception as e:
|
|
|
- Common.logger().error("视频 info 异常,删除该视频信息", e)
|
|
|
- # 删除行或列,可选 ROWS、COLUMNS
|
|
|
- Feishu.dimension_range("Zt2PGQ", "ROWS", i + 1, i + 1)
|
|
|
cls.download_publish("prod")
|
|
|
-
|
|
|
except Exception as e:
|
|
|
Common.logger().error(e)
|
|
|
|