app.py added
This commit is contained in:
parent
b12b698ba2
commit
9172bfa3db
53
app.py
Normal file
53
app.py
Normal file
|
@ -0,0 +1,53 @@
|
|||
import instaloader
|
||||
import concurrent.futures
|
||||
import PySimpleGUI as sg
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
# Create an instance of Instaloader class
|
||||
L = instaloader.Instaloader()
|
||||
|
||||
# Define function to download reel
|
||||
def download_reel(reel_url):
|
||||
try:
|
||||
post = instaloader.Post.from_shortcode(L.context, reel_url.split("/")[-2])
|
||||
L.download_post(post, target=str(Path(post.owner_username)))
|
||||
|
||||
# Delete all files except .mp4 in the post.owner_username directory
|
||||
for file in Path(post.owner_username).glob('*'):
|
||||
if not file.name.endswith('.mp4'):
|
||||
file.unlink()
|
||||
|
||||
return True
|
||||
except Exception as e:
|
||||
print(f"Error downloading reel: {e}")
|
||||
return False
|
||||
|
||||
def download_reels(values):
|
||||
reel_urls = values['-URLS-'].split('\n')
|
||||
with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
|
||||
results = list(executor.map(download_reel, reel_urls))
|
||||
|
||||
if all(results):
|
||||
sg.Popup('Success', 'All reels downloaded successfully.')
|
||||
else:
|
||||
sg.Popup('Error', 'One or more reels failed to download.')
|
||||
|
||||
# Define GUI layout
|
||||
layout = [[sg.Text('Enter Instagram Reel URLs (one URL per line):')],
|
||||
[sg.Multiline(size=(50, 10), key='-URLS-')],
|
||||
[sg.Button('Download Reels'), sg.Button('Exit')]]
|
||||
|
||||
# Create GUI window
|
||||
window = sg.Window('Instagram Reel Downloader', layout)
|
||||
|
||||
# Event loop to process "Download Reels" and "Exit" buttons
|
||||
while True:
|
||||
event, values = window.read()
|
||||
if event == sg.WIN_CLOSED or event == 'Exit':
|
||||
break
|
||||
elif event == 'Download Reels':
|
||||
download_reels(values)
|
||||
|
||||
# Close GUI window
|
||||
window.close()
|
Loading…
Reference in New Issue
Block a user