@@ -74,27 +74,27 @@ def _get_filename(self, stream_info: StreamData) -> str:
74
74
stream_info .anchor_name = utils .clean_name (stream_info .anchor_name , self ._ ["live_room" ])
75
75
76
76
now = time .strftime ("%Y-%m-%d_%H-%M-%S" , time .localtime ())
77
-
77
+
78
78
custom_template = self .user_config .get ("custom_filename_template" )
79
79
if custom_template :
80
80
filename = custom_template
81
81
filename = filename .replace ("{anchor_name}" , stream_info .anchor_name or "" )
82
82
filename = filename .replace ("{title}" , live_title or "" )
83
83
filename = filename .replace ("{time}" , now )
84
84
filename = filename .replace ("{platform}" , stream_info .platform or "" )
85
-
85
+
86
86
while "__" in filename :
87
87
filename = filename .replace ("__" , "_" )
88
-
88
+
89
89
filename = filename .strip ("_" )
90
-
90
+
91
91
if not filename :
92
92
full_filename = "_" .join ([i for i in (stream_info .anchor_name , live_title , now ) if i ])
93
93
else :
94
94
full_filename = filename
95
95
else :
96
96
full_filename = "_" .join ([i for i in (stream_info .anchor_name , live_title , now ) if i ])
97
-
97
+
98
98
return full_filename
99
99
100
100
def _get_output_dir (self , stream_info : StreamData ) -> str :
@@ -139,11 +139,13 @@ def _clean_and_truncate_title(title: str) -> str | None:
139
139
return cleaned_title
140
140
141
141
def _get_record_url (self , url : str ):
142
- http_record_list = ["shopee" ]
143
- if self .platform_key in http_record_list :
144
- url = url .replace ("https://" , "http://" )
142
+ http_record_list = ["shopee" , "migu" ]
143
+
145
144
if self .user_config .get ("force_https_recording" ) and url .startswith ("http://" ):
146
145
url = url .replace ("http://" , "https://" )
146
+
147
+ if self .platform_key in http_record_list :
148
+ url = url .replace ("https://" , "http://" )
147
149
return url
148
150
149
151
async def fetch_stream (self ) -> StreamData :
@@ -198,13 +200,13 @@ async def start_recording(self, stream_info: StreamData):
198
200
)
199
201
200
202
async def start_ffmpeg (
201
- self ,
202
- record_name : str ,
203
- live_url : str ,
204
- record_url : str ,
205
- ffmpeg_command : list ,
206
- save_type : str ,
207
- script_command : str | None = None
203
+ self ,
204
+ record_name : str ,
205
+ live_url : str ,
206
+ record_url : str ,
207
+ ffmpeg_command : list ,
208
+ save_type : str ,
209
+ script_command : str | None = None
208
210
) -> bool :
209
211
"""
210
212
The child process executes ffmpeg for recording
@@ -286,11 +288,11 @@ async def start_ffmpeg(
286
288
if not self .recording .is_recording :
287
289
logger .success (f"Live recording has stopped: { record_name } " )
288
290
else :
289
-
291
+
290
292
logger .success (f"Live recording completed: { record_name } " )
291
293
msg_manager = MessagePusher (self .settings )
292
294
user_config = self .settings .user_config
293
-
295
+
294
296
if (self .app .recording_enabled and MessagePusher .should_push_message (
295
297
self .settings , self .recording , check_manually_stopped = True , message_type = 'end' ) and
296
298
not self .recording .notified_live_end ):
@@ -453,13 +455,13 @@ async def _do_converts_mp4(self, converts_file_path: str, is_original_delete: bo
453
455
logger .error (f"An unknown error occurred: { e } " )
454
456
455
457
async def custom_script_execute (
456
- self ,
457
- script_command : str ,
458
- record_name : str ,
459
- save_file_path : str ,
460
- save_type : str ,
461
- split_video_by_time : bool ,
462
- converts_to_mp4 : bool
458
+ self ,
459
+ script_command : str ,
460
+ record_name : str ,
461
+ save_file_path : str ,
462
+ save_type : str ,
463
+ split_video_by_time : bool ,
464
+ converts_to_mp4 : bool
463
465
):
464
466
from ..process_manager import BackgroundService
465
467
@@ -542,3 +544,4 @@ def get_headers_params(live_url, platform_key):
542
544
"blued" : "referer:https://app.blued.cn" ,
543
545
}
544
546
return record_headers .get (platform_key )
547
+
0 commit comments