update
This commit is contained in:
94
getAudio.py
Normal file
94
getAudio.py
Normal file
@@ -0,0 +1,94 @@
|
||||
import json
|
||||
import time
|
||||
|
||||
import requests
|
||||
from IPython.display import Audio,display
|
||||
from pydub import AudioSegment
|
||||
import os
|
||||
import random
|
||||
|
||||
with open('audio.json', encoding="UTF-8") as f:
|
||||
audios = json.load(f)
|
||||
# print(type(audios[1])) # Output: dict
|
||||
# TODO: 优化代码
|
||||
|
||||
course_id = str(audios[1]['course_id'])
|
||||
os.makedirs(course_id, exist_ok=True)
|
||||
|
||||
# 遍历
|
||||
audio_list = []
|
||||
for audio in audios:
|
||||
# t = random.randint(1, 10)
|
||||
# time.sleep(1)
|
||||
category = audio['category']
|
||||
# requests.adapters.DEFAULT_RETRIES = 100
|
||||
# 获取音频内容
|
||||
i = 1
|
||||
while(i >= 1):
|
||||
try:
|
||||
if category == "PLAIN_AUDIO":
|
||||
url = audio['attachment']['url']
|
||||
# print(url)
|
||||
audio = requests.get(url)
|
||||
# print(audio.status_code)
|
||||
# display(Audio(audio.content))
|
||||
audio_list.append(audio.content)
|
||||
# print(audio['attachment']['url'])
|
||||
# filename = os.path.basename(url)
|
||||
# with open(os.path.join(course_id, filename), 'wb') as file:
|
||||
# file.write(audio.content)
|
||||
# 获取文本笔记
|
||||
elif category == "PLAIN_TEXT":
|
||||
text = audio['text']
|
||||
print(text)
|
||||
with open(os.path.join(course_id, course_id + 'note.txt'), 'a') as file:
|
||||
file.write(text)
|
||||
file.write("\n")
|
||||
# 获取其他可下载附件
|
||||
elif category != "MESSAGE_RECALL":
|
||||
# print(audio['category'])
|
||||
if 'attachment' in audio:
|
||||
url = audio['attachment']['url']
|
||||
# print(audio['attachment']['url'])
|
||||
attachment = requests.get(url)
|
||||
filename = os.path.basename(url)
|
||||
with open(os.path.join(course_id, filename), 'wb') as file:
|
||||
file.write(attachment.content)
|
||||
# 获取其他内容
|
||||
else:
|
||||
print(audio['category'])
|
||||
if 'attachment' in audio:
|
||||
print(audio['attachment']['url'])
|
||||
i = 0
|
||||
except:
|
||||
i += 1
|
||||
print("get file failed")
|
||||
if 'attachment' in audio:
|
||||
print(audio['attachment']['url'])
|
||||
|
||||
# 处理获取所有音频文件
|
||||
audio_seg_list = []
|
||||
for i in audio_list:
|
||||
with open('temp.mp3', 'wb') as file:
|
||||
file.write(i)
|
||||
audio_part = AudioSegment.from_mp3('temp.mp3')
|
||||
# audio_part = AudioSegment.from_mp3(i)
|
||||
audio_seg_list.append(audio_part)
|
||||
|
||||
# print(len(audio_seg_list))
|
||||
x = sum(audio_seg_list)
|
||||
|
||||
# 递归求和
|
||||
# def sumOfList(list, size):
|
||||
# if (size == 0):
|
||||
# return 0
|
||||
# else:
|
||||
# return list[size - 1] + sumOfList(list, size - 1)
|
||||
#
|
||||
# total = sumOfList(list1, len(list1))
|
||||
|
||||
audio_name = course_id + '/' + course_id + '.mp3'
|
||||
|
||||
x.export(audio_name, format="mp3")
|
||||
|
||||
display(Audio(audio_name))
|
||||
Reference in New Issue
Block a user