zhangyong 4 months ago
parent
commit
cad0eddd00
2 changed files with 46 additions and 33 deletions
  1. 2 0
      carry_data_handle.py
  2. 44 33
      carry_video/carry_video.py

+ 2 - 0
carry_data_handle.py

@@ -39,6 +39,7 @@ def video_task_start():
                     logger.info(f"已删除文件: {file_path}")
                 except Exception as e:
                     logger.error(f"删除文件时出错: {file_path}, 错误: {e}")
+        return
     except Exception as e:
         data = json.loads(data)
         in_carry_video_data(REDIS_NAME, json.dumps(data, ensure_ascii=False, indent=4))
@@ -53,6 +54,7 @@ def video_task_start():
                           "https://open.feishu.cn/open-apis/bot/v2/hook/65bc5463-dee9-46d0-bc2d-ec6c49a8f3cd",
                           "【 搬运&改造效率工具失败通知 】")
         logger.error(f"[+] {data}处理失败,失败信息{e}")
+        return
 
 def schedule_tasks():
     schedule.every(6).minutes.do(video_task_start)

+ 44 - 33
carry_video/carry_video.py

@@ -33,7 +33,7 @@ class CarryViode:
                     'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) '
                                   'Chrome/127.0.0.0 Safari/537.36',
                 }
-                response = requests.request(url=url, method='GET', headers=headers, allow_redirects=False)
+                response = requests.request(url=url, method='GET', headers=headers, allow_redirects=False, timeout=30)
                 location = response.headers.get('Location', None)
                 video_id = re.search(r'/video/(\d+)/?', location.split('?')[0] if location else url).group(1)
             else:
@@ -73,7 +73,7 @@ class CarryViode:
                 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) '
                               'Chrome/127.0.0.0 Safari/537.36',
             }
-            response = requests.request(url=url, method='GET', headers=headers, allow_redirects=False)
+            response = requests.request(url=url, method='GET', headers=headers, allow_redirects=False, timeout= 30)
             location = response.headers.get('Location', None)
             video_id = re.search(r'/(f|photo|short-video|long-video)/(.*)/?',
                                  location.split('?')[0] if location else url).group(2)
@@ -183,41 +183,46 @@ class CarryViode:
                 pass
         AliyunLogger.logging(data["name"], "效率工具", tag_transport_channel, data["video_url"],
                              "改造成功", "1000", str(data), str(pq_list))
+        return
 
     def main(self, data, REDIS_NAME, file_path):
         tag_transport_channel = None
-
-        url = data['video_url']
-        if "&vid=" not in url and data['tag_transport_channel'] != "抖音":
-            msg = html.unescape(url).split('?')[0]
-            pattern = re.search(r'https?://[^\s<>"\'\u4e00-\u9fff]+', msg)
-            if not pattern:
-                in_carry_video_data(REDIS_NAME, json.dumps(data, ensure_ascii=False, indent=4))
+        try:
+            url = data['video_url']
+            if "&vid=" not in url and data['tag_transport_channel'] != "抖音":
+                msg = html.unescape(url).split('?')[0]
+                pattern = re.search(r'https?://[^\s<>"\'\u4e00-\u9fff]+', msg)
+                if not pattern:
+                    in_carry_video_data(REDIS_NAME, json.dumps(data, ensure_ascii=False, indent=4))
+                    return
+                url = pattern.group()
+            host = urlparse(url).netloc
+            if host in ['v.douyin.com', 'www.douyin.com', 'www.iesdouyin.com']:
+                tag_transport_channel = "抖音"
+                logger.info(f"[+] {url}开始获取抖音视频链接")
+                url, original_title =  self.get_text_dy_video(url=url)
+            elif host in ['v.kuaishou.com', 'www.kuaishou.com', 'v.m.chenzhongtech.com', 'creater.eozatvmq.com']:
+                tag_transport_channel = "快手"
+                logger.info(f"[+] {url}开始获取快手视频链接")
+                url, original_title = self.get_text_ks_video(url=url)
+            else:
+                AliyunLogger.logging(data["name"], "效率工具", "", data["video_url"], "扫描到一条视频",
+                                     "2001", str(data))
+                logger.error(f"[+] {url}该链接不是抖/快 不做处理")
+                AliyunLogger.logging(data["name"], "效率工具",tag_transport_channel, data["video_url"],
+                                     "不是抖/快不做处理", "1001", str(data))
+                text = (
+                    f"**负责人**: {data['name']}\n"
+                    f"**内容**: {data}\n"
+                    f"**失败信息**: 该链接不是抖/快 不做处理\n"
+                )
+                Feishu.finish_bot(text,
+                                  "https://open.feishu.cn/open-apis/bot/v2/hook/65bc5463-dee9-46d0-bc2d-ec6c49a8f3cd",
+                                  "【 搬运&改造效率工具失败通知 】")
                 return
