其他|腾讯视频自动签到(Python + 腾讯云函数实现)

环境准备 【其他|腾讯视频自动签到(Python + 腾讯云函数实现)】腾讯云函数
签到代码 现版本的腾讯视频每天都需要手动签到获取V力值才能升级,有时候还容易忘记。作为一名程序员,这种重复的工作我们当然让程序来干啦!参考了一些大佬的文章,结合自己的测试,将代码做了一定的简化。话不多说,先上一段代码,再给大家逐步讲解。

def tencent_video_sign_in(): """ 腾讯视频签到函数 """ millisecond_time = round(time.time() * 1000)login_url = "https://access.video.qq.com/user/auth_refresh" \ "?vappid=1******4" \ "&vsecret=f******e" \ "&type=qq" \ "&g_vstk=3******7" \ "&g_actk=1******2" \ f"&_={millisecond_time}"login_cookie = "vqq_vuserid=1******9; " \ "vqq_openid=0******A; " \ "vqq_access_token=5******A; " \ "vqq_vusession=v******.; "login_headers = { 'Referer': 'https://v.qq.com', 'Cookie': login_cookie }login_rsp = requests.get(url=login_url, headers=login_headers) login_rsp_cookie = requests.utils.dict_from_cookiejar(login_rsp.cookies) print(login_rsp_cookie) if login_rsp.status_code == 200 and login_rsp_cookie: auth_cookie = "main_login=qq; " \ f"vqq_vusession={login_rsp_cookie['vqq_vusession']}; "print(auth_cookie) sign_in_url = "https://vip.video.qq.com/fcgi-bin/comm_cgi?name=hierarchical_task_system&cmd=2" \ f"&_={str(millisecond_time)}"sign_headers = { "User-Agent": "Mozilla/5.0 (Linux; U; Android 8.1.0; zh-cn; Mi Note 3 Build/OPM1.171019.019) " "AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 " "Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.0.2", "Cookie": auth_cookie } sign_rsp = requests.get(url=sign_in_url, headers=sign_headers) sign_rsp_str = sign_rsp.text # QZOutputJson=({ "ret": 0,"checkin_score": 0,"msg":"OK"}); # QZOutputJson=({"msg":"Account Verify Error","ret":-10006}); start_index = sign_rsp_str.index("(") end_index = sign_rsp_str.index(")") rsp_dict = json.loads(sign_rsp_str[start_index + 1:end_index])if rsp_dict.get("ret") == -10006: result_msg = "腾讯视频-签到结果:{}".format("Cookie无效!") elif rsp_dict.get("ret") == 0: result_msg = "腾讯视频-签到结果:{}({})".format("签到成功!", rsp_dict.get("checkin_score")) else: result_msg = "腾讯视频-签到结果:{}".format("未知错误!!!") else: result_msg = "腾讯视频-签到结果:{}".format("未获取到Cookie信息!") print(result_msg) return result_msg

上面代码打上*号的部分,是需要根据自己的情况获取并填写的信息。
Cookie获取步骤 以下步骤以Google Chrome浏览器为例:
  1. 打开腾讯视频;
  2. F12打开控制台,在Network中过滤auth_refresh关键词;
  3. 登录自己的腾讯视频账号,登录之后会出现链接,点击链接即可在右边看到详细信息;
  4. 将链接中的vappid,vsecret,g_vstk的参数值复制到自己的代码中去;
    其他|腾讯视频自动签到(Python + 腾讯云函数实现)
    文章图片

    其他|腾讯视频自动签到(Python + 腾讯云函数实现)
    文章图片
  5. 打开Cookie页面,把返回的Cookie信息填入自己的代码中;
    其他|腾讯视频自动签到(Python + 腾讯云函数实现)
    文章图片

    其他|腾讯视频自动签到(Python + 腾讯云函数实现)
    文章图片
