1
+ import subprocess
1
2
import requests
2
3
from bs4 import BeautifulSoup , NavigableString , Tag
3
4
from fake_useragent import UserAgent
@@ -153,6 +154,10 @@ def get_anime_episode(episode_endpoint: str) -> list:
153
154
154
155
return [f"{ BASE_URL } { episode_url } " , f"{ BASE_URL } { download_url } " ]
155
156
157
+ def download_video (download_url : str , output_filename : str ):
158
+ """Download video using ffmpeg."""
159
+ command = ['ffmpeg' , '-i' , download_url , output_filename ]
160
+ subprocess .run (command , check = True )
156
161
157
162
if __name__ == "__main__" :
158
163
anime_name = input ("Enter anime name: " ).strip ()
@@ -173,16 +178,28 @@ def get_anime_episode(episode_endpoint: str) -> list:
173
178
174
179
episode_list = search_anime_episode_list (chosen_anime ["url" ])
175
180
if len (episode_list ) == 0 :
176
- print ("No episode found for this anime" )
181
+ print ("No episodes found for this anime" )
177
182
else :
178
183
print (f"Found { len (episode_list )} results: " )
179
184
for i , episode in enumerate (episode_list ):
180
- print (f"{ i + 1 } . { episode ['title' ]} " )
185
+ print (f"{ i + 1 } . { episode ['title' ]} " )
181
186
182
- episode_choice = int (input ("\n Choose an episode by serial no : " ).strip ())
187
+ episode_choice = int (input ("\n Choose an episode by serial number : " ).strip ())
183
188
chosen_episode = episode_list [episode_choice - 1 ]
184
189
print (f"You chose { chosen_episode ['title' ]} . Searching..." )
185
190
186
191
episode_url , download_url = get_anime_episode (chosen_episode ["url" ])
187
192
print (f"\n To watch, ctrl+click on { episode_url } ." )
188
- print (f"To download, ctrl+click on { download_url } ." )
193
+
194
+
195
+ # Add an option to download or not
196
+ download_choice = input ("\n Do you want to download this episode? (yes/no): " ).strip ().lower ()
197
+ if download_choice in ["yes" , "y" ]:
198
+ output_filename = f"{ chosen_anime ['title' ]} - { chosen_episode ['title' ]} .mp4" # Change extension as needed
199
+ download_video (download_url , output_filename )
200
+ print (f"{ chosen_episode ['title' ]} has been downloaded as { output_filename } ." )
201
+ else :
202
+ print ("Download skipped." )
203
+
204
+ #if error download please install ffmeg
205
+ #brew install ffmpeg for mac
0 commit comments