Neon-AI commited on
Commit
b09c928
·
verified ·
1 Parent(s): c3038ce

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -34
app.py CHANGED
@@ -25,13 +25,12 @@ class StartPayload(BaseModel):
25
 
26
  def download_video(anime_id: str, episode: int, quality: str) -> str | None:
27
  url = f"{HF_AYANO_BASE}/anime/download?id={anime_id}&episode={episode}&quality={quality}"
28
- log(f"Fetching link for ep {episode} {quality}")
 
 
 
 
29
  try:
30
- headers = {
31
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
32
- "Referer": "https://animepahe.si/"
33
- }
34
-
35
  resp = requests.get(url, headers=headers, timeout=20)
36
  resp.raise_for_status()
37
  data = resp.json()
@@ -39,10 +38,9 @@ def download_video(anime_id: str, episode: int, quality: str) -> str | None:
39
  return None
40
  video_url = data["direct_link"]
41
  except:
42
- log(f"Failed to get link ep {episode} {quality}")
43
  return None
44
 
45
- headers = {"User-Agent": "Mozilla/5.0", "Referer": "https://animepahe.si/"}
46
  tmp_path = tempfile.mktemp(suffix=".mp4")
47
  log(f"Downloading ep {episode} {quality}")
48
  try:
@@ -69,7 +67,7 @@ def upload_to_0x0(file_path: str, file_name: str) -> str:
69
  r = requests.post(UPLOAD_URL, files={"file": (file_name, f)}, timeout=180)
70
  r.raise_for_status()
71
  url = r.text.strip()
72
- log(f"Uploaded {file_name}: {url}")
73
  return url
74
  except Exception as e:
75
  log(f"Upload failed: {e}")
@@ -103,44 +101,35 @@ def blur_video(input_path: str) -> str:
103
  "-c:v", "libx264", "-preset", "veryfast", "-crf", "23",
104
  "-c:a", "copy", output
105
  ]
106
- try:
107
- subprocess.run(cmd, check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
108
- return output
109
- except Exception as e:
110
- log(f"Blur failed: {e}")
111
- raise
112
 
113
  def process_anime(anime_id: str, anime_name: str):
114
- log(f"Started processing {anime_id} - {anime_name}")
115
  episode = 1
116
  while True:
117
- episode_processed = False
118
  for quality in QUALITIES:
119
  try:
120
- local_file = download_video(anime_id, episode, quality)
121
- if not local_file:
122
  continue
123
-
124
  log(f"Blurring ep {episode} {quality}")
125
- blurred_file = blur_video(local_file)
126
- os.remove(local_file)
127
-
128
- file_name = get_filename(anime_name, episode, quality)
129
- file_url = upload_to_0x0(blurred_file, file_name)
130
- os.remove(blurred_file)
131
-
132
- notify_render(anime_id, episode, quality, file_url, file_name, 2)
133
- episode_processed = True
134
-
135
- except Exception:
136
  notify_render(anime_id, episode, quality, "", "", 3)
137
-
138
- if not episode_processed:
139
  log("No more episodes")
140
  notify_render(anime_id, 0, "", "", "", 5)
141
  break
142
  episode += 1
143
- log("Processing complete")
144
 
145
  @app.post("/start")
146
  def start(payload: StartPayload, bg: BackgroundTasks):
 
25
 
26
  def download_video(anime_id: str, episode: int, quality: str) -> str | None:
27
  url = f"{HF_AYANO_BASE}/anime/download?id={anime_id}&episode={episode}&quality={quality}"
28
+ log(f"Fetching link ep {episode} {quality}")
29
+ headers = {
30
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/120.0 Safari/537.36",
31
+ "Referer": "https://animepahe.si/"
32
+ }
33
  try:
 
 
 
 
 
34
  resp = requests.get(url, headers=headers, timeout=20)
35
  resp.raise_for_status()
36
  data = resp.json()
 
38
  return None
39
  video_url = data["direct_link"]
40
  except:
41
+ log(f"Link failed ep {episode} {quality}")
42
  return None
43
 
 
44
  tmp_path = tempfile.mktemp(suffix=".mp4")
45
  log(f"Downloading ep {episode} {quality}")
46
  try:
 
67
  r = requests.post(UPLOAD_URL, files={"file": (file_name, f)}, timeout=180)
68
  r.raise_for_status()
69
  url = r.text.strip()
70
+ log(f"Uploaded: {url}")
71
  return url
72
  except Exception as e:
73
  log(f"Upload failed: {e}")
 
101
  "-c:v", "libx264", "-preset", "veryfast", "-crf", "23",
102
  "-c:a", "copy", output
103
  ]
104
+ subprocess.run(cmd, check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
105
+ return output
 
 
 
 
106
 
107
  def process_anime(anime_id: str, anime_name: str):
108
+ log(f"Started {anime_id} - {anime_name}")
109
  episode = 1
110
  while True:
111
+ processed = False
112
  for quality in QUALITIES:
113
  try:
114
+ file = download_video(anime_id, episode, quality)
115
+ if not file:
116
  continue
 
117
  log(f"Blurring ep {episode} {quality}")
118
+ blurred = blur_video(file)
119
+ os.remove(file)
120
+ name = get_filename(anime_name, episode, quality)
121
+ url = upload_to_0x0(blurred, name)
122
+ os.remove(blurred)
123
+ notify_render(anime_id, episode, quality, url, name, 2)
124
+ processed = True
125
+ except:
 
 
 
126
  notify_render(anime_id, episode, quality, "", "", 3)
127
+ if not processed:
 
128
  log("No more episodes")
129
  notify_render(anime_id, 0, "", "", "", 5)
130
  break
131
  episode += 1
132
+ log("Complete")
133
 
134
  @app.post("/start")
135
  def start(payload: StartPayload, bg: BackgroundTasks):