|
@@ -1,7 +1,9 @@
|
|
|
import os
|
|
|
import json
|
|
|
import datetime
|
|
|
+import time
|
|
|
import traceback
|
|
|
+import requests
|
|
|
from threading import Timer
|
|
|
from utils import data_check, get_feature_data, asr_validity_discrimination
|
|
|
from whisper_asr import get_whisper_asr
|
|
@@ -59,33 +61,27 @@ def get_video_ai_tags(video_id, video_file, video_info):
|
|
|
confidence_up_list = []
|
|
|
try:
|
|
|
for item in json.loads(gpt_res2):
|
|
|
- if item['confidence'] > 0.5:
|
|
|
- confidence_up_list.append(item['category'])
|
|
|
+ if item['confidence'] > 0.5 and item['category'] in config_.TAGS_NEW:
|
|
|
+ confidence_up_list.append(f"AI标签-{item['category']}")
|
|
|
except:
|
|
|
pass
|
|
|
- confidence_up = ', '.join(confidence_up_list)
|
|
|
- result[0].extend([prompt2, gpt_res2, confidence_up])
|
|
|
+ confidence_up = ','.join(confidence_up_list)
|
|
|
+ log_message['AITags'] = confidence_up
|
|
|
+ # 5. 调用后端接口,结果传给后端
|
|
|
+ if len(confidence_up) > 0:
|
|
|
+ response = requests.post(url=config_.ADD_VIDEO_AI_TAGS_URL,
|
|
|
+ json={'videoId': int(video_id), 'tagNames': confidence_up})
|
|
|
+ res_data = json.loads(response.text)
|
|
|
+ if res_data['code'] != 0:
|
|
|
+ log_.error({'videoId': video_id, 'msg': 'add video ai tags fail!'})
|
|
|
except:
|
|
|
- result[0].extend(['', '', '', '', ''])
|
|
|
+ pass
|
|
|
else:
|
|
|
- result = [[str(validity), '', '', '', '', '', '', '']]
|
|
|
- log_.info(f"result = {result}")
|
|
|
- if len(result) > 0:
|
|
|
- feishu_helper.update_values(
|
|
|
- sheet_token=res_spreadsheet_token,
|
|
|
- sheet_id=res_sheet_id,
|
|
|
- data=result,
|
|
|
- start_row=write_start_row,
|
|
|
- start_column=write_start_col,
|
|
|
- end_column=write_end_col
|
|
|
- )
|
|
|
- log_.info(f"write to feishu success!")
|
|
|
- write_start_row += 1
|
|
|
+ pass
|
|
|
+ log_.info(log_message)
|
|
|
except Exception as e:
|
|
|
log_.error(e)
|
|
|
log_.error(traceback.format_exc())
|
|
|
- continue
|
|
|
-
|
|
|
|
|
|
|
|
|
def ai_tags(project, table, dt):
|
|
@@ -105,20 +101,27 @@ def ai_tags(project, table, dt):
|
|
|
print(len(video_info))
|
|
|
# 获取已下载视频
|
|
|
download_folder = 'videos'
|
|
|
- video_folder_list = os.listdir(download_folder)
|
|
|
- for video_id in video_folder_list:
|
|
|
- if video_id not in video_id_list:
|
|
|
+ retry = 0
|
|
|
+ while retry > 3:
|
|
|
+ video_folder_list = os.listdir(download_folder)
|
|
|
+ if len(video_folder_list) < 2:
|
|
|
+ retry += 1
|
|
|
+ time.sleep(60)
|
|
|
continue
|
|
|
- if video_info.get(video_id, None) is None:
|
|
|
- os.rmdir(os.path.join(download_folder, video_id))
|
|
|
- else:
|
|
|
- video_folder = os.path.join(download_folder, video_id)
|
|
|
- for filename in os.listdir(video_folder):
|
|
|
- video_type = filename.split('.')[-1]
|
|
|
- if video_type in ['mp4', 'm3u8']:
|
|
|
- video_file = os.path.join(video_folder, filename)
|
|
|
- get_video_ai_tags(video_id=video_id, video_file=video_file, video_info=video_info.get(video_id))
|
|
|
- print(video_folder_list)
|
|
|
+ for video_id in video_folder_list:
|
|
|
+ if video_id not in video_id_list:
|
|
|
+ continue
|
|
|
+ if video_info.get(video_id, None) is None:
|
|
|
+ os.rmdir(os.path.join(download_folder, video_id))
|
|
|
+ else:
|
|
|
+ video_folder = os.path.join(download_folder, video_id)
|
|
|
+ for filename in os.listdir(video_folder):
|
|
|
+ video_type = filename.split('.')[-1]
|
|
|
+ if video_type in ['mp4', 'm3u8']:
|
|
|
+ video_file = os.path.join(video_folder, filename)
|
|
|
+ get_video_ai_tags(video_id=video_id, video_file=video_file, video_info=video_info.get(video_id))
|
|
|
+ # 将处理过的视频进行删除
|
|
|
+ os.rmdir(os.path.join(download_folder, video_id))
|
|
|
|
|
|
|
|
|
def timer_check():
|