Le motif est presque le même que celui de l'article précédent (Utilisez Pythonista3 pour lire Twitter TL à haute voix sur iphone). Cette fois, seules les images et vidéos sont extraites des résultats de recherche Twitter et automatiquement enregistrées sur l'iPhone.
iPhone8 13.2.3 Pythonista3 3.2 Tweepy 3.8.0
・ Installation de Pythonista3 ・ Application d'inscription à l'API Twitter ・ Installation de StaSh ・ Installation de tweepy, requêtes, youtube-dl
sav_photo_video.py
#!Pythonista3
#Un programme qui stocke des images qui correspondent à la recherche de Twitter dans l'album iPhone
import os, requests, photos, youtube_dl
import twitterconfig
from twitterconfig import api
#Une fonction qui renvoie une liste d'urls d'image et de vidéo à partir des mots que vous recherchez
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_Une fonction qui prend la liste comme argument et enregistre chaque vidéo
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_Une fonction qui prend la liste comme argument et enregistre chaque image
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('Le mot que vous souhaitez rechercher\n')
hosiikazu = int(input('Combien d'images voulez-vous\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) + 'La semaine')
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('Fin de la sauvegarde(Nombre d'images:' + str(gazou_suu) + ' ,Nombre de vidéos:' + str(douga_suu) + ')')
Etat initial. Il n'y a pas de photos ou d'albums.
Ouvrez le programme et spécifiez le mot-clé de recherche et le nombre minimum de feuilles que vous souhaitez enregistrer
Attendez un moment···
Lorsque la sauvegarde est terminée, elle est terminée.
Si vous le regardez à nouveau, un album sera créé automatiquement et les images enregistrées cette fois seront stockées.
La vidéo se trouve dans le répertoire contenant le code dans pythonista.
Je ne savais pas comment mettre une vidéo dans un album comme une photo. (Les photos de pythonista ne sont-elles pas compatibles avec les vidéos?) S'il vous plaît laissez-moi savoir si quelqu'un sait. Veuillez modifier la limite du nombre de recherches et la méthode de recherche afin de pouvoir l'utiliser facilement.
Ce qui m'intéressait après l'avoir utilisé plusieurs fois ○ Meilleur moyen d'enregistrer des vidéos Pour le moment, j'ai pensé que je devrais pouvoir diviser les dossiers quand j'en aurais le temps.
○ Suppression automatique des images en double Si vous recherchez plusieurs fois avec le même mot-clé, la même image sera enregistrée ici et là. J'essaie de ne pas faire un album avec le même nom, mais j'ai pensé que ce serait bien s'il y avait une partie pour comparer les résultats de la recherche avec l'album existant.
Ce que je veux faire a pris forme! Cependant, il semble y avoir plus de place à l'amélioration pour le rendre plus facile à utiliser ...
Recommended Posts