自动播放快手极速版视频

说明:

这是使用python写的一个自动播放快手极速版视频的程序,比如累了可以把手机放在支架上自动播放,观看视频,还可以刷金币;遇到直播或者广告会直接跳过,还可以控制播放多少条视频后退出,也可以自动给视频点赞送小红心;可以解放自己的双手,边看视频,边写代码美滋滋

连接方式

  • 第一种:数据线连接手机
  • 第二种:局域网连接手机,最好是家里的wifi
  • Android手机+笔记本电脑(台式电脑也可以)
  • wifi连接容易出错(10061),连不上的解决办法放代码开头部分了

直接上代码

from appium import webdriver
from time import sleep

"""
Android 网络调试 tcpip 开启方法以及10061错误解决方法
1.  将安卓设备usb连接到电脑
2.  设备链接到wifi
3.  Ping设备ip,检查是否可通信
4.  在cmd依次输入以下命令:
5.  adb usb
6.  adb kill-server
7.  adb tcpip 5555
8.  adb connect youip:5555
9.  拔掉usb插头即可
"""


def next_video(driver):
    return driver.swipe(500, 1800, 500, 200)


def zhibo(driver):
    """直播直接划走"""
    try:
        driver.find_element_by_id('com.kuaishou.nebula:id/like_button')
        el = True
    except:
        print('\t——直播直接划走')
        next_video(driver)  # 滑动动作,下一条视频
        el = False
    return el


def lt(timestr):
    t_split = timestr.split(':')
    t_split_m = int(t_split[0])
    t_split_s = int(t_split[1])
    times = t_split_m*60+t_split_s-22
    return times


def dianzan(driver, el):
    """
    判断是否有点赞:
        有点赞:点击屏幕判断是否有时间长度
        有:获取时间长度,并返回/s
        无:返回时间长度10s
    """
    if el:
        driver.tap([(500, 1000)])  # 点击动作,点击屏幕中心
        sleep(1)
        try:
            el_t = driver.find_element_by_id('com.kuaishou.nebula:id/player_duration')
            times = lt(el_t.text)
            print('\t——有点赞,不是直播,%d 秒后切换到下一条视频'%times)
            driver.tap([(1000, 1736)])  # 点击动作,点赞
        except:
            print('\t——视频时间比较短,10 秒后切换到下一条视频')
            times = 10
    else:
        times = 10
    return times


def connect(tcpip, udid_dataLine:str, udid_wifi:str, Android_version:str):
    """
    连接手机
    :param tcpip:
    :return: driver
    """
    desired_caps = {
        'platformName': 'Android',
        'platformVersion': Android_version,
        'deviceName': 'yourPhoneName',
        'appPackage': 'com.kuaishou.nebula',
        'appActivity': 'com.yxcorp.gifshow.HomeActivity',
        'noReset': 'True'
    }
    if tcpip:
        desired_caps['udid'] = '%s:5555'%udid_wifi     # 通过局域网 tcpip 协议连接
    else:
        desired_caps['udid'] = '%s'%udid_dataLine
    driver = webdriver.Remote(command_executor='http://127.0.0.1:4723/wd/hub',
                              desired_capabilities=desired_caps)
    return driver


def main(tcpip=False, play=False, Android_version='9.0', udid_dataLine:str='', udid_wifi:str=''):
    """
    入口程序
    :param tcpip: True 使用局域网wifi连接手机,False使用数据线连接手机
    :param play: True 最大长度播放每条视频,False固定每条视频播放30秒
    :return: None
    """
    i = 0
    # 连接手机
    driver = connect(tcpip, udid_dataLine, udid_wifi, Android_version)
    sleep(5)
    if play:
        num = int(input('请输入播放视频数量:'))
        # 浏览视频
        while i < num:
            i += 1
            print('正在播放第 %d 条,还剩 %d 条视频' % (i, num - i))
            sleep(1)
            driver.implicitly_wait(3)
            el = zhibo(driver)
            times = dianzan(driver, el)
            sleep(times)
            next_video(driver)  # 滑动动作,下一条视频
        print('%d 条视频播放完毕,退出程序'%num)
    else:
        num = 1000
        # 浏览视频
        while i < num:
            i += 1
            print('正在播放第 %d 条,还剩 %d 条视频' % (i, num - i))
            sleep(30)
            next_video(driver)  # 滑动动作,下一条视频
        print('%d 条视频播放完毕,退出程序' % num)
    driver.quit()


if __name__ == '__main__':
    """
    tcpip: True 使用局域网wifi连接手机,False使用数据线连接手机
    play: True 最大长度播放每条视频,False固定每条视频播放30秒
    udid_dataLine:数据连接
        tcpip=False时,udid_dataLine不能为空
        udid_wifi可以为空
    udid_wifi:wifi连接
        tcpip=True时,udid_wifi不能为空
        udid_wifi=局域网手机ip地址
        udid_dataLine可以为空
    Android_version:手机Android版本
        9.0可以为空
    """
    main(tcpip=True, play=False, udid_dataLine='adb devices 的udid', udid_wifi='你的手机ip', Android_version='安卓版本')




后言

经过运行是OK的,如果有好的建议或是有什么疑问欢迎在下方留言,谢谢。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值