generativeai_video.py 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369
  1. import asyncio
  2. import os
  3. import aiohttp
  4. import requests
  5. import google.generativeai as genai
  6. import uuid
  7. class VideoAnalyzer:
  8. def __init__(self, api_key):
  9. """初始化类,配置 API 密钥和视频路径"""
  10. genai.configure(api_key=api_key)
  11. self.video_file = None
  12. async def process_and_delete_file(self, file_path):
  13. """删除文件"""
  14. try:
  15. print(f"正在处理文件: {file_path}" )
  16. os.remove( file_path )
  17. print( f"文件已删除: {file_path}" )
  18. except Exception as e:
  19. print( f"处理或删除文件时发生错误: {str( e )}" )
  20. async def download_video(self, video_url, save_directory='/root/google_ai_studio/path'):
  21. # async def download_video(self, video_url, save_directory='/Users/tzld/Desktop/google_ai_studio/path'):
  22. """从给定的视频链接下载视频并保存到指定路径"""
  23. try:
  24. # 发送 GET 请求获取视频内容
  25. random_filename = f"{uuid.uuid4()}.mp4"
  26. save_path = os.path.join(save_directory, random_filename)
  27. async with aiohttp.ClientSession() as session:
  28. async with session.get( video_url ) as response:
  29. response.raise_for_status() # 检查请求是否成功
  30. with open( save_path, 'wb' ) as video_file:
  31. while True:
  32. chunk = await response.content.read( 1024 * 1024 ) # 每次读取 1MB
  33. if not chunk:
  34. break
  35. video_file.write( chunk )
  36. print( f"视频已成功下载并保存到: {save_path}" )
  37. return save_path
  38. except requests.exceptions.RequestException as e:
  39. print( f"下载视频时出现错误: {e}" )
  40. return None
  41. async def upload_video(self, save_path, mime_type = None):
  42. """上传视频文件并获取视频文件对象"""
  43. self.video_file = genai.upload_file(save_path, mime_type=mime_type)
  44. await self._wait_for_processing()
  45. async def _wait_for_processing(self):
  46. """等待视频文件处理完成"""
  47. while self.video_file.state.name == 'PROCESSING':
  48. print( '等待视频处理完成...' )
  49. await asyncio.sleep(2) # 使用异步睡眠代替阻塞睡眠
  50. self.video_file = genai.get_file( self.video_file.name )
  51. print( f'视频处理完成: {self.video_file.uri}' )
  52. async def create_cache(self):
  53. generation_config = {
  54. "temperature": 1,
  55. "top_p": 0.95,
  56. "top_k": 64,
  57. "max_output_tokens": 8192,
  58. "response_mime_type": "application/json"
  59. }
  60. """创建缓存内容,并返回生成模型"""
  61. # 创建生成模型,使用 gemini-1.5-flash 模型
  62. model = genai.GenerativeModel(
  63. model_name="gemini-1.5-flash",
  64. generation_config=generation_config,
  65. )
  66. return model
  67. async def analyze_video(self, model, questions, sample_data):
  68. chat_session = model.start_chat(history=[])
  69. message_content = {
  70. "parts": [
  71. self.video_file,
  72. str(questions) +
  73. "输出返回格式样例:\n" + str(sample_data)
  74. ]
  75. }
  76. response = chat_session.send_message( message_content )
  77. return response
  78. async def main(video_path):
  79. """主函数,执行视频上传、缓存创建、问题生成"""
  80. try:
  81. api_key = 'AIzaSyC-IxUvJhbiKWA7uN1RTtVbOjt3pj_-Apc'
  82. # 初始化视频分析类
  83. analyzer = VideoAnalyzer(api_key )
  84. save_path = await analyzer.download_video(video_path)
  85. if not save_path:
  86. if os.path.exists( save_path ):
  87. os.remove( save_path )
  88. print( f"文件已删除: {save_path}" )
  89. print("视频下载失败")
  90. return "视频下载失败"
  91. # 上传并处理视频
  92. await analyzer.upload_video(save_path)
  93. # 创建缓存模型
  94. model =await analyzer.create_cache()
  95. sample_data = {
  96. "一、基础信息": {
  97. "视觉/音乐/文字": "",
  98. "内容选题": "",
  99. "视频主题": ""
  100. },
  101. "二、主体和场景": {
  102. "视频主体": "",
  103. "视频场景": []
  104. },
  105. "三、情感与风格": {},
  106. "四、视频传播性与观众": {
  107. "片尾引导": {},
  108. "传播性判断": "",
  109. "观众画像": {}
  110. },
  111. "五、音画细节": {
  112. "音频细节": {},
  113. "视频水印": {},
  114. "视频字幕": {},
  115. "视频口播": ""
  116. },
  117. "六、人物与场景": {
  118. "知名人物": {},
  119. "人物年龄段": "",
  120. "场景描述": []
  121. },
  122. "七、时效性与分类": {
  123. "时效性": {},
  124. "视频一级分类": "",
  125. "二级分类": ""
  126. }
  127. }
  128. # 视频分析问题
  129. video_analysis_questions = "你是一个专业的视频分析师,我将给你一个视频,请你对视频进行理解,回答下面的问题。\n一、基础信息:\n1.视觉/音乐/文字:请从视频中的视觉、音乐、文字这三个维度信息做分析比较,哪个维度的信息是该视频中最重要的,可能成为该视频的要点驱动力?你只要回答视觉/音乐/文字三者其一即可。\n2.内容选题:如果需要从视频中提取一个内容选题,你觉得应该是什么?请注意:选题应该体现视频的关键点,亮点,爆点,选题不能超过8个字。\n3.视频主题:描述视频的整体主题。\n二、主体和场景:\n1.视频主体:视频中的核心人物或物体,有几个?分别是什么?\n2.视频场景:视频属于什么场景?场景可以有多个,每个不超过6个字。\n三、情感与风格:\n1.情感倾向:视频传递的情感是积极、消极还是中立或其他?\n2.视频风格:判断视频的风格类型(如严肃、轻松、幽默等)。\n四、视频传播性与观众:\n1.片尾引导\n•视频片尾是否有引导观众分享?\n•引导时长?\n•引导强度如何?\n2.传播性判断:基于中国中老年微信用户,判断该视频的传播性并说明依据。\n3.观众画像:\n•推测观众的年龄。\n•推测观众的性别。\n•推测观众的地域。\n五、音画细节:\n1.音频细节\n•视频中的音频信息,是否有歌曲?\n•视频中的音频信息,歌曲名是什么?\n•视频中的音色音色是怎样的?\n2.视频水印\n•是否有产品名的水印?\n•水印是否涉及产品名称是什么?\n3.视频字幕\n•是否有字幕?\n•字幕的颜色?\n•字幕的字号?\n•字幕的位置如何?\n4.视频口播:提供视频中出现的准确且完整的口播内容。\n六、人物与场景:\n1.知名人物\n•视频或音频中是否出现知名人物?\n•视频或音频中是否出现知名人物是谁?\n2.人物年龄段:视频中人物的年龄段(如中青年男、中青年女等)。\n3.场景描述:视频和声音中涉及的场景描述。\n七、时效性与分类:\n1.时效性:\n•适用时效日。\n•适用时效早中晚。\n2.视频一级分类:判断视频分别属于下面的哪种一级分类,并输出准确完整的一级品类_分类名称:\n1. 一级品类_音乐\n2. 一级品类_剧情 / 剧情演绎\n3. 一级品类_二次元\n4. 一级品类_游戏\n5. 一级品类_公益\n6. 一级品类_随拍 / 颜值\n7. 一级品类_舞蹈\n8. 一级品类_动物 / 萌宠\n9. 一级品类_三农\n10. 一级品类_科技 / 科技数码\n11. 一级品类_财经\n12. 一级品类_母婴 / 母婴亲子\n13. 一级品类_法律 / 人文社科\n14. 一级品类_科普 / 人文社科\n15. 一级品类_情感 / 情感心理\n16. 一级品类_职场 / 人文社科\n17. 一级品类_教育 / 教育培训\n18. 一级品类_摄影摄像\n19. 一级品类_艺术 / 才艺技能\n20. 一级品类_美食\n21. 一级品类_旅行 / 旅游\n22. 一级品类_地域本地\n23. 一级品类_时尚 / 时尚 / 美妆\n24. 一级品类_文化 / 人文社科\n25. 一级品类_搞笑 / 休闲娱乐\n26. 一级品类_明星 / 名人\n27. 一级品类_综艺\n28. 一级品类_影视综艺\n29. 一级品类_电影\n30. 一级品类_电视剧\n31. 一级品类_汽车\n32. 一级品类_体育 / 运动\n33. 一级品类_医疗健康 / 长寿 / 健身\n34. 一级品类_生活记录 / 生活\n35. 一级品类_生活家居 / 家居家装\n36. 一级品类_时政社会\n37. 一级品类_奇人异象\n38. 一级品类_历史\n39. 一级品类_军事\n40. 一级品类_宗教\n41. 一级品类_短剧\n42. 一级品类_收藏品\n3.视频二级分类:判断视频分别属于下面的哪种二级分类,并输出准确完整的品类-分类名称:\n品类-祝福音乐:以送祝福为主题的音乐,通常用于庆祝生日、节日、婚礼等场合。\n2. 品类-人生感悟音乐:反映人生哲理和感悟的音乐,表达对生活、时间、命运的思考。\n3. 品类-民族异域音乐:表现不同国家和民族文化风情的音乐,具有地方特色和异域风情。\n4. 品类-亲情音乐:以家庭和亲情为主题的音乐,表达对家人的关怀与爱。\n5. 品类-红歌老歌:指红色革命歌曲及经典老歌,反映历史、社会或革命精神的音乐作品。\n6. 品类-音乐知识:介绍音乐理论、历史、风格以及相关知识的视频。\n7. 品类-正能量剧情:充满正能量的剧情短片,鼓励积极向上的生活态度。\n8. 品类-对口型表演:演员或普通人模仿歌曲、台词的对口型表演视频,常以搞笑为主。\n9. 品类-快闪:指在公共场所突然进行的集体表演,通常是舞蹈或音乐表演,具有瞬间性和惊喜感。\n10. 品类-拟真游戏:模仿现实世界的游戏,如驾驶、建筑、农业等,让玩家体验真实情境。\n11. 品类-麻将:以麻将为主题的视频,可能包含麻将技巧、教学或比赛。\n12. 品类-棋牌:与棋类、牌类相关的视频,包括游戏演示、技巧分享等。\n13. 品类-老年审美美女:符合老年人审美标准的女性展示内容,可能涉及穿搭、仪表等。\n14. 品类-老年审美帅哥:展现符合老年人审美标准的男性,通常以绅士风格和成熟气质为主。\n15. 品类-红歌老歌舞蹈:伴随红歌和老歌的舞蹈表演,常见于集体活动或文艺演出。\n16. 品类-广场舞:中老年群体在广场等公开场合跳的集体舞蹈,常见于健身或娱乐活动。\n17. 品类-舞蹈教程:教授各种舞蹈动作和技巧的教学视频。\n18. 品类-宠物日常:记录宠物日常生活的短视频,展示其可爱的瞬间或有趣的行为。\n19. 品类-动物表演:展示动物参与的表演或训练成果,如马戏、宠物秀等。\n20. 品类-生动物:记录生物或野生动物的生活,通常包括动物行为、栖息地等自然场景。\n21. 品类-农村生活:展示农村地区的日常生活,往往包括农业劳动、乡村风景等。\n22. 品类-农业技术:讲解现代农业技术、种植养殖技巧的科普内容。\n23. 品类-老年相关科技:专为老年人设计的科技产品或服务,如智能设备、健康监测工具等。\n24. 品类-未来科幻:以未来世界、科幻场景为背景的内容,展示未来技术、太空探索等。\n25. 品类-国家科技力量:展示国家在科技领域取得的成就或重要技术进展。\n26. 品类-保险:围绕保险知识、产品介绍、保险购买建议等内容的视频。\n27. 品类-理财:讲解理财知识、投资策略及个人财务管理的方法。\n28. 品类-亲子日常:记录亲子互动、家庭日常生活的视频,常有温馨、教育性质。\n29. 品类-K12教育:涵盖从幼儿园到12年级的教育内容,包括课业辅导、学习技巧等。\n30. 品类-老年相关法律科普:专为老年群体提供的法律知识科普,如财产继承、养老金等。\n31. 品类-知识科普:涉及各个领域的知识普及视频,涵盖科学、历史、文化等多方面。\n32. 品类-生活技巧科普:分享实用的生活小窍门,如家务技巧、维修小贴士等。\n33. 品类-怀念时光:带有怀旧情感的视频,通常回顾过去的生活、音乐、电影等。\n34. 品类-人生忠告:分享人生经验、哲理或建议的内容,具有启发性和指导性。\n35. 品类-迷信祝福:包含传统民间习俗中的迷信元素,如求平安、避灾祈福的视频。\n36. 品类-节日祝福:在节日期间分享祝福的视频,通常用于庆祝节日或传递问候。\n37. 品类-早中晚好:问候类视频,早晨、午间或晚间送出祝福或温馨提示。\n38. 品类-退休前:针对即将退休的人群,提供退休前的准备建议或心态调整。\n39. 品类-退休后:讨论退休后的生活方式、活动或心理调节的内容。\n40. 品类-益智解密:通过解谜游戏或益智问题,激发思考和智力的内容。\n41. 品类-老年教育:为老年人提供的继续教育内容,包括兴趣班、技能学习等。\n42. 品类-风景实拍:展示自然风景的实拍视频,通常包括山川河流、海滩森林等美景。\n43. 品类-动植物实拍:直接记录动植物的生活状态、自然环境的实拍内容。\n44. 品类-人像模特实拍:展示模特的时尚摄影或造型展示,关注人像艺术。\n45. 品类-摄影教学:讲授摄影技巧、拍摄理念或后期处理的教学内容。\n46. 品类-名画赏析:分析和解读名画的艺术价值、历史背景和技术细节。\n47. 品类-杂技柔术:展示杂技、柔术等特技表演,通常为娱乐性和观赏性较强的节目。\n48. 品类-魔术:展示各种魔术表演,通常包括戏法和观众互动。\n49. 品类-魔术特效:展示运用特效技术的魔术表演,结合视觉效果增强表演效果。\n50. 品类-书法:介绍书法艺术、技巧与文化背景的内容,可能包括书法教学。\n51. 品类-绘画:教授绘画技巧、风格和媒介的内容,适合各个水平的艺术爱好者。\n52. 品类-木工:介绍木工技艺、工具使用及制作技巧的视频。\n53. 品类-口技:表演口技的内容,通过声音模拟自然界或乐器声,通常以娱乐为主。\n54. 品类-大型集体艺术:展示大型团体艺术表演的内容,如合唱、舞蹈等集体表演。\n55. 品类-戏曲戏剧:包含戏曲和戏剧的表演视频,展示传统文化艺术形式。\n56. 品类-二人转:以二人转为主题的表演,通常为地方戏曲,内容风趣幽默。\n57. 品类-其他才艺:包含多种才艺表演,如歌唱、乐器演奏等,展示个人才华。\n58. 品类-美食测评:对美食进行评测、评分的视频,通常包括外卖、餐馆等。\n59. 品类-美食教程:教授美食制作过程、技巧及食材选择的内容,适合家庭烹饪爱好者。\n60. 品类-吃播探店:记录吃播者探店、品尝美食的过程,通常包含个人点评。\n61. 品类-旅行记录:记录旅行中的见闻、景点介绍及个人感受,分享旅游体验。\n62. 品类-旅行攻略:提供旅行目的地的攻略,包括交通、住宿、美食推荐等。\n63. 品类-省份城市亮点:介绍各省份和城市的特色、景点和文化亮点的视频。\n64. 品类-本地新闻:报道当地的新闻事件、社会动态,关注民生问题。\n65. 品类-本地生活:涉及当地生活的内容,介绍社区活动、居民生活等。\n66. 品类-网络红人:展示网络红人及其生活、表演或特色内容,通常以娱乐为主。\n67. 品类-综艺节目:以综艺节目为主题的内容,展示各类综艺表演、游戏等。\n68. 品类-情感问题:讨论情感、心理、恋爱等相关话题的内容。\n69. 品类-家庭教育:针对家庭教育提供的指导、建议和经验分享。\n70. 品类-职场心理:涉及职场心理问题、职业规划等内容的分享。\n71. 品类-励志故事:讲述励志故事,鼓励人们追求梦想、积极向上。\n72. 品类-文化讲解:对文化现象、习俗等进行解读和分析的内容。\n73. 品类-安全教育:提供安全知识和应急处理技巧的科普内容。\n74. 品类-法律科普:涉及法律知识普及,帮助人们了解相关法律法规。\n75. 品类-心理健康:关注心理健康的内容,包括心理咨询、情绪管理等。\n76. 品类-职业发展:提供职业发展的建议与指导,助力个人职业规划。\n77. 品类-社交技巧:分享社交场合的应对技巧和经验,帮助提升人际交往能力。\n78. 品类-家庭活动:记录家庭活动、亲子互动的内容,展现家庭氛围。\n79. 品类-社群活动:展示社群活动、组织参与的内容,强调社区凝聚力。\n80. 品类-环保科普:普及环保知识,提升公众对环保的意识。\n81. 品类-健康科普:关注健康知识的普及,帮助人们保持身体健康。\n82. 品类-养生保健:介绍养生、保健知识及实践方法,帮助人们提升健康水平。\n83. 品类-运动健身:提供运动健身的技巧、方法及健康饮食指导。\n84. 品类-休闲娱乐:展示休闲娱乐活动的内容,关注生活乐趣。\n85. 品类-人生哲学:探讨人生哲学、价值观念,提供思考和反思的内容。\n86. 品类-自我提升:帮助个人实现自我提升与成长的内容,提供实用建议。\n87. 品类-亲密关系:讨论亲密关系中的问题及解决方法,提供支持与建议。\n88. 品类-购物分享:分享购物体验、购物推荐的视频。\n89. 品类-产品评测:对产品进行评测、对比,帮助消费者做出购买决策。\n90. 品类-品牌故事:讲述品牌背后的故事,探讨品牌文化与价值观。\n91. 品类-创意手工:展示创意手工制作过程,鼓励DIY精神。\n92. 品类-艺术鉴赏:涉及艺术作品的鉴赏与评论,提升观众的艺术素养。\n93. 品类-社交网络:讨论社交网络的使用、趋势及影响等内容。\n94. 品类-线上学习:提供线上学习资源及建议,帮助提升学习效率。\n95. 品类-科技前沿:介绍最新科技动态、研究成果等,关注科技发展。\n96. 品类-未来趋势:探讨未来的发展趋势,涉及经济、科技、文化等方面。\n97. 品类-游戏攻略:提供游戏玩法、技巧、攻略的分享内容。\n98. 品类-时尚潮流:介绍时尚潮流、穿搭技巧,关注时尚生活。\n99. 品类-美容护肤:分享美容护肤的知识与经验,帮助改善肌肤状况。\n100. 品类-饮食文化:探讨饮食文化的内容,包括传统美食、饮食习惯等。\n101. 品类-旅行美食:记录旅行中的美食体验,分享各地特色美食。\n102. 品类-宠物培训:教授宠物训练技巧,帮助养宠人士更好地与宠物沟通。\n103. 品类-风俗习惯:探讨不同地区的风俗习惯,丰富文化理解。\n104. 品类-人生故事:分享真实的人生故事,传递情感和价值观。\n105. 品类-社会观察:对社会现象进行观察和分析,提供深度视角。\n106. 品类-家庭生活技巧:分享家庭生活中的小技巧,提升生活质量。\n107. 品类-社区服务:记录社区服务活动,增强社区凝聚力。\n108. 品类-情感教育:提供情感教育相关知识与经验,助力情感发展。\n109. 品类-全球视野:关注全球事务、国际关系的内容,拓展视野。\n110. 品类-人际关系:探讨人际关系中的沟通技巧与应对策略。",
  130. # video_analysis_questions = "一、基础信息:\n" \
  131. # "1.视觉/音乐/文字: 请从视频中的视觉、音乐、文字这三个维度信息做分析比较,哪个维度的信息是该视频中最重要的,可能成为该视频的要点驱动力?你只要回答 视觉/音乐/文字 三者其一即可。\n" \
  132. # "2.内容选题: 如果需要从视频中提取一个内容选题,你觉得应该是什么?请注意:选题应该体现视频的关键点,亮点,爆点,选题不能超过8个字。\n" \
  133. # "3.视频主题:描述视频的整体主题。\n " \
  134. # "二、主体和场景:\n" \
  135. # "1.视频主体:视频中的核心人物或物体,有几个?分别是什么?\n" \
  136. # "2.视频场景:视频属于什么场景?场景可以有多个,每个不超过6个字\n" \
  137. # "三、情感与风格:\n" \
  138. # "1.情感倾向:视频传递的情感是积极、消极还是中立或其他?\n" \
  139. # "2.视频风格:判断视频的风格类型(如严肃、轻松、幽默等)。\n四、视频传播性与观众:\n" \
  140. # "1.片尾引导\n" \
  141. # "视频片尾是否有引导观众分享?\n" \
  142. # "引导时长?\n" \
  143. # "引导强度如何?\n" \
  144. # "2.传播性判断:基于中国中老年微信用户,判断该视频的传播性并说明依据。\n" \
  145. # "3.观众画像:\n" \
  146. # "推测观众的年龄\n" \
  147. # "推测观众的性别\n" \
  148. # "推测观众的地域\n" \
  149. # "五、音画细节:\n" \
  150. # "1.音频细节\n" \
  151. # "视频中的音频信息,是否有歌曲?\n" \
  152. # "视频中的音频信息,歌曲名是什么?\n" \
  153. # "视频中的音色音色是怎样的?\n" \
  154. # "2.视频水印\n" \
  155. # "是否有产品名的水印?\n" \
  156. # "水印是否涉及产品名称是什么?\n" \
  157. # "3.视频字幕\n" \
  158. # "是否有字幕?\n" \
  159. # "字幕的颜色?\n" \
  160. # "字幕的字号?\n" \
  161. # "字幕的位置如何?\n" \
  162. # "4. 视频口播:提供视频中出现的准确且完整的口播内容。\n" \
  163. # "六、人物与场景:\n" \
  164. # "1.知名人物\n" \
  165. # "视频或音频中是否出现知名人物?\n" \
  166. # "视频或音频中是否出现知名人物是谁?\n" \
  167. # "2.人物年龄段:视频中人物的年龄段(如中青年男、中青年女等)。\n" \
  168. # "3.场景描述:视频和声音中涉及的场景描述。\n" \
  169. # "七、时效性与分类:\n" \
  170. # "1.时效性:\n" \
  171. # "适用时效日\n" \
  172. # "适用时效早中晚\n" \
  173. # "2.视频一级分类:判断视频分别属于下面的哪种一级分类,并输出准确完整的一级品类_分类名称:\n" \
  174. # "一级分类范围为:\n" \
  175. # "一级品类_音乐\n" \
  176. # "一级品类_剧情 / 剧情演绎\n" \
  177. # "一级品类_二次元\n" \
  178. # "一级品类_游戏\n" \
  179. # "一级品类_公益\n" \
  180. # "一级品类_随拍 / 颜值\n" \
  181. # "一级品类_舞蹈\n" \
  182. # "一级品类_动物 / 萌宠\n" \
  183. # "一级品类_三农\n" \
  184. # "一级品类_科技 / 科技数码\n" \
  185. # "一级品类_财经\n" \
  186. # "一级品类_母婴 / 母婴亲子\n" \
  187. # "一级品类_法律 / 人文社科\n" \
  188. # "一级品类_科普 / 人文社科\n" \
  189. # "一级品类_情感 / 情感心理\n" \
  190. # "一级品类_职场 / 人文社科\n" \
  191. # "一级品类_教育 / 教育培训\n" \
  192. # "一级品类_摄影摄像\n" \
  193. # "一级品类_艺术 / 才艺技能\n" \
  194. # "一级品类_美食\n" \
  195. # "一级品类_旅行 / 旅游\n" \
  196. # "一级品类_地域本地\n" \
  197. # "一级品类_时尚 / 时尚 / 美妆\n" \
  198. # "一级品类_文化 / 人文社科\n" \
  199. # "一级品类_搞笑 / 休闲娱乐\n" \
  200. # "一级品类_明星 / 名人\n" \
  201. # "一级品类_综艺\n" \
  202. # "一级品类_影视综艺\n" \
  203. # "一级品类_电影\n" \
  204. # "一级品类_影视综艺\n" \
  205. # "一级品类_电视剧\n" \
  206. # "一级品类_影视综艺\n" \
  207. # "一级品类_汽车\n" \
  208. # "一级品类_体育 / 运动\n" \
  209. # "一级品类_医疗健康 / 长寿 / 健身\n" \
  210. # "一级品类_生活记录 / 生活\n" \
  211. # "一级品类_生活家居 / 家居家装\n" \
  212. # "一级品类_时政社会\n" \
  213. # "一级品类_奇人异象\n" \
  214. # "一级品类_历史\n" \
  215. # "一级品类_军事\n" \
  216. # "一级品类_宗教\n" \
  217. # "一级品类_短剧\n" \
  218. # "一级品类_收藏品\n" \
  219. # "3.二级分类: 判断视频分别属于下面的哪种二级分类,并输出准确完整的品类-分类名称\n" \
  220. # "二级分类范围为:\n" \
  221. # "品类-祝福音乐\n" \
  222. # "品类-人生感悟音乐\n" \
  223. # "品类-民族异域音乐\n" \
  224. # "品类-亲情音乐\n" \
  225. # "品类-红歌老歌\n" \
  226. # "品类-音乐知识\n" \
  227. # "品类-正能量剧情\n" \
  228. # "品类-对口型表演\n" \
  229. # "品类-快闪\n" \
  230. # "品类-拟真游戏\n" \
  231. # "品类-麻将\n" \
  232. # "品类-棋牌\n" \
  233. # "品类-老年审美美女\n" \
  234. # "品类-老年审美帅哥\n" \
  235. # "品类-红歌老歌舞蹈\n" \
  236. # "品类-广场舞\n" \
  237. # "品类-舞蹈教程\n" \
  238. # "品类-宠物日常\n" \
  239. # "品类-动物表演\n" \
  240. # "品类-生动物\n" \
  241. # "品类-农村生活\n" \
  242. # "品类-农业技术\n" \
  243. # "品类-老年相关科技\n" \
  244. # "品类-未来科幻\n" \
  245. # "品类-国家科技力量\n" \
  246. # "品类-保险\n" \
  247. # "品类-理财\n" \
  248. # "品类-亲子日常\n" \
  249. # "品类-K12教育\n" \
  250. # "品类-老年相关法律科普\n" \
  251. # "品类-知识科普\n" \
  252. # "品类-生活技巧科普\n" \
  253. # "品类-怀念时光\n" \
  254. # "品类-人生忠告\n" \
  255. # "品类-迷信祝福\n" \
  256. # "品类-节日祝福\n" \
  257. # "品类-早中晚好\n" \
  258. # "品类-退休前\n" \
  259. # "品类-退休后\n" \
  260. # "品类-益智解密\n" \
  261. # "品类-老年教育\n" \
  262. # "品类-风景实拍\n" \
  263. # "品类-动植物实拍\n" \
  264. # "品类-人像模特实拍\n" \
  265. # "品类-摄影教学\n" \
  266. # "品类-名画赏析\n" \
  267. # "品类-杂技柔术\n" \
  268. # "品类-魔术\n" \
  269. # "品类-魔术特效\n" \
  270. # "品类-书法\n" \
  271. # "品类-绘画\n" \
  272. # "品类-木工\n" \
  273. # "品类-口技\n" \
  274. # "品类-大型集体艺术\n" \
  275. # "品类-戏曲戏剧\n" \
  276. # "品类-二人转\n" \
  277. # "品类-其他才艺\n" \
  278. # "品类-美食测评\n" \
  279. # "品类-美食教程\n" \
  280. # "品类-吃播探店\n" \
  281. # "品类-旅行记录\n" \
  282. # "品类-旅行攻略\n" \
  283. # "品类-省份城市亮点\n" \
  284. # "品类-本地新闻\n" \
  285. # "品类-本地生活\n" \
  286. # "品类-老年时尚\n" \
  287. # "品类-美妆护肤穿搭\n" \
  288. # "品类-传统文化\n" \
  289. # "品类-国际文化\n" \
  290. # "品类-搞笑瞬间合集\n" \
  291. # "品类-搞笑段子\n" \
  292. # "品类-历史名人\n" \
  293. # "品类-当代正能量人物\n" \
  294. # "品类-老明星\n" \
  295. # "品类-老年人上综艺\n" \
  296. # "品类-老年关心纪录片\n" \
  297. # "品类-老综艺影像\n" \
  298. # "品类-电影切片\n" \
  299. # "品类-电影解说\n" \
  300. # "品类-电视剧切片\n" \
  301. # "品类-电视剧解说\n" \
  302. # "品类-中国队比赛\n" \
  303. # "品类-老年运动\n" \
  304. # "品类-健康知识\n" \
  305. # "品类-长寿知识\n" \
  306. # "品类-饮食健康\n" \
  307. # "品类-健身操\n" \
  308. # "品类-老年生活\n" \
  309. # "品类-生活小妙招\n" \
  310. # "品类-园艺花艺\n" \
  311. # "品类-民生政策\n" \
  312. # "品类-流行病疫情\n" \
  313. # "品类-社会风气\n" \
  314. # "品类-食品安全\n" \
  315. # "品类-贪污腐败\n" \
  316. # "品类-人财诈骗\n" \
  317. # "品类-核污染\n" \
  318. # "品类-惠民新闻\n" \
  319. # "品类-天气变化\n" \
  320. # "品类-国家力量\n" \
  321. # "品类-国际时政\n" \
  322. # "品类-他国政策\n" \
  323. # "品类-惊奇事件\n" \
  324. # "品类-罕见画面\n" \
  325. # "品类-中国战争史\n" \
  326. # "品类-中国党史\n" \
  327. # "品类-中国历史影像\n" \
  328. # "品类-国际军事\n" \
  329. # "品类-国内军事\n" \
  330. # "品类-国家统一\n" \
  331. # 分析视频并打印结果
  332. response =await analyzer.analyze_video( model, video_analysis_questions, sample_data )
  333. print( response.usage_metadata )
  334. print(response.text)
  335. if os.path.exists( save_path ):
  336. os.remove( save_path )
  337. print( f"文件已删除: {save_path}" )
  338. return response.text
  339. except Exception as e:
  340. return f"视频分析处理失败:{e}"
  341. if __name__ == "__main__":
  342. proxy_url = 'http://127.0.0.1:1081'
  343. os.environ["http_proxy"] = proxy_url
  344. os.environ["https_proxy"] = proxy_url
  345. # video_path = 'http://temp.yishihui.com/longvideo/transcode/video/vpc/20240926/66510681PACx7zsp2wDBHJlicE.mp4'
  346. video_path = 'http://temp.yishihui.com/longvideo/transcode/video/vpc/20240605/68754804SJz5E9JNe5hAdSkRwF.mp4'
  347. asyncio.run(main(video_path))