Failed in publishing stream to DouYin (Chinese Tiktok) with error code InvalidSign #1529
Replies: 6 comments 2 replies
-
The authentication mechanisms are unique to each service, and there are many unknowns. There is a possibility that the service is only allowing OBS:
Since I do not understand the specific circumstances of the service, it is appropriate to seek support from DouYin. |
Beta Was this translation helpful? Give feedback.
-
Do you have a solution here? I have the same question. |
Beta Was this translation helpful? Give feedback.
-
@WS-Vincent WS Not yet. 還沒有 doge doge doge |
Beta Was this translation helpful? Give feedback.
-
You can try using Wireshark to compare the RTMP traffic of OBS and HK. Identifying the differences will help pinpoint the failing packets. |
Beta Was this translation helpful? Give feedback.
-
As a developer, I cannot handle individual service authentication, so there are no plans for a fix. However, PRs are welcome. I will move this to Discussion. |
Beta Was this translation helpful? Give feedback.
-
I used the above suggestion by using WireShark to observe the RTMP traffic difference between my HaishinKit-based App and OBS. The 'app' and 'swfUrl' values are vacant in Haishinkit's packet, while obs's packet is not. Please see the screenshot and WireShark log file for details. |
Beta Was this translation helpful? Give feedback.
-
Describe the bug
The RTMP information is like this:
I can successfully stream with such RTMP information via OBS, and also, the live playback can be watched at the audience end.
However, I cannot stream via my app or HaishinKit Demo. The code feedback is NetStream.Publish.InvalidSign
(PS: Also, I cannot stream via PRISM LIVE, which is an OBS-like RTMP streaming app. For the app side, it can stream without error feedback, but the audience side cannot receive anything like HaishinKit)
I assume that if OBS can successfully stream to the server, HaishinKit should also be able to do so.
Note that there is a 'sign' parameter in the RTMP stream URL. I suspect that such key parameters may not be correctly handled in the RTMP protocol processing
To Reproduce
It can be reproduced in both my app and the Demo app, while OBS works perfectly.
However, since the RTMP information is dynamic and expires quickly, it must be obtained afresh each time, making it impossible to provide a valid example for testing via the issue page.
Expected behavior
Public stream successfully
Version
1.8.3
Smartphone info.
iPhone 14 pro
iPad Air3
Additional context
OBS on Mac: Okay
HaishinKit app: No
PRISM LIVE app: No
Screenshots
The "NetStream.Publish.InvalidSign" feedback appears immediately after "NetConnection.Connect.Success":
The rtmp information was passed to RTMPNWSocket:
OBS works:
![1031721965496_ pic_hd](https://github.com/user-attac
hments/assets/62372eda-6228-43d9-a24e-695d3991dd1c)
Relevant log output
Beta Was this translation helpful? Give feedback.
All reactions