目的:每日自动保存Instagram限时Story

追星用,傻瓜向,废话流水账,菜狗的乱折腾
原脚本作者很久没有维护更新了,记录一下个人配置时遇到的各种问题和解决办法
以前写过一次,随着博客爆炸直接灰飞了,趁着这次重新设置再写一遍

PyInstaStories 用于保存Instagram限时Story
PyInstaLive 用于下载和录制InstaLive直播

两者都需要instagram_private_api进行登录,同样脚本很老可能导致账号被锁需要登陆验证
个人建议专门注册一个ins账号专门用于录制下载,并且规避频繁切换IP和登陆平台

因为主要目的是设置每日定时自动备份,而windows版本很少有人会全天候开机,所以这篇文章以vps架构为主,
如果想windows电脑手动进行下载的话可以参考Windows 电脑系统环境安装
安装完 python环境pipffmpeg 后,依照本文安装 instagram_private_api 及后续

Windows 电脑系统环境安装

### 1. 安装python环境

1.进入python官方下载页,脚本建议python 3.6+,所以我们选择下载python3,

32位还是64位依照你的系统来,建议安装64位

2.执行安装程序,记得勾选 Add Python 3.X to PATH (将Python 3.X 新增到 PATH),执行安装

安装完成以后,打开 Windows 的命令行程序(CMD命令提示符)
在窗口中输入python命令(注意字母p是小写的),
如果出现 Python 的版本信息,并看到命令提示符>>>,就说明安装成功了,如下图所示。

按下Ctrl+Z快捷键,或者输入exit()命令即可退出交互式编程环境,回到 Windows 命令行程序。

2. 安装pip

1.在Python官网上下载Windows版本pip安装包,下载地址:https://pypi.org/project/pip/#files

2.解压文件夹,复制文件夹的路径,路径中不要含有中文和特殊字符

3.CMD命令提示符,输入cd 文件夹路径

cd pip解压文件夹路径

4.输入python setup.py install运行安装

python setup.py install


在CMD控制台输入python -m pip --version,出现版本号则成功安装

如果显示'pip'不是内部命令,也不是可运行的程序,
说明缺少环境变量,需要在系统环境变量PATH中添加环境变量

3. 安装ffmpeg

1.进入官网,选择需要下载的文件,官方网址:http://ffmpeg.org/download.html#build
windows系统下需要下载二进制文件,我选择通过红色windows标识框选出进入新的页面下载


2.解压文件夹,复制bin文件夹的路径,路径中不要含有中文和特殊字符

3.计算机-属性-高级系统设置-环境变量-系统变量-Path-编辑,将bin文件夹路径添加进去,确定即可
该设置是win10设置,其他的系统可能需要通过";"分割

验证有没有安装成功可以通过CMD命令提示符,输入ffmpeg -version,如出现版本号则安装成功

服务器运营商:Vltur
系统版本:Ubuntu 18.04 LTS x64

安装环境和脚本


vltur Ubuntu 18.04需要先安装python和pip,
更高的版本自带python3会出现一些错误需要额外配置,这次设置比较匆忙就没用(。)

安装 python

apt install python

安装 pip

apt install python-pip

安装 instagram_private_api

pip install git+https://git@github.com/ping/instagram_private_api.git@1.6.0

安装 ffmpeg

apt install ffmpeg

下载修改PyInstaStories脚本


下载 pyinstastories.py 脚本,放置于自定路径

处理报错 Can't convert 'NoneType' object to str implicitly

----------------------------------------------------------------------
[I] PYINSTASTORIES (SCRIPT V2.6 - PYTHON V3.5.4) - 05:37:51 PM
----------------------------------------------------------------------
[W] Unable to find auth cookie file: credentials.json (creating a new one...)
[I] New auth cookie file was made: credentials.json
Traceback (most recent call last):
  File "pyinstastories.py", line 487, in <module>
    start()
  File "pyinstastories.py", line 415, in start
    ig_client = login(args.username, args.password)
  File "pyinstastories.py", line 121, in login
    print('[I] Login to "' + api.authenticated_user_name + '" OK!')
TypeError: Can't convert 'NoneType' object to str implicitly

将脚本内 Line 84 和 121 的api.authenticated_user_name修改为api.authenticated_user_id

处理报错 'ascii' codec can't encode characters PyInstaStories

在脚本line 8 import subprocess后添加如下代码

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

使用PyInstaStories脚本下载ins story


--username--password 输入用于下载的ins帐号用户名和密码
有些目标ins帐号story需要关注才可以查看,建议专门注册一个帐号用于关注目标帐号和下载,
并避免多IP多平台登录以免造成登录验证(因为脚本太老了所以没法处理登录验证)
--download 输入目标下载的ins帐号ID,多个帐号间用空格区分
--batch-file 输入罗列了目标下载ins帐号ID的txt文件
--output 保存输出路径,默认为PyInstaStories脚本所在路径文件夹
--taken-at 保存输出文件将以时间格式命名,例:2019-01-07_22-51-43.jpg
--no-thumbs 跳过下载视频预览图
--hq-videos 下载更高清的ins视频,需要安装ffmpeg. 还不稳定

示例:

cd pyinstastories.py 脚本所在路径
python pyinstastories.py --username ins帐号用户名 --password ins帐号密码 -d 目标ins帐号IDA 目标ins帐号IDB 目标ins帐号IDC --taken-at --hq-videos

使用crontab设置定时任务


使用crontab -e命令添加自定义的任务

0 */10 * * * cd pyinstastories.py脚本所在路径 && python pyinstastories.py --username ins帐号用户名 --password ins帐号密码 -d 目标ins帐号IDA 目标ins帐号IDB 目标ins帐号IDC --taken-at --hq-videos

上述代码为每10小时自动运行一次下载A、B、C的ins story,
也可借cron生成工具设置自己想要的定时时间
service cron restart重启cron服务

最后我会搭配使用rclone将文件同步保存至网盘

最后修改:2022 年 05 月 31 日
如果觉得我的文章对你有用,请随意赞赏