首页 > 编程语言 >PHP YouTube字幕转srt格式

PHP YouTube字幕转srt格式

时间:2022-11-15 13:44:48浏览次数:32  
标签:key end srt YouTube changeTimeType file subtitle PHP

 

<?php
function formatNum(int $time)
{
    if ($time < 10) {
        return "0{$time}";
    }
    return $time;
}
function changeTimeType(int $num): string
{
    $millisecond = substr($num, -3);
    $temp = intval($num / 1000);
    $second = formatNum($temp % 60);
    $temp = intval($temp / 60);
    $minute = formatNum($temp % 60);
    $temp = intval($temp / 60);
    $hour = formatNum($temp % 60);
    return "{$hour}:{$minute}:{$second},{$millisecond}";
}

function transSingleSubtitle($sequence,$start,$end,$subtitle): string
{
    return "{$sequence}\n{$start} --> {$end}\n{$subtitle}\n\n";
}

function transSubtitle($subtitle): string
{
    $key = 1;
    $srt = '';
    foreach ($subtitle as $v) {
        $start = changeTimeType($v['tStartMs']);
        $end = changeTimeType($v['tStartMs'] + $v['dDurationMs']);
        $content = trim($v['segs'][0]['utf8']);
        $srt .= transSingleSubtitle($key, $start, $end, $content);
        $key++;
    }
    return $srt;
}

$file = 'json来源';
$subtitle = json_decode(file_get_contents($file), true);
$subtitle = $subtitle['events'];
$srt = transSubtitle($subtitle);
file_put_contents('保存路径.srt', $srt);

转换后: 

 

 

标签:key,end,srt,YouTube,changeTimeType,file,subtitle,PHP
From: https://www.cnblogs.com/felixwan/p/16892148.html

相关文章

  • PHP二分法
    classHalfFind{/***@desc二分法查找效率老高了前提:必须是有序的数组*@desc二分法时间复杂度为O(logn)**@param$nums*......
  • PHP的TP框架的limit使用注意事项
    使用limit时需要注意不要用find()需要用paginage或select这种多选的方法比如: Db::name('user')->limit($offset,1)->order('id','asc')->find();......
  • php zip下载附件到压缩包并浏览器下载
    /***下载图片并生成压缩包*@param$arr资源数组*@returnstring*/functiondownloadZipImg($arr){if(is_array($arr)&&$arr){foreach($arras......
  • php filter函数库 (与变量和类型有关的扩展),可以过滤常用邮件,IP,变量数组等...
     filter扩展库简介 Thisextensionfiltersdatabyeithervalidatingorsanitizingit.Thisisespeciallyusefulwhenthedatasourcecontainsunknown(orfore......
  • PHP parent 的注意点
    PHP5中使用parent::来引用父类的方法。parent::可用于调用父类中定义的成员方法。parent::的追溯不仅于直接父类。通过parent::调用父类方法<!--声明一个员工类,经理类继......
  • 好用的PHP高性能多并发restful的HTTP Client
    ThisishighperformancecurlwrapperwritteninpurePHP.It'scompatiblewithPHP5.4+andHHVM.Noticethatlibcurlversionmustbeover7.36.0,otherwiseti......
  • PHP三元运算符 ?? 和 ?:
      $c=$a?:$b;等效于$c=$a?$a:$b;$c=$a??$b;等效于$c=isset($a)?$a:$b;示例:$a=null;$b='b';$c=$a?:$b;//b$c......
  • PHP是最好的编程语言吗?
    编程语言很多,既然存在,就有每个存在的理由。不想评论,也没必要评论,哪个语言好,哪个语言不好,因为,其实,每个编程语言本身都不难,只要学会了一种语言,其他的都是相通的。难的,好......
  • PHP 7.3 比 PHP 7.0 快 22%,即将进入特性冻结阶段
    随着上周PHP7.3Alpha3的发布,意味着PHP7.3即将进入特性冻结阶段,不再有新的功能添加,后续的Beta和RC版本将主要进行修复,直到11月29日发布正式版本。从目前的......
  • PHP 网页
    PHP官网下载 https://windows.php.net/download/在PHP官网点击Download下载时不管选择哪个版本的都有两个类型:NonThreadSafe(非线程安全)和  ThreadSafe(线程安全)......