下载分享抖音视频并转成文本

思路

  1. 将分享的链接转义成可以正常链接。
  2. 通过链接去找到对应的视频链接。
  3. 在通过返回的html。解析里面视频的资源链接在playAddr字段里面。
  4. 拿到链接后转义urlPath即可获取到资源信息。
  5. 下载视频。
  6. 科大讯飞语音转文本。
  7. 处理json保存到本地。

部分代码

获取抖音链接:

java 复制代码
            String url = "6.43 复制打开抖音,看看【白浪源烟薯种植基地的作品】一旦找对了原产地,就很难在换其他家了,在我们家买过... https://v.douyin.com/ikagBCYn/ I@V.Lw mqe:/ 05/30  ";
            //过滤链接,获取http连接地址
            url = decodeHttpUrl(url);
            log.info("过滤后的链接地址:{}", url);
            //发起请求
            HttpResponse responseHref = HttpRequest.get(url)
                    .header("User-Agent", USER_AGENT)
                    .execute();
            String strUrlHref = responseHref.body();
            log.info("html地址:{}", strUrlHref);
            // 正则表达式用于匹配"video/"后面跟随的一系列数字
            Pattern pattern = Pattern.compile(regex);
            Matcher matcherUrlHref = pattern.matcher(strUrlHref);
            String videoId = null;

科大讯飞:

java 复制代码
    private static String upload(String filePath) throws SignatureException, FileNotFoundException {
        HashMap<String, Object> map = new HashMap<>(16);
        File audio = new File(filePath);
        String fileName = audio.getName();
        long fileSize = audio.length();
        map.put("appId", appid);
        map.put("fileSize", fileSize);
        map.put("fileName", fileName);
        map.put("duration", "200");
        LfasrSignature lfasrSignature = new LfasrSignature(appid, keySecret);
        map.put("signa", lfasrSignature.getSigna());
        map.put("ts", lfasrSignature.getTs());

        String paramString = HttpUtil.parseMapToPathParam(map);
        log.info("upload paramString:" + paramString);

        String url = HOST + "/v2/api/upload" + "?" + paramString;
        log.info("upload_url:" + url);
        String response = HttpUtil.iflyrecUpload(url, new FileInputStream(audio));

        log.info("upload response:" + response);
        return response;
    }

    private static String getResult(String orderId, String writerFileNameAndPath) throws SignatureException, InterruptedException, IOException {
        HashMap<String, Object> map = new HashMap<>(16);
        map.put("orderId", orderId);
        LfasrSignature lfasrSignature = new LfasrSignature(appid, keySecret);
        map.put("signa", lfasrSignature.getSigna());
        map.put("ts", lfasrSignature.getTs());
        map.put("appId", appid);
        map.put("resultType", "transfer,predict");

        String paramString = HttpUtil.parseMapToPathParam(map);
        String url = HOST + "/v2/api/getResult" + "?" + paramString;
        log.info("\nget_result_url:" + url);
        while (true) {
            String response = HttpUtil.iflyrecGet(url);
            JsonParse jsonParse = gson.fromJson(response, JsonParse.class);
            if (jsonParse.content.orderInfo.status == 4 || jsonParse.content.orderInfo.status == -1) {
                log.info("转换响应完成:" + response);
                write(response, writerFileNameAndPath);
                return response;
            } else {
                log.info("进行中...,状态为:" + jsonParse.content.orderInfo.status);
                //建议使用回调的方式查询结果,查询接口有请求频率限制
                Thread.sleep(7000);
            }
        }
    }

需要的后台私信我。

相关推荐
m0_61452355几秒前
工程工作流:一句需求做视频封面,先拆主题再做小图验收
人工智能·音视频
沐禾安信39 分钟前
抖音的bgm 想保存? 3个音频提取工具,一键分离
音视频·音频·音频转换·视频转换
Peter-Code1 小时前
视频人脸马赛克逐帧处理技术方案解析
音视频
TechVoyager_82462 小时前
从TMDS输入到音视频分离:IT66021FN接收芯片技术详解
音视频·色彩空间转换·it66021·hdmi1.4b·tmds·音视频分离·hdcp1.4
不cong明的亚子12 小时前
web live多屏互动平台
javascript·经验分享·音视频
ACP广源盛1392462567313 小时前
M6/M5 Pro Mac mini 端侧 AI 新形态@ACP#GSV5800 Serdes 长距离视频传输在 AI 服务中的机会与落地场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos·音视频
广州硅基技术官方20 小时前
AIGK外贸工厂社媒引流实战教程:海外自媒体短视频AI矩阵获客玩法解析
人工智能·音视频·媒体
奈斯先生Vector1 天前
AIGC 视频生成换个拍法:用 Kling Video 把一张人物图变成可剪辑的短故事
开发语言·人工智能·windows·python·aigc·音视频
AI的探索之旅1 天前
97 个 OpenCV 实例(二十一):音频进阶,音视频同抽与麦克风采集
人工智能·opencv·音视频
独码侠1 天前
FunASR语音识别生产部署实战:511MB音频47秒转写,离线落地 8 步、7 坑一次说清
人工智能·音视频·语音识别·funasr·说话人分离·会议纪要·内网离线部署