Das Motiv ist fast das gleiche wie im vorherigen Artikel (Verwenden Sie Pythonista3, um Twitter TL laut auf dem iPhone vorzulesen). Dieses Mal werden nur Bilder und Videos aus den Twitter-Suchergebnissen extrahiert und automatisch auf dem iPhone gespeichert.
iPhone8 13.2.3 Pythonista3 3.2 Tweepy 3.8.0
・ Installation von Pythonista3 ・ Twitter API-Registrierungsanwendung ・ Installation von StaSh ・ Installation von Tweepy, Anfragen, Youtube-DL
sav_photo_video.py
#!Pythonista3
#Ein Programm, das Bilder speichert, die der Suche von Twitter im iPhone-Album entsprechen
import os, requests, photos, youtube_dl
import twitterconfig
from twitterconfig import api
#Eine Funktion, die eine Liste von Bild- und Video-URLs aus den gesuchten Wörtern zurückgibt
def twitter_to_url_out(q, max_id):
gazou_suu = 0
douga_suu = 0
kensakukekka = api.search(q = q, count = 20, max_id = max_id)
if max_id != None:
kensakukekka = kensakukekka[1:]
gazou_url_list = []
douga_url_list = []
max_id_list = []
for match_tweet in kensakukekka:
max_id_list.append(match_tweet.id)
try:
video_url = match_tweet.extended_entities['media'][0]['video_info']['variants'][1]['url']
douga_url_list.append(video_url)
except:
try:
for x in match_tweet.extended_entities['media']:
gazou_url = x['media_url']
gazou_url_list.append(gazou_url)
except:
continue
max_id = min(max_id_list)
gazou_url_list = sorted(set(gazou_url_list), key=gazou_url_list.index)
douga_url_list = sorted(set(douga_url_list), key=douga_url_list.index)
return max_id, gazou_url_list, douga_url_list
#url_Eine Funktion, die Liste als Argument verwendet und jedes Video speichert
def douga_hozon(urllist):
douga_suu = 0
for url in urllist:
try:
with youtube_dl.YoutubeDL() as ydl:
ydl.download([url])
douga_suu += 1
except:
continue
return douga_suu
#url_Eine Funktion, die Liste als Argument verwendet und jedes Bild speichert
def gazou_hozon(urllist):
gazou_list = []
for url in urllist:
response = requests.get(url)
try:
response.raise_for_status()
except:
continue
filename = str(url.split('/')[-1])
newfile = open(filename,'wb')
for chunk in response.iter_content(10000):
newfile.write(chunk)
newfile.close()
gazou_list.append(filename)
image_asset_list = []
for gazou in gazou_list:
image_asset = photos.create_image_asset(gazou)
image_asset_list.append(image_asset)
try:
os.remove(gazou)
except:
continue
album_list = photos.get_albums()
album_name_dict = {}
number = 0
for album in album_list:
album_name = str(album).split('"')[1]
album_name_dict[album_name] = number
number += 1
if kensakukotoba in album_name_dict.keys():
new_album = album_list[int(album_name_dict[kensakukotoba])]
else:
new_album = photos.create_album(kensakukotoba)
new_album.add_assets(image_asset_list)
gazou_suu = len(image_asset_list)
return gazou_suu
kensakukotoba = input('Das Wort, nach dem Sie suchen möchten\n')
hosiikazu = int(input('Wie viele Bilder möchten Sie?\n'))
max_id = None
s_gazou_url_list = []
s_douga_url_list = []
syu_kai = 1
while len(s_gazou_url_list) < hosiikazu:
print(str(syu_kai) + 'Woche')
max_id, gazou_url_list, douga_url_list = twitter_to_url_out(q = kensakukotoba, max_id = max_id)
syu_kai += 1
for gazou_url in gazou_url_list:
s_gazou_url_list.append(gazou_url)
for douga_url in douga_url_list:
s_douga_url_list.append(douga_url)
s_gazou_url_list = sorted(set(s_gazou_url_list), key=s_gazou_url_list.index)
s_douga_url_list = sorted(set(s_douga_url_list), key=s_douga_url_list.index)
if syu_kai == 30:
break
douga_suu = douga_hozon(s_douga_url_list)
gazou_suu = gazou_hozon(s_gazou_url_list)
print('Ende des Speicherns(Anzahl der Bilder:' + str(gazou_suu) + ' ,Anzahl der Videos:' + str(douga_suu) + ')')
Ausgangszustand. Es gibt keine Fotos oder Alben.
Öffnen Sie das Programm und geben Sie das Suchwort und die Mindestanzahl der Blätter an, die Sie speichern möchten
Moment mal···
Wenn das Speichern abgeschlossen ist, ist es beendet.
Wenn Sie es sich noch einmal ansehen, wird automatisch ein Album erstellt und die diesmal gespeicherten Bilder werden gespeichert.
Das Video befindet sich in dem Verzeichnis, das den Code in Pythonista enthält.
Ich wusste nicht, wie ich ein Video wie ein Foto in ein Album einfügen sollte. (Sind die Fotos von Pythonista nicht mit Videos kompatibel?) Bitte lassen Sie mich wissen, wenn jemand es weiß. Bitte ändern Sie die Anzahl der Suchvorgänge und die Suchmethode, damit Sie sie problemlos verwenden können.
Was mich interessierte, nachdem ich es mehrmals benutzt hatte ○ Besserer Weg zum Speichern von Videos Vorläufig dachte ich, ich sollte in der Lage sein, die Ordner zu teilen, wenn ich Zeit habe.
○ Automatisches Löschen doppelter Bilder Wenn Sie mehrmals mit demselben Schlüsselwort suchen, wird hier und da dasselbe Bild gespeichert. Ich versuche, kein Album mit demselben Namen zu erstellen, aber ich dachte, es wäre schön, wenn es einen Teil gäbe, um die Suchergebnisse mit dem vorhandenen Album zu vergleichen.
Was ich tun möchte, hat Gestalt angenommen! Es scheint jedoch mehr Raum für Verbesserungen zu geben, um die Verwendung zu vereinfachen ...
Recommended Posts