bluenevus commited on
Commit
7594178
·
verified ·
1 Parent(s): b94571d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -5
app.py CHANGED
@@ -10,19 +10,47 @@ import dash_bootstrap_components as dbc
10
  from pydub import AudioSegment
11
  import requests
12
  from pytube import YouTube
 
 
13
 
14
  # Configure logging
15
  logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
16
  logger = logging.getLogger(__name__)
17
 
 
 
 
 
 
 
 
 
 
 
 
 
18
  try:
19
  import moviepy.editor as mp
20
- # Initialize moviepy
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  mp.config.change_settings({"FFMPEG_BINARY": "ffmpeg"})
22
- logger.info("Moviepy successfully imported and initialized")
23
- except ImportError as e:
24
- logger.error(f"Error importing moviepy: {str(e)}")
25
- logger.error("Please ensure moviepy is installed correctly")
26
  raise
27
 
28
  # Initialize the Dash app
 
10
  from pydub import AudioSegment
11
  import requests
12
  from pytube import YouTube
13
+ import subprocess
14
+ import sys
15
 
16
  # Configure logging
17
  logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
18
  logger = logging.getLogger(__name__)
19
 
20
+ # Function to install a package using pip
21
+ def install_package(package):
22
+ logger.info(f"Attempting to install {package}")
23
+ try:
24
+ subprocess.check_call([sys.executable, "-m", "pip", "install", package])
25
+ logger.info(f"Successfully installed {package}")
26
+ return True
27
+ except subprocess.CalledProcessError as e:
28
+ logger.error(f"Failed to install {package}. Error: {str(e)}")
29
+ return False
30
+
31
+ # Try to import moviepy, install if not found
32
  try:
33
  import moviepy.editor as mp
34
+ logger.info("Moviepy successfully imported")
35
+ except ImportError:
36
+ logger.warning("Moviepy not found. Attempting to install...")
37
+ if install_package("moviepy"):
38
+ try:
39
+ import moviepy.editor as mp
40
+ logger.info("Moviepy successfully imported after installation")
41
+ except ImportError as e:
42
+ logger.error(f"Failed to import moviepy after installation. Error: {str(e)}")
43
+ raise
44
+ else:
45
+ logger.error("Failed to install moviepy. Please install it manually.")
46
+ raise ImportError("Could not import or install moviepy")
47
+
48
+ # Initialize moviepy
49
+ try:
50
  mp.config.change_settings({"FFMPEG_BINARY": "ffmpeg"})
51
+ logger.info("Moviepy successfully initialized")
52
+ except Exception as e:
53
+ logger.error(f"Failed to initialize moviepy. Error: {str(e)}")
 
54
  raise
55
 
56
  # Initialize the Dash app