[程式設計]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 ffmpeg 實現影片加文字/圖片水印功能Java
- 整了一個微信小程式,去除抖音水印微信小程式
- 微信小程式開發抖音去水印功能微信小程式
- 抖音去水印超簡單
- 手寫一個抖音視訊去水印工具,千萬別剛一個程式設計師程式設計師
- 超簡單的抖音去水印
- 抖音api介面分享:抖音爬蟲 抖音影片搜尋介面 抖音商品詳情資料介面 影片列表API爬蟲
- 抖音短影片動態封面設定教程 抖音動態封面怎麼設定?
- 2020抖音去水印小程式搭建教程(原始碼+教程,無加密,可二次開發)原始碼加密
- 短影片程式,仿抖音短影片熱門頁面開發
- Java 併發程式設計解析Java程式設計
- Java高階程式設計——MySQL索引實現及優化原理解析Java程式設計MySql索引優化
- Java併發程式設計:ThreadLocal的使用以及實現原理解析Java程式設計thread
- Java 實現壓縮圖片,影片,音訊案例Java音訊
- 怎麼將抖音視訊中的水印消除
- 抖音短影片開發,SDK包含的功能及技術實現方式
- 抖音一鍵釋出工具,一鍵釋出抖音影片
- 用 Python 實現抖音尬舞機Python
- [iOS]5 分鐘實現抖音 APPiOSAPP
- 抖音評論過的影片怎麼找?檢視抖音評論過的影片的方法
- Socket程式設計入門(基於Java實現)程式設計Java
- 使用Java實現多執行緒程式設計Java執行緒程式設計
- pygame播放影片並實現音影片同步GAM
- 深入解析dio(一) Socket 程式設計實現本地多端群聊程式設計
- Java併發程式設計中的設計模式解析(一)Java程式設計設計模式
- 抖音去水印詳細原理步驟及介面編寫
- 短影片直播APP成品開發直播系統仿抖音APP無加密APP加密
- 音樂格式轉換:java程式碼實現Java
- 在 iOS 中使用 GLSL 實現抖音特效iOS特效
- 快速實現抖音的分享&登入(android)Android
- Flutter將影片或圖文分享到抖音Flutter
- Java程式設計架構深入解析-RPC訊息協議設計Java程式設計架構RPC協議