[~] Refactor
This commit is contained in:
parent
ec7e2712eb
commit
5cb6394e27
@ -24,6 +24,7 @@ class tiktok_config_t:
|
|||||||
project_root: str=''
|
project_root: str=''
|
||||||
cache: str=''
|
cache: str=''
|
||||||
videos: str=''
|
videos: str=''
|
||||||
|
audios: str=''
|
||||||
|
|
||||||
def tiktok_config() -> tiktok_config_t.res_t:
|
def tiktok_config() -> tiktok_config_t.res_t:
|
||||||
res = tiktok_config_t.res_t(
|
res = tiktok_config_t.res_t(
|
||||||
@ -43,8 +44,13 @@ def tiktok_config() -> tiktok_config_t.res_t:
|
|||||||
res.cache,
|
res.cache,
|
||||||
'videos',
|
'videos',
|
||||||
)
|
)
|
||||||
|
res.audios = os.path.join(
|
||||||
|
res.cache,
|
||||||
|
'audios',
|
||||||
|
)
|
||||||
|
|
||||||
os.makedirs(res.videos, exist_ok=True)
|
os.makedirs(res.videos, exist_ok=True)
|
||||||
|
os.makedirs(res.audios, exist_ok=True)
|
||||||
|
|
||||||
return res
|
return res
|
||||||
|
|
||||||
@ -269,6 +275,8 @@ def tiktok_videos_process(meta: Iterable[dict[str, Any]]) -> dict[str, Any]:
|
|||||||
error=0,
|
error=0,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
song = audio_get()
|
||||||
|
|
||||||
for o in tqdm.tqdm(meta):
|
for o in tqdm.tqdm(meta):
|
||||||
stats['total'] += 1
|
stats['total'] += 1
|
||||||
|
|
||||||
@ -282,13 +290,27 @@ def tiktok_videos_process(meta: Iterable[dict[str, Any]]) -> dict[str, Any]:
|
|||||||
|
|
||||||
processed_path = path_parts[0] + '-proc' + path_parts[1]
|
processed_path = path_parts[0] + '-proc' + path_parts[1]
|
||||||
|
|
||||||
|
print(processed_path)
|
||||||
if not os.path.exists(path) or os.path.exists(processed_path):
|
if not os.path.exists(path) or os.path.exists(processed_path):
|
||||||
stats['skipped'] += 1
|
stats['skipped'] += 1
|
||||||
continue
|
continue
|
||||||
|
|
||||||
subprocess.check_call([
|
ffmpeg = [
|
||||||
'ffmpeg','-i', path, '-filter:v', 'setpts=0.5*PTS', processed_path,
|
'ffmpeg',
|
||||||
])
|
'-i', path,
|
||||||
|
'-i', song.path_mp3,
|
||||||
|
'-shortest',
|
||||||
|
'-vf',
|
||||||
|
','.join([
|
||||||
|
'setpts=1.1*PTS',
|
||||||
|
'scale=trunc(iw/0.9):trunc(ow/a/2)*2',
|
||||||
|
]),
|
||||||
|
'-sws_flags', 'bilinear',
|
||||||
|
'-map', '0:v:0',
|
||||||
|
'-map', '1:a:0',
|
||||||
|
processed_path,
|
||||||
|
]
|
||||||
|
subprocess.check_call(ffmpeg)
|
||||||
stats['saved'] += 1
|
stats['saved'] += 1
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
break
|
break
|
||||||
@ -299,3 +321,44 @@ def tiktok_videos_process(meta: Iterable[dict[str, Any]]) -> dict[str, Any]:
|
|||||||
stats['error'] += 1
|
stats['error'] += 1
|
||||||
|
|
||||||
return stats
|
return stats
|
||||||
|
|
||||||
|
class audio_get_t:
|
||||||
|
@dataclasses.dataclass
|
||||||
|
class res_t:
|
||||||
|
file: str
|
||||||
|
file_mp3: str
|
||||||
|
path: str
|
||||||
|
path_mp3: str
|
||||||
|
url: str
|
||||||
|
|
||||||
|
def audio_get() -> audio_get_t.res_t:
|
||||||
|
c = tiktok_config()
|
||||||
|
url = 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'
|
||||||
|
file = 'song.dat'
|
||||||
|
file_mp3 = 'song.mp3'
|
||||||
|
|
||||||
|
path = os.path.join(c.audios, file)
|
||||||
|
path_mp3 = os.path.join(c.audios, file_mp3)
|
||||||
|
|
||||||
|
if not os.path.exists(path):
|
||||||
|
subprocess.check_call([
|
||||||
|
'yt-dlp',
|
||||||
|
'-f', 'bestaudio',
|
||||||
|
url,
|
||||||
|
'-o', path,
|
||||||
|
])
|
||||||
|
|
||||||
|
if not os.path.exists(path_mp3):
|
||||||
|
subprocess.check_call([
|
||||||
|
'ffmpeg',
|
||||||
|
'-i', path,
|
||||||
|
path_mp3,
|
||||||
|
])
|
||||||
|
|
||||||
|
return audio_get_t.res_t(
|
||||||
|
file=file,
|
||||||
|
file_mp3=file_mp3,
|
||||||
|
path=path,
|
||||||
|
path_mp3=path_mp3,
|
||||||
|
url=url,
|
||||||
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user