猿问

在 youtubedl 中将秒转换为分钟和小时

 embed = discord.Embed(

            title=self.title, description=f"**Channel:** {self.uploader}\n **Duration:** {self.duration}", url=self.video_url)

        embed.set_footer(

            text=f"Requested by: {self.requested_by.name}",

            icon_url=self.requested_by.avatar_url)

        if self.thumbnail:

            embed.set_thumbnail(url=self.thumbnail)

        return embed

所以这都是关于第二行的。现在输出显示持续时间(以秒为单位)。我想更改格式以便显示实际时间。例如视频时长 3 分钟:


YouTube 上显示的是 03:00。我的机器人将其转换为 300 秒。有没有办法改变这个,以便给出实际时间?


函数式编程
浏览 123回答 2
2回答

慕工程0101907

从文档(https://github.com/ytdl-org/youtube-dl/blob/master/README.md#readme)开始,duration所以Length of the video in seconds你可以手动从几秒开始hours:minutes:seconds。total_seconds = self.durationhours = (total_seconds - ( total_seconds % 3600))/3600seconds_minus_hours = (total_seconds - hours*3600)minutes = (seconds_minus_hours - (seconds_minus_hours % 60) )/60seconds = seconds_minus_hours - minutes*60time = '{}:{}:{}'.format(int(hours), int(minutes), int(seconds))该时间字符串可能有点混乱(因此int()当您打印它时它没有小数点),但它包含所有相关信息。

江户川乱折腾

对于那些路过但仍然需要帮助的人,这是我已经完成的一种更简单的转换方法。time_to_convert = 249 #YOUR VARIABLEs= time_to_convert % 60  #secondsm= time_to_convert / 60 #minutesprint(f'{int(m)}min{s:02d}s')   #":02d" will let your seconds look like this 05s#       ^int() maybe you don't need this at all对于 HOUR,您只需将秒数除以 1 小时的总秒数即可。含义 => 3600h = time_to_convert / 3600 #total ammount of s in a hourprint(f'{int(h)}')  #now you'll need the int() unless you want to show broken/floating hours
随时随地看视频慕课网APP
我要回答