使用PyInstaStories自動保存InsStory(快拍)內容

算是對前文 使用PyInstalive录制Instagram直播及回放视频RSS訂閱實現SNS相關更新自動抓取收集 的一個擴展衍生。同樣是因為追星而折騰起的內容。

Instagram Stories(也就是國內叫的快拍)因為有24小時公開展示時間限時,超過時間除非發佈用戶將其收錄至公開精選裡,不然就再也看不到了。所以及時保存story的內容還是很有必要的。

使用的核心工具是 PyInstaStories (腳本作者就是發佈PyInstalive的那位)
目標是 脫機定期自動保存 關注對象在Instagram Stories裡發佈的照片及視頻

前言屁話太多了,敲 這裡 直接跳轉到正題 <<<<

目前網絡上已經有不少免費工具可以用來保存 Instagram Stories 的內容,google搜 ins story save 或 download 一搜一大把,例如 storysaverstoriesig 。但是因為每次需要手動輸入手動下載,我懶(靠),加上關注的有幾位更新特別勤又幾位又幾百年才更一次… 事情一多就有可能會有遺漏。所以還是希望可以進行自動保存來解放雙手 和腦子  。

既然 目標是 脫機定期自動保存 那肯定是需要服務器了。不然手機啊電腦啊一堆的工具也不用瞎折騰了。

前文提到的RSS訂閱實現更新自動保存那文裡,雖然可以將story裡發佈的照片及時自動保存下來,但是因為功能軟件的局限性視頻無法直接被存儲備份下來,所以依舊不能百分百達成我們的要求。

然後看到之前寫錄製InsLive腳本的作者還寫過一個腳本就是用來保存InsStory的,掃了一下安裝和環境需求,比配置自動錄InsLive還簡單,行了就是你了。這個腳本就是 PyInstaStories


我安裝使用腳本的系統環境是 Ubuntu 19.10,服務器是vltur家的

PyInstaStories 腳本地址:https://github.com/notcammy/PyInstaStories

使用該腳本需要依託另一個腳本 instagram_private_api 
instagram_private_api 腳本地址:https://github.com/ping/instagram_private_api

安裝步驟:

安裝 instagram_private_api

pip install git+https://[email protected]/ping/[email protected]

下載腳本至服務器(下述操作默認是放在 /root 根目錄下了)

git clone https://github.com/notcammy/PyInstaStories.git

這個時候進入 PyInstaStories 文件夾 ( cd /root/PyInstaStories )運行下述指令就已經可以保存Story內容了

python pyinstastories.py --username 用戶名 --password 密碼 -d 目標對象InsID

保存的文件將會存儲在 /root/PyInstaStories/stories裡,重複的文件不會下載
另外,為了方便辨認文件我們可以在指令裡填上 --taken-at 來讓保存的文件以日期時間命名
而如果想一次性下載多個對象的Instory,則以空格來間隔它們的ID,即如下
Ps: python版本是3.7的就输入python3,或者多安装个python2.7

python pyinstastories.py --taken-at --username 用戶名 --password 密碼 -d 目標對象AInsID 目標對象BInsID 目標對象CInsID

配置自動定期執行自動保存

使用crontab指令配置脫機定期執行腳本,詳細內容見 前文鏈接 這裡不再重複了
https://crontab-generator.org/ 設定定期執行的時間並在Command裡輸入如下(”[“”]”不需要)
Ps: python版本是3.7的就把指令裡python都替換成python3,或者多安装个python2.7 (復讀。

cd [pyinstastories.py文件所在的路徑] && [輸入 whcih python 得到的路徑] pyinstastories.py --taken-at --username 用戶名 --password 密碼 -d 目標對象AInsID 目標對象BInsID 目標對象CInsID

按照我這邊給出的步驟所得的路徑,以及設定每小時運行一次的話,會得到如下指令,將其輸入到 運行指令crontab -e 打開的文件裡(具體操作依舊見 前文鏈接

0 * * * * cd /root/PyInstaStories && /usr/bin/python pyinstastories.py --taken-at --username 用戶名 --password 密碼 -d 目標對象AInsID 目標對象BInsID 目標對象CInsID >/dev/null 2>&1

保存,搞定
另外就是ins有反爬機制,好像是說同一IP 24小時內訪問不建議超過300次
所以刷新時間間隔不易過短頻率過高。(我不死心設置了5分鐘一次,然我看看結果ry)


发表评论