签到结果微信通知 参照:https://wxpusher.zjiecode.com/docs/
贴一段推送签到结果的代码供大家参考:
def weixin_notification(msg): token = "AT_****XXXXXX" url = "http://wxpusher.zjiecode.com/api/send/message" body = { "appToken": token, "content": msg, "contentType": 1, "uids": [ "XXX****XXX" ] } headers = { 'Content-Type': 'application/json' } response = requests.post(url=url, headers=headers, json=body) print(response.text)

腾讯云函数部署 部署到腾讯云函数,开启每天定时执行函数签到
链接:https://console.cloud.tencent.com/scf/list
  1. 新建一个云函数
    其他|腾讯视频自动签到(Python + 腾讯云函数实现)
    文章图片
  2. 在下面把自己的代码复制粘贴进去
    其他|腾讯视频自动签到(Python + 腾讯云函数实现)
    文章图片

    代码段如下,部分信息已打码,须按上述方式根据自己的实际情况来填:
# -*- coding: utf8 -*- import requests import requests.utils import time import jsondef tencent_video_sign_in(): """ 腾讯视频签到函数 """ millisecond_time = round(time.time() * 1000)login_url = "https://access.video.qq.com/user/auth_refresh" \ "?vappid=1******4" \ "&vsecret=f******e" \ "&type=qq" \ "&g_vstk=3******7" \ "&g_actk=1******2" \ f"&_={millisecond_time}"login_cookie = "vqq_vuserid=1******9; " \ "vqq_openid=0******A; " \ "vqq_access_token=5******A; " \ "vqq_vusession=v******.; "login_headers = { 'Referer': 'https://v.qq.com', 'Cookie': login_cookie }login_rsp = requests.get(url=login_url, headers=login_headers) login_rsp_cookie = requests.utils.dict_from_cookiejar(login_rsp.cookies) print(login_rsp_cookie) if login_rsp.status_code == 200 and login_rsp_cookie: auth_cookie = "main_login=qq; " \ f"vqq_vusession={login_rsp_cookie['vqq_vusession']}; "print(auth_cookie) sign_in_url = "https://vip.video.qq.com/fcgi-bin/comm_cgi?name=hierarchical_task_system&cmd=2" \ f"&_={str(millisecond_time)}"sign_headers = { "User-Agent": "Mozilla/5.0 (Linux; U; Android 8.1.0; zh-cn; Mi Note 3 Build/OPM1.171019.019) " "AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 " "Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.0.2", "Cookie": auth_cookie } sign_rsp = requests.get(url=sign_in_url, headers=sign_headers) sign_rsp_str = sign_rsp.text # QZOutputJson=({ "ret": 0,"checkin_score": 0,"msg":"OK"}); # QZOutputJson=({"msg":"Account Verify Error","ret":-10006}); start_index = sign_rsp_str.index("(") end_index = sign_rsp_str.index(")") rsp_dict = json.loads(sign_rsp_str[start_index + 1:end_index])if rsp_dict.get("ret") == -10006: result_msg = "腾讯视频-签到结果:{}".format("Cookie无效!") elif rsp_dict.get("ret") == 0: result_msg = "腾讯视频-签到结果:{}({})".format("签到成功!", rsp_dict.get("checkin_score")) else: result_msg = "腾讯视频-签到结果:{}".format("未知错误!!!") else: result_msg = "腾讯视频-签到结果:{}".format("未获取到Cookie信息!") print(result_msg) return result_msgdef weixin_notification(msg): token = "AT_****XXXXXX" url = "http://wxpusher.zjiecode.com/api/send/message" body = { "appToken": token, "content": msg, "contentType": 1, "uids": [ "XXX****XXX" ] } headers = { 'Content-Type': 'application/json' } response = requests.post(url=url, headers=headers, json=body) print(response.text)def main_handler(event, context): result = tencent_video_sign_in() weixin_notification(result) return resultif __name__ == '__main__': weixin_notification(tencent_video_sign_in())

  1. 配置触发器,每天上午10点执行,如图:
    其他|腾讯视频自动签到(Python + 腾讯云函数实现)
    文章图片
  2. 部署完成之后我们测试一下
    其他|腾讯视频自动签到(Python + 腾讯云函数实现)
    文章图片

    推荐阅读