Implementierungscode des Tools zum Entfernen von Wasserzeichen aus kurzen Videos (Douyin)

Implementierungscode des Tools zum Entfernen von Wasserzeichen aus kurzen Videos (Douyin)

Videokonten erfreuen sich derzeit großer Beliebtheit und Leute, die früher bei Douyin und Kuaishou gearbeitet haben, haben einfach ihre vorherigen Videos dorthin übertragen. Aber die von der Tik Tok App heruntergeladenen Videos haben alle offizielle Wasserzeichen? Wie haben Sie das entfernt? Oh nein, sie hätten das Originalvideo behalten sollen. Es gibt jedoch immer noch viele Leute, die die Videos anderer Leute direkt kopieren. Wie entfernen sie also die Wasserzeichen?

Tatsächlich gibt es bereits viele fertige Tools, beispielsweise Miniprogramme und Apps zur Wasserzeichenentfernung, die Wasserzeichen direkt entfernen können, und einige sind sogar kostenpflichtig.

Lassen Sie uns das schnell untersuchen, vielleicht können wir ein besseres Werkzeug als ihres entwickeln.

Nach einer Reihe aufwändiger Vorgänge, einschließlich der Erfassung von Paketen und der Anzeige von Daten, stellt sich dies als äußerst einfach heraus und Sie können Wasserzeichen innerhalb von Minuten aus einem Video entfernen.

Tatsächlich sind diese Tools zum Entfernen von Wasserzeichen übertrieben (irreführend) und es handelt sich dabei gar nicht um wirkliche Tools zum Entfernen von Wasserzeichen. Anfänger denken sogar, dass sie eine tolle Nachbearbeitung des Videos vorgenommen haben, um das Wasserzeichen zu entfernen.

Tatsächlich handelt es sich lediglich um ein direkt heruntergeladenes Video ohne Wasserzeichen. Da die Videos, die Sie auf Apps wie Tik Tok und Kuaishou sehen, keine offiziellen Wasserzeichen haben, muss dieses Video ohne Wasserzeichen existieren.

Nachfolgend werde ich den Vorgang des Knackens Schritt für Schritt beschreiben (am Beispiel von Douyin).

1. Holen Sie sich zuerst den ersten Link

2. Öffnen Sie diesen Link im Browser

Öffnen Sie dann die Adresse, die Sie gerade kopiert haben: https://v.douyin.com/e1MMESR/.

3. Öffnen Sie die Adresse und stellen Sie fest, dass es einen 302-Sprung gibt

4. Als ich dann das Video links abspielte, stellte sich heraus, dass es ein Video mit einem Wasserzeichen war.

Beim Abspielen in der App ist das Wasserzeichen nicht zu sehen, beim Öffnen im Browser ist jedoch ein Wasserzeichen vorhanden.

5. In der Konsole wurde eine Ajax-Anfrage gefunden, die alle Informationen des Videos, einschließlich der Videoadresse, zurückgab.

6. Suchen Sie die Videowiedergabeadresse video.play_addr.url_list[0]

https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0300f760000c0fq7t5t1gvidv0rdtag&ratio=720p&line=0

Die obige Adresse ist dieselbe wie die Adresse des Videoplayers, den wir im Inspektionselement der Konsole gesehen haben, aber bei beiden handelt es sich um mit Wasserzeichen versehene Adressen.

Es handelt sich immerhin um eine Information, notieren Sie sich deshalb zunächst diese Adresse.

https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0300f760000c0fq7t5t1gvidv0rdtag&ratio=720p&line=0

7. Finden Sie einen anderen Weg, beginnen Sie mit der Videoliste im persönlichen Zentrum

Holen Sie sich die Adresse der persönlichen Videoliste (gehen Sie zum persönlichen Center und klicken Sie auf „Teilen“, es wird ein Link zum Kopieren angezeigt) https://v.douyin.com/e1MCMaT/.

8. Öffnen Sie den Browser und analysieren Sie die Schnittstellendaten von der Konsole aus

Dies sind die von der Schnittstelle zurückgegebenen Videolistendaten, allerdings nur die ersten paar, und ich habe noch nicht herausgefunden, wie ich sie alle abrufen kann.

9. Listendatenanalyse, neue Welt entdecken

Die obige Schnittstelle gibt die Videolistendaten zurück, wobei jedes Datenelement umfangreichere Informationen enthält und eine wasserzeichenfreie Adresse gefunden wird.

