mirror of
https://github.com/jwdeveloper/TikTokLiveJava.git
synced 2026-02-27 08:49:40 -05:00
.
This commit is contained in:
@@ -26,6 +26,8 @@ import io.github.jwdeveloper.tiktok.data.events.TikTokDisconnectedEvent;
|
|||||||
import io.github.jwdeveloper.tiktok.data.events.TikTokErrorEvent;
|
import io.github.jwdeveloper.tiktok.data.events.TikTokErrorEvent;
|
||||||
import io.github.jwdeveloper.tiktok.data.events.TikTokReconnectingEvent;
|
import io.github.jwdeveloper.tiktok.data.events.TikTokReconnectingEvent;
|
||||||
import io.github.jwdeveloper.tiktok.data.events.common.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.data.events.common.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.data.events.control.TikTokConnectingEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.data.events.http.TikTokRoomDataResponseEvent;
|
||||||
import io.github.jwdeveloper.tiktok.data.events.room.TikTokRoomInfoEvent;
|
import io.github.jwdeveloper.tiktok.data.events.room.TikTokRoomInfoEvent;
|
||||||
import io.github.jwdeveloper.tiktok.data.requests.LiveConnectionData;
|
import io.github.jwdeveloper.tiktok.data.requests.LiveConnectionData;
|
||||||
import io.github.jwdeveloper.tiktok.data.requests.LiveData;
|
import io.github.jwdeveloper.tiktok.data.requests.LiveData;
|
||||||
@@ -120,7 +122,7 @@ public class TikTokLiveClient implements LiveClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setState(ConnectionState.CONNECTING);
|
setState(ConnectionState.CONNECTING);
|
||||||
|
tikTokEventHandler.publish(this,new TikTokConnectingEvent());
|
||||||
var userDataRequest = new LiveUserData.Request(liveRoomInfo.getHostName());
|
var userDataRequest = new LiveUserData.Request(liveRoomInfo.getHostName());
|
||||||
var userData = httpClient.fetchLiveUserData(userDataRequest);
|
var userData = httpClient.fetchLiveUserData(userDataRequest);
|
||||||
liveRoomInfo.setStartTime(userData.getStartedAtTimeStamp());
|
liveRoomInfo.setStartTime(userData.getStartedAtTimeStamp());
|
||||||
@@ -134,6 +136,7 @@ public class TikTokLiveClient implements LiveClient {
|
|||||||
|
|
||||||
var liveDataRequest = new LiveData.Request(userData.getRoomId());
|
var liveDataRequest = new LiveData.Request(userData.getRoomId());
|
||||||
var liveData = httpClient.fetchLiveData(liveDataRequest);
|
var liveData = httpClient.fetchLiveData(liveDataRequest);
|
||||||
|
tikTokEventHandler.publish(this, new TikTokRoomDataResponseEvent(liveData));
|
||||||
if (liveData.getLiveStatus() == LiveData.LiveStatus.HostNotFound) {
|
if (liveData.getLiveStatus() == LiveData.LiveStatus.HostNotFound) {
|
||||||
throw new TikTokLiveOfflineHostException("LiveStream for Host name could not be found.");
|
throw new TikTokLiveOfflineHostException("LiveStream for Host name could not be found.");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ public class LiveDataMapper {
|
|||||||
public LiveData.Response map(String json) {
|
public LiveData.Response map(String json) {
|
||||||
var response = new LiveData.Response();
|
var response = new LiveData.Response();
|
||||||
|
|
||||||
|
response.setJson(json);
|
||||||
|
|
||||||
var parsedJson = JsonParser.parseString(json);
|
var parsedJson = JsonParser.parseString(json);
|
||||||
var jsonObject = parsedJson.getAsJsonObject();
|
var jsonObject = parsedJson.getAsJsonObject();
|
||||||
|
|||||||
@@ -111,6 +111,7 @@ public class TikTokListenersManager implements ListenersManager {
|
|||||||
EventConsumer eventMethodRef = (liveClient, event) ->
|
EventConsumer eventMethodRef = (liveClient, event) ->
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
method.setAccessible(true);
|
||||||
method.invoke(listener, liveClient, event);
|
method.invoke(listener, liveClient, event);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new TikTokEventListenerMethodException(e);
|
throw new TikTokEventListenerMethodException(e);
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public class RecorderExample {
|
|||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
||||||
TikTokLive.newClient("dash4214")
|
TikTokLive.newClient("bangbetmenygy")
|
||||||
.configure(liveClientSettings ->
|
.configure(liveClientSettings ->
|
||||||
{
|
{
|
||||||
liveClientSettings.setPrintToConsole(true);
|
liveClientSettings.setPrintToConsole(true);
|
||||||
@@ -43,7 +43,7 @@ public class RecorderExample {
|
|||||||
{
|
{
|
||||||
recorderSettings.setFfmpegPath("C:\\Users\\ja\\IdeaProjects\\TikTokLiveJava\\extension-recorder\\libs\\ffmpeg.exe");
|
recorderSettings.setFfmpegPath("C:\\Users\\ja\\IdeaProjects\\TikTokLiveJava\\extension-recorder\\libs\\ffmpeg.exe");
|
||||||
recorderSettings.setOutputPath("C:\\Users\\ja\\IdeaProjects\\TikTokLiveJava\\extension-recorder\\out");
|
recorderSettings.setOutputPath("C:\\Users\\ja\\IdeaProjects\\TikTokLiveJava\\extension-recorder\\out");
|
||||||
recorderSettings.setOutputFileName("test.mp4");
|
recorderSettings.setOutputFileName("test.flv");
|
||||||
}))
|
}))
|
||||||
.onEvent(TikTokLiveRecorderStartedEvent.class, (liveClient, event) ->
|
.onEvent(TikTokLiveRecorderStartedEvent.class, (liveClient, event) ->
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ import net.bramp.ffmpeg.FFmpegExecutor;
|
|||||||
import net.bramp.ffmpeg.RunProcessFunction;
|
import net.bramp.ffmpeg.RunProcessFunction;
|
||||||
import net.bramp.ffmpeg.builder.FFmpegBuilder;
|
import net.bramp.ffmpeg.builder.FFmpegBuilder;
|
||||||
|
|
||||||
|
import javax.net.ssl.HttpsURLConnection;
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -126,19 +127,20 @@ public class RecorderListener implements LiveRecorder {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
*/
|
*/
|
||||||
var factory = new HttpClientFactory(LiveClientSettings.createDefault());
|
|
||||||
var builder = factory.client(downloadData.getFullUrl());
|
|
||||||
|
|
||||||
/*
|
|
||||||
var path = settings.getOutputPath() + File.separator + settings.getOutputFileName();
|
|
||||||
var file = new File(path);
|
|
||||||
file.getParentFile().mkdirs();
|
|
||||||
*/
|
|
||||||
|
|
||||||
liveDownloadThread = new Thread(() ->
|
liveDownloadThread = new Thread(() ->
|
||||||
{
|
{
|
||||||
|
try {
|
||||||
var bufferSize = 1024;
|
var bufferSize = 1024;
|
||||||
try (var in = new BufferedInputStream(new URL(downloadData.getFullUrl()).openStream(), bufferSize)) {
|
var url = new URL(downloadData.getFullUrl());
|
||||||
|
HttpsURLConnection socksConnection = (HttpsURLConnection) url.openConnection();
|
||||||
|
var headers = LiveClientSettings.DefaultRequestHeaders();
|
||||||
|
for (var entry : headers.entrySet()) {
|
||||||
|
socksConnection.setRequestProperty(entry.getKey(), entry.getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println(socksConnection.getResponseCode());
|
||||||
|
try (var in = new BufferedInputStream(socksConnection.getInputStream())) {
|
||||||
var path = settings.getOutputPath() + File.separator + settings.getOutputFileName();
|
var path = settings.getOutputPath() + File.separator + settings.getOutputFileName();
|
||||||
var file = new File(path);
|
var file = new File(path);
|
||||||
file.getParentFile().mkdirs();
|
file.getParentFile().mkdirs();
|
||||||
@@ -149,8 +151,13 @@ public class RecorderListener implements LiveRecorder {
|
|||||||
fileOutputStream.write(dataBuffer, 0, bytesRead);
|
fileOutputStream.write(dataBuffer, 0, bytesRead);
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
throw e;
|
||||||
}
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user