pqFunctions.py 2.6 KB

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