Jedes Video hat 4 Wiedergabeadressen, bei denen es sich wahrscheinlich um CDNs handelt, die zum Streaming verwendet werden. Tatsächlich sind dies die Wiedergabeadressen ohne Wasserzeichen.

10. Hör auf zu suchen, das Ende ist erreicht

Der Inhalt der obigen Adressen scheint ziemlich unterschiedlich zu sein. Nachdem ich sie nacheinander geöffnet hatte, stellte ich fest, dass die ersten beiden direkt abgespielt wurden, während die letzten beiden nach einem 302-Sprung abgespielt wurden.

Schauen Sie sich die dritte Adresse noch einmal an, sie kommt mir ein wenig bekannt vor

//Die dritte Adresse ist https://aweme.snssdk.com/aweme/v1/play/?video_id=v0300f760000c0fq7t5t1gvidv0rdtag&line=0&ratio=720p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&source=PackSourceEnum_DOUYIN_REFLOW
 
//Oben gespeichert https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0300f760000c0fq7t5t1gvidv0rdtag&ratio=720p&line=0

Offensichtlich sind die Adressen fast identisch, nur die Parameter sind unterschiedlich.

Die Parameter können ignoriert werden. Der einzige Unterschied besteht in der Adresse /playwm/ und /play/ , wobei wm fehlt.

An diesem Punkt haben wir unsere Mission erfüllt. Die Adresse ohne Wasserzeichen ist die ohne wm . Was ist wm ? Es ist die englische Abkürzung für watermark .

11. Download ist abgeschlossen

Öffnen Sie einfach die Wiedergabe, klicken Sie zum Speichern mit der rechten Maustaste auf das abgespielte Video und fertig.

Ich habe später auch viele Tests durchgeführt und der obige Ansatz ist in Ordnung.

12. Wie ist Kuaishou anzuwenden?

Bei Kuaishou ist es sogar noch einfacher. Hier ist überhaupt nichts versteckt und Sie können das Video direkt in einem Browser öffnen und ohne Wasserzeichen ansehen. Offensichtlich hat Douyin mehr getan.

Ein Download-Tool erstellen?

Jetzt können wir Videos ohne Wasserzeichen in zwei Schritten herunterladen, aber es handelt sich alles um manuelle Downloads. Daher müssen wir ein Tool entwickeln, mit dem Sie das Video durch Eingabe der Videoadresse mit nur einem Klick herunterladen können.

Wie erreicht man das? Das manuelle Herunterladen ist einfach, läuft aber automatisch nicht ganz so reibungslos, da die Plattform dieses Problems schon lange kennt und Vorkehrungen getroffen hat.

Nachfolgend sind zwei Lösungen aufgeführt. Das ultimative Ziel besteht darin, die Wiedergabeadresse des Videos abzurufen und dann das Video herunterzuladen.

Umsetzungsplan A

Verwenden Sie die API-Schnittstelle der Plattform, um die Wiedergabeadresse zu erhalten. Es ist jedoch wahrscheinlich, dass Sie auf Fallstricke stoßen. Die Plattform sollte einen Plan für diese Art von Operation haben und diese wird abgelehnt.

Plan B

Dies sollte einfacher und effizienter sein. Verwenden Sie einen Headless-Browser, um die Videoadresse abzurufen und die Schnittstellenanforderung zu speichern.

Teil des Codes

Der Code ist noch nicht vollständig, ich habe gerade einen Video-Download geschrieben und die API-Anforderungsadresse erhalten.

//Video herunterladen const path = require('path')
const fs = erfordern('fs')
const Anfrage = erforderlich('Anfrage')
/**
 * Video herunterladen */
Funktion downVideo(url) {
 var Dateiname = `${+new Date()}.mp4`
 var fullPath = Pfad.resolve('./videos/' + Dateiname);
 console.log('Video-Download starten:', Dateiname);
 Anfrage(URI kodieren(URL)).bei('Fehler', Funktion (Fehler) {
 console.log(Fehler)
 }).pipe(fs.createWriteStream(fullPath)).on('finish', () => {
 console.log('Video erfolgreich heruntergeladen');
 })
 
}
 
