Browse Source

视频下载修复

zhangyong 7 tháng trước cách đây
mục cha
commit
2a54b06770
2 tập tin đã thay đổi với 28 bổ sung4 xóa
  1. 21 2
      data_channel/piaoquan.py
  2. 7 2
      video_rewriting/video_processor.py

+ 21 - 2
data_channel/piaoquan.py

@@ -304,10 +304,10 @@ class PQ:
             return data
 
     """
-    视频下载
+    视频号视频下载
     """
     @classmethod
-    def download_video(cls, video_url, video_path_url, video_id, video, channel_id):
+    def sph_download_video(cls, video_url, video_path_url, video_id, video, channel_id):
         if channel_id == '单点视频':
             if video['source'] == "视频号" and int(video['is_encrypted']) == 1:
                 decode_key = int(video['decode_key'])
@@ -362,6 +362,25 @@ class PQ:
                     return new_video
         return new_video
 
+    """票圈/快手创作者"""
+    @classmethod
+    def download_video(cls, video_url, video_path_url, video_id):
+        try:
+            for i in range(3):
+                payload = {}
+                headers = {}
+                response = requests.request("GET", video_url, headers=headers, data=payload)
+                if response.status_code == 200:
+                    # 以二进制写入模式打开文件
+                    video = video_path_url + str(video_id) + '.mp4'
+                    with open(f"{video}", "wb") as file:
+                        # 将响应内容写入文件
+                        file.write(response.content)
+                    time.sleep(5)
+                    return video
+            return None
+        except Exception:
+            return None
 
     """
     票圈站内视频下载

+ 7 - 2
video_rewriting/video_processor.py

@@ -374,8 +374,13 @@ class VideoProcessor:
         """
         下载并处理视频
         """
-        if channel_id in ["票圈", "快手创作者版", "单点视频"]:
-            new_video_path = PQ.download_video(video_url, video_path_url, v_id, video, channel_id)
+        if channel_id in ["单点视频"]:
+            new_video_path = PQ.sph_download_video(video_url, video_path_url, v_id, video, channel_id)
+            if new_video_path == None:
+                return None
+            Common.logger(mark).info(f"{channel_id}视频下载成功: {new_video_path}")
+        if channel_id in ["票圈", "快手创作者版"]:
+            new_video_path = PQ.download_video(video_url, video_path_url, v_id)
             if new_video_path == None:
                 return None
             Common.logger(mark).info(f"{channel_id}视频下载成功: {new_video_path}")