[程式設計]Java實現解析抖音無水印影片
package pers.LovelyBunny;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
//
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
/**
* 解析抖音無水印影片
*
* @author 張澤楠
* @since 2021-06-15
*
*/
public class DouYinParse {
public static void main(String[] args) {
System.out.println(parseDouYinVideo("));
}
/**
*
* 解析抖音無水印影片
*
* @author 張澤楠
* @param httpURL
* 抖音影片分享連結
* @return 抖音無水印影片連結
*/
public static String parseDouYinVideo(String httpURL) {
String result = null;
// 獲取重定向後的 URL 地址,並從中擷取 item_ids
String itemIDs = getRedirectsURL(httpURL).split("/")[5];
// 使用 item_ids 作為引數,外匯跟單gendan5.com請求攜帶有帶水印的影片 URL 的 JSON 資料
String jsonString = getJSON(" + itemIDs);
// 使用 FastJSON 解析為 JSONObject 物件
JSONObject json = JSON.parseObject(jsonString);
// 解析 JSON 資料,獲取帶水印的影片 URL
Object videoURL = json.getJSONArray("item_list").getJSONObject(0).getJSONObject("video")
.getJSONObject("play_addr").getJSONArray("url_list").get(0);
// 替換 URL 關鍵位置,得到無水印影片 URL
result = videoURL.toString().replace("/playwm/", "/play/");
return result;
}
/**
*
* 獲取重定向後的 URL 地址
*
* @author 張澤楠
* @param httpURL
* 原 URL
* @return 重定向後的 URL
*/
public static String getRedirectsURL(String httpURL) {
String result = null;
HttpURLConnection conn = null;
try {
// 配置請求頭
conn = (HttpURLConnection) new URL(httpURL).openConnection();
// 禁止重定向
conn.setInstanceFollowRedirects(false);
// 獲取重定向後的 URL
result = conn.getHeaderField("Location");
} catch (Exception e) {
e.printStackTrace();
} finally {
// 清理資源
conn.disconnect();
}
return result;
}
/**
*
* 以 GET 的方式請求 JSON 資料
*
* @author 張澤楠
* @param httpURL
* 請求的 URL
* @return 請求到的 JSON 資料
*/
public static String getJSON(String httpURL) {
HttpURLConnection connection = null;
InputStream is = null;
InputStreamReader isr = null;
BufferedReader br = null;
String result = null;
try {
URL url = new URL(httpURL);
// 配置請求頭
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
// 傳送 HTTP 連線請求
connection.connect();
// 如果請求連線成功則接收資料
if (connection.getResponseCode() == 200) {
// 讀取並儲存 JSON 資料
is = connection.getInputStream();
isr = new InputStreamReader(is, "UTF8");
br = new BufferedReader(isr);
StringBuffer sbf = new StringBuffer();
String temp = null;
while ((temp = br.readLine()) != null) {
sbf.append(temp);
}
result = sbf.toString();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 關閉資源
try {
if (null != br) {
br.close();
}
if (null != isr) {
isr.close();
}
if (null != is) {
is.close();
}
} catch (Exception e) {
e.printStackTrace();
}
// 清理資源
connection.disconnect();
}
return result;
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2780912/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 免費抖音短影片地址無水印解析api介面API
- 抖音無水印視訊解析思路
- 整了一個微信小程式,去除抖音水印微信小程式
- 微信小程式開發抖音去水印功能微信小程式
- Java 版抖音解析介面Java
- 抖音視訊批量下載,手把手教你下載抖音無水印視訊
- 手寫一個抖音視訊去水印工具,千萬別剛一個程式設計師程式設計師
- Java高階程式設計——MySQL索引實現及優化原理解析Java程式設計MySql索引優化
- JAVA實現網路程式設計之併發程式設計Java程式設計
- Java 併發程式設計解析Java程式設計
- Java併發程式設計:ThreadLocal的使用以及實現原理解析Java程式設計thread
- Java XML程式設計例項解析JavaXML程式設計
- 設計模式 - java程式碼實現單例模式設計模式Java單例
- Socket程式設計入門(基於Java實現)程式設計Java
- Java併發程式設計:Synchronized及其實現原理Java程式設計synchronized
- 深入解析dio(一) Socket 程式設計實現本地多端群聊程式設計
- Java併發程式設計中的設計模式解析(一)Java程式設計設計模式
- 前端實現水印功能前端
- 抖音短影片動態封面設定教程 抖音動態封面怎麼設定?
- 短影片程式,仿抖音短影片熱門頁面開發
- 抖音api介面分享:抖音爬蟲 抖音影片搜尋介面 抖音商品詳情資料介面 影片列表API爬蟲
- oepncv實現——影像去水印
- 抖音短影片開發,SDK包含的功能及技術實現方式
- 2020抖音去水印小程式搭建教程(原始碼+教程,無加密,可二次開發)原始碼加密
- 轉:Java新增水印(圖片水印,文字水印)Java
- 【Java併發程式設計】Synchronized關鍵字實現原理Java程式設計synchronized
- Java實現人民幣大寫程式碼解析Java
- 高階程式設計師——java語言深度解析程式設計師Java
- C++程式設計實現C++程式設計
- MYSQL SQL程式設計實現MySql程式設計
- 【Java程式設計】Java上機實驗(三)Java程式設計
- Java併發程式設計實踐Java程式設計
- Java併發程式設計實戰Java程式設計
- Java程式設計架構深入解析-RPC訊息協議設計Java程式設計架構RPC協議
- 好程式設計師web前端教程之JS繼承實現方式解析程式設計師Web前端JS繼承
- 前端頁面水印生成實現前端
- 影片快速去除水印的方法
- 無程式碼程式設計程式設計