Browse Source

搬运增加好看视频

zhangliang 2 weeks ago
parent
commit
f45a358320
2 changed files with 45 additions and 4 deletions
  1. 43 4
      utils/dy_ks_get_url.py
  2. 2 0
      utils/feishu_form.py

+ 43 - 4
utils/dy_ks_get_url.py

@@ -120,12 +120,47 @@ class Dy_KS:
             logger.error(f"[+] 快手{url}获取视频链接失败,失败信息{e}")
             return None, None,None
 
+    @classmethod
+    def get_text_hksp_video(cls, url):
+        try:
+            parsed_url = urlparse(url)
+            query_params = parse_qs(parsed_url.query)
+            video_id = query_params.get('vid')[0]
+            url = "http://8.217.192.46:8889/crawler/hao_kan_shi_pin/detail"
+            if not video_id or not video_id.strip():
+                return None, None, None
+            payload = json.dumps({
+                "content_id": str(video_id)
+            })
+            headers = {
+                'Content-Type': 'application/json'
+            }
+            time.sleep(random.uniform(10, 50))
+            response = requests.request("POST", url, headers=headers, data=payload, timeout=30)
+            response = response.json()
+            code = response["code"]
+            if code == 0:
+                data = response["data"]["data"]
+                content_type = data['content_type']
+                if content_type == 'note':
+                    return "note", "note"
+                video_url = data["video_url_list"][0]["video_url"]
+                original_title = data["title"]
+                return video_url, original_title, video_id
+            elif code == 27006:
+                if "作品不存在" in response['msg'] or "内容不存在" in response['msg'] or "私密作品" in response[
+                    'msg'] or "该作品仅允许关注者查看" in response['msg']:
+                    return "作品不存在", None, None
+        except Exception as e:
+            logger.error(f"[+] 好看视频{url}获取视频信息失败,失败信息{e}")
+            return None, None, None
+
     @classmethod
     def get_video_url(cls, data, principal):
         try:
             url = data['video_url']
             logger.info(f"[+] url=={url}")
-            if "&vid=" in url or "?modal_id=" in url:
+            if "&vid=" in url or "?modal_id=" in url or "?vid=" in url:
                 host = urlparse(url).netloc
                 logger.info(f"[+] host=={host}")
             else:
@@ -148,11 +183,15 @@ class Dy_KS:
                 tag_transport_channel = "快手"
                 logger.info(f"[+] {url}开始获取快手视频链接")
                 url, original_title, video_id = cls.get_text_ks_video(url=url)
+            elif host in ['haokan.baidu.com']:
+                tag_transport_channel = "好看视频"
+                logger.info(f"[+] {url}开始获取好看视频链接")
+                url, original_title, video_id = cls.get_text_hksp_video(url=url)
             else:
-                logger.error(f"[+] {url}该链接不是抖/快 不做处理")
+                logger.error(f"[+] {url}该链接不是抖/快/好看视频 不做处理")
                 AliyunLogger.logging(data["name"], principal, "", data["video_url"],
-                                     "不是抖/快不做处理", "1001", str(data))
-                return "链接不是抖/快",None,None,None
+                                     "不是抖/快/好看视频 不做处理", "1001", str(data))
+                return "链接不是抖/快/好看视频",None,None,None
             if url == "作品不存在":
                 return "作品不存在",None,None,None
             return url, original_title, video_id, tag_transport_channel

+ 2 - 0
utils/feishu_form.py

@@ -42,6 +42,8 @@ class Material():
                 video_clipping = row[17]  # 剪裁
                 video_clipping_time = row[18]  # 秒数剪裁
                 title_transform = row[19]  # 标题改造
+                if not video_url:
+                    continue
                 number_dict = {
                     "channel_mark": channel_mark,
                     "name":NAME,