From cf9b8823918093b274683c157554fbb6296d3fe4 Mon Sep 17 00:00:00 2001 From: JW Date: Sun, 14 Jan 2024 23:16:35 +0100 Subject: [PATCH] . --- .../jwdeveloper/tiktok/TikTokLiveClient.java | 5 ++- .../tiktok/http/mappers/LiveDataMapper.java | 1 + .../listener/TikTokListenersManager.java | 1 + .../jwdeveloper/tiktok/RecorderExample.java | 4 +- .../recorder/impl/RecorderListener.java | 45 +++++++++++-------- 5 files changed, 34 insertions(+), 22 deletions(-) diff --git a/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveClient.java b/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveClient.java index 81709a0..591be51 100644 --- a/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveClient.java +++ b/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveClient.java @@ -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.TikTokReconnectingEvent; 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.requests.LiveConnectionData; import io.github.jwdeveloper.tiktok.data.requests.LiveData; @@ -120,7 +122,7 @@ public class TikTokLiveClient implements LiveClient { } setState(ConnectionState.CONNECTING); - + tikTokEventHandler.publish(this,new TikTokConnectingEvent()); var userDataRequest = new LiveUserData.Request(liveRoomInfo.getHostName()); var userData = httpClient.fetchLiveUserData(userDataRequest); liveRoomInfo.setStartTime(userData.getStartedAtTimeStamp()); @@ -134,6 +136,7 @@ public class TikTokLiveClient implements LiveClient { var liveDataRequest = new LiveData.Request(userData.getRoomId()); var liveData = httpClient.fetchLiveData(liveDataRequest); + tikTokEventHandler.publish(this, new TikTokRoomDataResponseEvent(liveData)); if (liveData.getLiveStatus() == LiveData.LiveStatus.HostNotFound) { throw new TikTokLiveOfflineHostException("LiveStream for Host name could not be found."); } diff --git a/Client/src/main/java/io/github/jwdeveloper/tiktok/http/mappers/LiveDataMapper.java b/Client/src/main/java/io/github/jwdeveloper/tiktok/http/mappers/LiveDataMapper.java index 1a9108b..34041b4 100644 --- a/Client/src/main/java/io/github/jwdeveloper/tiktok/http/mappers/LiveDataMapper.java +++ b/Client/src/main/java/io/github/jwdeveloper/tiktok/http/mappers/LiveDataMapper.java @@ -43,6 +43,7 @@ public class LiveDataMapper { public LiveData.Response map(String json) { var response = new LiveData.Response(); + response.setJson(json); var parsedJson = JsonParser.parseString(json); var jsonObject = parsedJson.getAsJsonObject(); diff --git a/Client/src/main/java/io/github/jwdeveloper/tiktok/listener/TikTokListenersManager.java b/Client/src/main/java/io/github/jwdeveloper/tiktok/listener/TikTokListenersManager.java index 16c1d96..2731063 100644 --- a/Client/src/main/java/io/github/jwdeveloper/tiktok/listener/TikTokListenersManager.java +++ b/Client/src/main/java/io/github/jwdeveloper/tiktok/listener/TikTokListenersManager.java @@ -111,6 +111,7 @@ public class TikTokListenersManager implements ListenersManager { EventConsumer eventMethodRef = (liveClient, event) -> { try { + method.setAccessible(true); method.invoke(listener, liveClient, event); } catch (Exception e) { throw new TikTokEventListenerMethodException(e); diff --git a/Examples/src/main/java/io/github/jwdeveloper/tiktok/RecorderExample.java b/Examples/src/main/java/io/github/jwdeveloper/tiktok/RecorderExample.java index 050e3df..50b05de 100644 --- a/Examples/src/main/java/io/github/jwdeveloper/tiktok/RecorderExample.java +++ b/Examples/src/main/java/io/github/jwdeveloper/tiktok/RecorderExample.java @@ -30,7 +30,7 @@ public class RecorderExample { public static void main(String[] args) { - TikTokLive.newClient("dash4214") + TikTokLive.newClient("bangbetmenygy") .configure(liveClientSettings -> { liveClientSettings.setPrintToConsole(true); @@ -43,7 +43,7 @@ public class RecorderExample { { recorderSettings.setFfmpegPath("C:\\Users\\ja\\IdeaProjects\\TikTokLiveJava\\extension-recorder\\libs\\ffmpeg.exe"); recorderSettings.setOutputPath("C:\\Users\\ja\\IdeaProjects\\TikTokLiveJava\\extension-recorder\\out"); - recorderSettings.setOutputFileName("test.mp4"); + recorderSettings.setOutputFileName("test.flv"); })) .onEvent(TikTokLiveRecorderStartedEvent.class, (liveClient, event) -> { diff --git a/extension-recorder/src/main/java/io/github/jwdeveloper/tiktok/extension/recorder/impl/RecorderListener.java b/extension-recorder/src/main/java/io/github/jwdeveloper/tiktok/extension/recorder/impl/RecorderListener.java index 7956da6..d283c48 100644 --- a/extension-recorder/src/main/java/io/github/jwdeveloper/tiktok/extension/recorder/impl/RecorderListener.java +++ b/extension-recorder/src/main/java/io/github/jwdeveloper/tiktok/extension/recorder/impl/RecorderListener.java @@ -42,6 +42,7 @@ import net.bramp.ffmpeg.FFmpegExecutor; import net.bramp.ffmpeg.RunProcessFunction; import net.bramp.ffmpeg.builder.FFmpegBuilder; +import javax.net.ssl.HttpsURLConnection; import java.io.*; import java.net.URL; import java.util.List; @@ -126,31 +127,37 @@ 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(() -> { - var bufferSize = 1024; - try (var in = new BufferedInputStream(new URL(downloadData.getFullUrl()).openStream(), bufferSize)) { - var path = settings.getOutputPath() + File.separator + settings.getOutputFileName(); - var file = new File(path); - file.getParentFile().mkdirs(); - var fileOutputStream = new FileOutputStream(file); - byte dataBuffer[] = new byte[bufferSize]; - int bytesRead; - while ((bytesRead = in.read(dataBuffer, 0, bufferSize)) != -1) { - fileOutputStream.write(dataBuffer, 0, bytesRead); + try { + var bufferSize = 1024; + 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()); } - } catch (IOException e) { + + System.out.println(socksConnection.getResponseCode()); + try (var in = new BufferedInputStream(socksConnection.getInputStream())) { + var path = settings.getOutputPath() + File.separator + settings.getOutputFileName(); + var file = new File(path); + file.getParentFile().mkdirs(); + var fileOutputStream = new FileOutputStream(file); + byte dataBuffer[] = new byte[bufferSize]; + int bytesRead; + while ((bytesRead = in.read(dataBuffer, 0, bufferSize)) != -1) { + fileOutputStream.write(dataBuffer, 0, bytesRead); + } + } catch (IOException e) { + throw e; + } + } catch (Exception e) { e.printStackTrace(); + ; } + });