-            url = pattern.group()
-        host = urlparse(url).netloc
-        if host in ['v.douyin.com', 'www.douyin.com', 'www.iesdouyin.com']:
-            tag_transport_channel = "抖音"
-            logger.info(f"[+] {url}开始获取抖音视频链接")
-            url, original_title =  self.get_text_dy_video(url=url)
-        elif host in ['v.kuaishou.com', 'www.kuaishou.com', 'v.m.chenzhongtech.com', 'creater.eozatvmq.com']:
-            tag_transport_channel = "快手"
-            logger.info(f"[+] {url}开始获取快手视频链接")
-            url, original_title = self.get_text_ks_video(url=url)
-        else:
-            AliyunLogger.logging(data["name"], "效率工具", "", data["video_url"], "扫描到一条视频",
-                                 "2001", str(data))
-            logger.error(f"[+] {url}该链接不是抖/快 不做处理")
-            AliyunLogger.logging(data["name"], "效率工具",tag_transport_channel, data["video_url"],
-                                 "不是抖/快不做处理", "1001", str(data))
-            text = (
-                f"**负责人**: {data['name']}\n"
-                f"**内容**: {data}\n"
-                f"**失败信息**: 该链接不是抖/快 不做处理\n"
-            )
-            Feishu.finish_bot(text,
-                              "https://open.feishu.cn/open-apis/bot/v2/hook/65bc5463-dee9-46d0-bc2d-ec6c49a8f3cd",
-                              "【 搬运&改造效率工具失败通知 】")
+        except Exception as e:
+            logger.info(f"[+] 获取视频链接异常{e}")
+            in_carry_video_data(REDIS_NAME, json.dumps(data, ensure_ascii=False, indent=4))
             return
         AliyunLogger.logging(data["name"],"效率工具", tag_transport_channel, data["video_url"], "扫描到一条视频", "2001", str(data))
         AliyunLogger.logging(data["name"], "效率工具",tag_transport_channel, data["video_url"],  "符合规则等待改造", "2004", str(data))
@@ -353,6 +358,7 @@ class CarryViode:
                 pw_url = TTS.get_pw_zm(pw_srt_text, voice)
                 if not pw_url:
                     logger.error(f"[+] {REDIS_NAME}的{data}数据片尾获取失败")
+                    data["transform_rule"] = "仅改造"
                     in_carry_video_data(REDIS_NAME, json.dumps(data, ensure_ascii=False, indent=4))
                     AliyunLogger.logging(data["name"],"效率工具", tag_transport_channel, data["video_url"],
                                          "改造失败,片尾获取失败", "3001", str(data))
@@ -369,6 +375,7 @@ class CarryViode:
                 pw_srt = TTS.getSrt(pw_url)
                 pw_mp3_path = TTS.download_mp3(pw_url, file_path)
                 if not pw_mp3_path:
+                    data["transform_rule"] = "仅改造"
                     in_carry_video_data(REDIS_NAME, json.dumps(data, ensure_ascii=False, indent=4))
                     logger.error(f"[+] {REDIS_NAME}的{data}数据片尾音频下载失败")
                     AliyunLogger.logging(data["name"], "效率工具",tag_transport_channel, data["video_url"],
@@ -385,6 +392,7 @@ class CarryViode:
                 logger.info(f"[+] {REDIS_NAME}的{data}数据片尾音频下载成功")
                 jpg_path = FFmpeg.video_png(video_path, file_path)  # 生成视频最后一帧jpg
                 if not os.path.exists(jpg_path) or os.path.getsize(jpg_path) == 0:
+                    data["transform_rule"] = "仅改造"
                     in_carry_video_data(REDIS_NAME, json.dumps(data, ensure_ascii=False, indent=4))
                     logger.error(f"[+] {REDIS_NAME}的{data}数据片尾获取最后一帧失败")
                     AliyunLogger.logging(data["name"], "效率工具",tag_transport_channel, data["video_url"],
@@ -401,6 +409,7 @@ class CarryViode:
                 logger.info(f"[+] {REDIS_NAME}的{data}数据片尾获取最后一帧成功")
                 pw_path = FFmpeg.pw_video(jpg_path, file_path, pw_mp3_path, pw_srt)  # 生成片尾视频
                 if not os.path.exists(pw_path) or os.path.getsize(pw_path) == 0:
+                    data["transform_rule"] = "仅改造"
                     in_carry_video_data(REDIS_NAME, json.dumps(data, ensure_ascii=False, indent=4))
                     logger.error(f"[+] {REDIS_NAME}的{data}数据片尾拼接失败")
                     AliyunLogger.logging(data["name"], "效率工具",tag_transport_channel, data["video_url"],
@@ -418,6 +427,7 @@ class CarryViode:
                 video_path = FFmpeg.h_b_video(video_path, pw_path, file_path)
                 video_path = FFmpeg.single_video(video_path, file_path, data["video_share"])
                 if not os.path.exists(video_path) or os.path.getsize(video_path) == 0:
+                    data["transform_rule"] = "仅改造"
                     in_carry_video_data(REDIS_NAME, json.dumps(data, ensure_ascii=False, indent=4))
                     logger.error(f"[+] {REDIS_NAME}的{data}数据添加片中字幕失败")
                     AliyunLogger.logging(data["name"], "效率工具",tag_transport_channel, data["video_url"],
@@ -460,6 +470,7 @@ class CarryViode:
                 "搬运改造"
             ]))
             self.insert_pq(REDIS_NAME, data, oss_object_key, title, tags, tag_transport_channel, channel_mark)
+            return