0

I am writing a program to convert video to audio using moviepy library. Problem is that I have installed this library import moviepy.editor as mp but when I run my program I am facing an error as follows:

 PS D:\MPhil CS\Semester 2\Multimedia Retrieval Techniques\Assignment1\MRT_Assignment1>  & 
'C:\Users\User\AppData\Local\Programs\Python\Python39\python.exe' 
'c:\Users\User\.vscode\extensions\ms-python.python- 
 2021.3.658691958\pythonFiles\lib\python\debugpy\launcher' '61484' '--' 'd:\MPhil CS\Semester 
 2\Multimedia Retrieval Techniques\Assignment1\MRT_Assignment1\mrt_retreival.py'
 Traceback (most recent call last):
 File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\site- 
 packages\IPython\utils\timing.py", line 27, in <module>
   import resource
 ModuleNotFoundError: No module named 'resource'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "d:\MPhil CS\Semester 2\Multimedia Retrieval 
Techniques\Assignment1\MRT_Assignment1\mrt_retreival.py", line 5, in <module>
import moviepy.editor as mp
File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\site-packages\moviepy\editor.py", line 
56, in <module>
from .video.io.html_tools import ipython_display
File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\site- 
packages\moviepy\video\io\html_tools.py", line 22, in <module>
from IPython.display import HTML
File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\site-packages\IPython\__init__.py", 
line 49, in <module>
from .terminal.embed import embed
File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\site- 
packages\IPython\terminal\embed.py", line 19, in <module>
from IPython.terminal.ipapp import load_default_config
File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\site- 
packages\IPython\terminal\ipapp.py", line 30, in <module>
from IPython.core.magics import ScriptMagics
File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\site- 
packages\IPython\core\magics\__init__.py", line 21, in <module>
from .execution import ExecutionMagics
File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\site- 
packages\IPython\core\magics\execution.py", line 46, in <module>
from IPython.utils.timing import clock, clock2
File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\site- 
packages\IPython\utils\timing.py", line 64, in <module>
clocku = clocks = clock = time.clock
AttributeError: module 'time' has no attribute 'clock'   

I am using VScode and my python version is 3.9.0. My code is as follows:

 from pytube import YouTube 
 from youtube_transcript_api import YouTubeTranscriptApi 
 import ffmpeg
 import moviepy.editor as mp

 # where to save  
 SAVE_PATH = "D:\\MPhil CS\\Semester 2\\Multimedia Retrieval 
 Techniques\\Assignment1\\MRT_Assignment1\\Video" #to_do  

 # link of the video to be downloaded  
  link="https://www.youtube.com/watch?v=2DFzxsy3PaM"

 try:  
   # object creation using YouTube 
   # which was imported in the beginning  
   yt = YouTube(link)  
 except:  
   print("Connection Error") #to handle exception  

 try:
   print("*********************** Video Title ***************************")
   print(yt.title)
   print("\n")

   print("*********************** Video Subtitles 
   ***************************")
   srt = YouTubeTranscriptApi.get_transcript("2DFzxsy3PaM")
   with open("subtitles_file.txt", 'w') as f:
      f.writelines('%s\n' % i for i in srt)    
   print("Subtitles written!!")
   print("\n")

   print("Downloading start...")
   yt.streams.filter(file_extension= 'mp4').first().download(SAVE_PATH)
   print("Video Downloaded!!")


   my_clip = mp.VideoFileClip(r"D:\\MPhil CS\\Semester 2\\Multimedia 
   Retrieval Techniques\\Assignment1\\MRT_Assignment1\\Video\\A fight 
   against the norm - 1 minute spoken word poetry for introverts.mp4")
   my_clip.audio.write_audiofile(r"D:\\MPhil CS\\Semester 2\\Multimedia 
   Retrieval Techniques\\Assignment1\\MRT_Assignment1\\Video\\abc.mp3")
   print("Audio Downloaded!!")
except:  
   print("Some Error!")  
print('Task Completed!')

I am new to Python and I am unable to resolve this. Thanks in advance for help.

2 Answers2

0

AttributeError: module 'time' has no attribute 'clock'
If you are using Python 38 and above, time. clock() is deprecated from the version (https://bugs.python.org/issue31803) So you can use time.perf_counter() instead of time.clock()

Vaman Acharya
  • 187
  • 1
  • 5
0

The error is happening inside import moviepy.editor as mp so the rest of your code is irrelevant.

It seems to be a bug in the IPython package being called by moviepy.editor. Check that it is fully up-to-date.

Alternatively you can avoid moviepy.editor entirely and do from moviepy.video.io.VideoFileClip import VideoFileClip.

Tom Burrows
  • 2,225
  • 2
  • 29
  • 46