pqFunctions.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. """
  2. @author: luojunhui
  3. """
  4. import json
  5. import requests
  6. from applications.functions.common import async_post
  7. async def publishToPQ(video_obj):
  8. """
  9. publish video to pq
  10. :return:
  11. """
  12. oss_path = video_obj['videoPath']
  13. uid = video_obj['uid']
  14. title = video_obj['title']
  15. cover = video_obj['coverPath']
  16. # if cover == "None":
  17. cover = None
  18. url = "https://vlogapi.piaoquantv.com/longvideoapi/crawler/video/send"
  19. headers = {
  20. "User-Agent": "PQSpeed/486 CFNetwork/1410.1 Darwin/22.6.0",
  21. "cookie": "JSESSIONID=4DEA2B5173BB9A9E82DB772C0ACDBC9F; JSESSIONID=D02C334150025222A0B824A98B539B78",
  22. "referer": "http://appspeed.piaoquantv.com",
  23. "token": "524a8bc871dbb0f4d4717895083172ab37c02d2f",
  24. "accept-language": "zh-CN,zh-Hans;q=0.9",
  25. "Content-Type": "application/x-www-form-urlencoded",
  26. }
  27. payload = {
  28. "coverImgPath": cover,
  29. "deviceToken": "9ef064f2f7869b3fd67d6141f8a899175dddc91240971172f1f2a662ef891408",
  30. "fileExtensions": "MP4",
  31. "loginUid": uid,
  32. "networkType": "Wi-Fi",
  33. "platform": "iOS",
  34. "requestId": "fb972cbd4f390afcfd3da1869cd7d001",
  35. "sessionId": "362290597725ce1fa870d7be4f46dcc2",
  36. "subSessionId": "362290597725ce1fa870d7be4f46dcc2",
  37. "title": title,
  38. "token": "524a8bc871dbb0f4d4717895083172ab37c02d2f",
  39. "uid": uid,
  40. "versionCode": "486",
  41. "versionName": "3.4.12",
  42. "videoFromScene": "1",
  43. "videoPath": oss_path,
  44. "viewStatus": "1",
  45. }
  46. response = requests.post(
  47. url=url,
  48. headers=headers,
  49. data=payload,
  50. )
  51. return response.json()
  52. # response = await async_post(url, headers, payload)
  53. # return response
  54. async def getPQVideoDetail(video_id):
  55. """
  56. 获取票圈视频详情信息
  57. :return:
  58. """
  59. url = "https://longvideoapi.piaoquantv.com/longvideoapi/openapi/video/batchSelectVideoInfo"
  60. data = {
  61. "videoIdList": [video_id]
  62. }
  63. header = {
  64. "Content-Type": "application/json",
  65. }
  66. response = await async_post(url, header, json.dumps(data))
  67. return response
  68. async def getNewVideoIds(video_obj_list):
  69. """
  70. video
  71. :return:
  72. """
  73. vid_list = []
  74. for video_obj in video_obj_list:
  75. # video_obj 里面的信息对于历史数据可能不全,需要从pq获取
  76. print(json.dumps(video_obj, ensure_ascii=False, indent=4))
  77. try:
  78. if len(vid_list) >= 3:
  79. return vid_list
  80. else:
  81. pq_response = await publishToPQ(video_obj)
  82. video_id = pq_response['data']['id']
  83. vid_list.append(video_id)
  84. except:
  85. continue
  86. return vid_list