const url = 'http://v6-z.douyinvod.com/719423c89357069fffd503a6698436f9/60342b2c/video/tos/cn/tos-cn-ve-15/56505c3774bd46de98d6a49e2315e292/?a=1128&br=4996&bt=1249&cd=0%7C0%7C0&ch=0&cr=0&cs=0&cv=1&dr=0&ds=3&er=&l=2021022300074001020410813542130635&lr=&mime_type=video_mp4&pl=0&qs=0&rc=and1eWxqd3d0MzMzOWkzM0ApZTw2NWhoZGRpNzs7ZTc4OWcpaGRqbGRoaGRmXmEtYXMuMjRjYC0tNC0wc3MzLjY1XzMxNjE2Ly4xMDFhOmNwb2wrbStqdDo%3D&vl=&vr='
downVideo(URL)
//API-Adresse abrufen Funktion getApiUrl(url){
 //Leite die vom Frontend übergebene Adresse um, um item_ids abzurufen und return new Promise(resolve => {
 Anfrage(URL, (Fehler, Antwort) => {
  wenn (!Fehler && response.statusCode == 200) {
  lass href = antwort.anfrage.href;
  lass id = '';
  id = href.match(/video\/(\S*)\/\?region/)[1];
  lösen(`https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=${id}`);
  } anders {
  Lösung (falsch)
  }
 })
 });
}
 
getApiUrl('xxx').then(api=>{
//xxx
})

Ich werde den Code später vervollständigen, ein vollständiges Tool zum „Entfernen von Wasserzeichen“ schreiben und es auf meiner eigenen Website veröffentlichen.

endlich

Der gesamte Vorgang ist nicht schwierig, macht aber ziemlich viel Spaß. Und ich habe viele interessante Dinge gefunden. Die Videoliste oben enthält viele Informationen, und ich kann sie immer noch erkunden.

Damit ist der Artikel über die Implementierung der auf dem Markt erhältlichen Tools zum Entfernen von Wasserzeichen für Kurzvideos (Douyin) abgeschlossen. Weitere Inhalte zu Tools zum Entfernen von Wasserzeichen für Kurzvideos finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den unten aufgeführten verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Python implementiert Bildreparatur (kann zum Entfernen von Wasserzeichen verwendet werden)
  • So entfernen Sie mit javacv Wasserzeichen aus Bildern (mit Code)
  • Methode zum Entfernen von IcePDF-Wasserzeichen (empfohlen)
  • Beispielcode eines WeChat-Applets, das den Kurzvideo-Umschalteffekt von TikTok imitiert
  • Vue-Login-Startseite, dynamische Hintergrund-Kurzvideoproduktion
  • Python verwendet Scrapy Crawler, um kurze Videos der gesamten Site in nur 50 Codezeilen herunterzuladen
  • Android imitiert WeChat, um kurze Videos aufzunehmen

<<:  Installieren Sie das komprimierte MySQL5.7-Paket schnell unter Windows

>>:  So verwenden Sie Nginx zum Simulieren der Canary-Freigabe

Artikel empfehlen

Beispiel für die Einrichtung eines mehrspaltigen Layouts gleicher Höhe mit CSS

Mehrere Spalten haben zunächst unterschiedliche I...

JavaScript implementiert kreisförmiges Karussell

In diesem Artikel wird der spezifische JavaScript...

FastDFS- und Nginx-Integration zur Codeanalyse

FastDFS- und Nginx-Integration: Der Tracker wird ...

Webdesign-Referenz Firefox-Standardstil

Obwohl das W3C einige Standards für HTML festgeleg...

getdata Tabelle Tabellendaten Join MySQL-Methode

öffentliche Funktion json_product_list($where, $o...

Informationen zur Auswahl des Uhrzeit-, Datums- und Zeichenfolgentyps in MySQL

Inhaltsverzeichnis 1. Verwendung von DATETIME und...

HTML imitiert die Dropdown-Menüfunktion der Baidu-Enzyklopädienavigation

HTML imitiert die Dropdown-Menüfunktion der Baidu...

Detaillierte Erklärung der scp- und sftp-Befehle unter Linux

Inhaltsverzeichnis Vorwort 1. SCP-Nutzung 2. Verw...

Webpack lädt CSS-Dateien und ihre Konfigurationsmethode

webpack lädt CSS-Dateien und deren Konfiguration ...

Einführung in MySQL-Rollenfunktionen

Inhaltsverzeichnis Vorwort: 1. Einführung in die ...

Analyse der MySQL-Transaktionsmerkmale und Ebenenprinzipien

1. Was ist eine Transaktion? Eine Datenbanktransa...