Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 09:42

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Autoit] Youtube Code Snippets

Discussion on [Autoit] Youtube Code Snippets within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
bassbanane's Avatar
 
elite*gold: 116
Join Date: Oct 2007
Posts: 677
Received Thanks: 248
[Autoit] Youtube Code Snippets

Tag Zusammen.

Wie wohl die meisten von euch mitbekommen haben, bieten derzeit sehr viele User hier sogenannte Youtube Services an, bei denen man Abos, Likes, Dislikes etc. kaufen kann.
Doch wer wirklich Erfolg haben will, braucht natürlich viele Abonnenten und Likes, was per Hand Tage dauern würde.
Deshalb werden hier in letzter Zeit immer mehr Youtube Bots verkauft.
Was, wie ich finde, ein ziemliche Abzocke ist, da das meist nur sehr schlechte Bots sind, die lediglich den Internet Explorer versteckt aufruft und dort die entsprechenden Aktionen durchführen.
Somit habe ich mir gedacht ich release mal ein paar Grundfunktionen, um in Autoit zu liken, disliken, abonnieren etc.
Also fangen wir mal an.

Zuerst müssen wir uns natürlich bei Youtube einloggen.
Das realisieren wir durch diesen Code:
Code:
func YouLogin($user, $pw)
$ie = _IECreate("https://www.google.com/accounts/ServiceLogin?uilel=3&service=youtube&passive=true&continue=http%3A%2F%2Fm.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26warned%3D1%26nomobiletemp%3D1%26hl%3Dde_DE%26next%3D%252F&hl=de_DE&ltmpl=mobile", 0,1,1)


$oUsername = _IEGetObjById($ie, "Email")
$oPasswd = _IEGetObjById($ie, "Passwd")
$oSignIn = _IEGetObjById($ie, "signIn")

_IEFormElementSetValue($oUsername, $user)
sleep(300)
_IEFormElementSetValue($oPasswd, $pw)

_IEAction($oSignIn, "click")
_IELoadWait($ie)
endfunc
An die Funktion YouLogin werden der Username und das Passwort übergeben. Anschließend wird die Mobile Version von Youtube aufgerufen, da sie wesentlich weniger Ressourcen in Anspruch nimmt, wodurch sich die Ladezeiten verkürzen, und sich mit den Daten eingeloggt.

So, jetzt sind wir schonmal eingeloggt.
Um jetzt z.B. ein Video zu liken, benötigt man folgenden Code:
Code:
func like($url)
	_IENavigate($ie, $url,1)
	$like=_IEGetObjByid($ie, "watch-like")
	_IEAction($like, "click")
	_IELoadWait($ie)
	sleep(1000)
EndFunc
Hierbei wird die normale Video URL an die Funktion like übergeben.
Die normale Video URL sieht in etwa so aus: "http://www.youtube.com/watch?v=XXXXXXXX"
(Über die Mobile Version ist das liken leider sehr unzuverlässig und viele Likes werden nicht gewertet, deshalb mache ich das über die normale Youtube Seite)

Um jetzt aber ein Video zu disliken, muss man den oberen Code nur minimal verändern. Man ersetzt einfach das "watch-like" durch "watch-unlike".
Demnach würde es wie folgt aussehen:
Code:
func dislike($url)
	_IENavigate($ie, $url,1)
	$like=_IEGetObjByid($ie, "watch-unlike")
	_IEAction($like, "click")
	_IELoadWait($ie)
	sleep(1000)
EndFunc
Nun können wir uns also schon einloggen, Videos liken und disliken.
Was den meisten Leuten hier wohl am wichtigsten ist, sind die Abonnenten.
Dazu kommen wir jetzt.
Zum abonnieren habe ich 2 Funktionen. Eine, wo man die VideoID übergibt und eine, wo man den Youtube-Usernamen übergibt.
Beginnen wir mal mit der VideoID.

Die VideoID ist die Zeichenkette, die in einem Videolink nach dem "watch?v=" steht.
Im Beispiel "http://www.youtube.com/watch?v=XYZXYZ" wäre es also "XYZXYZ".

Kommen wir nun zu der Funktion:
Code:
func AboV($url)
	_IENavigate($ie, "http://m.youtube.com/watch?gl=DE&hl=de_DE&client=mv-google&v="&$url,1)
	_IELinkClickByIndex($ie,1)
	_IELoadWait($ie)
	$abo=_IEGetObjByName($ie,"submit",1)
	_IEAction($abo, "click")
	_IELoadWait($ie)
EndFunc
Hierbei wird wieder die Mobile Version von Youtube aufgerufen, damit es ein wenig schneller geht.
Es wird also die VideoID an die Funktion AboV übergeben und anschließend der Benutzer, der das Video hochgeladen hat, abonniert.

Einfacher geht das natürlich, wenn man den Youtube Usernamen schon hat.
Wenn dies der Fall ist, kann man es etwas schneller mit dieser Funktion realisieren:
Code:
func AboUser($user)
	_IENavigate($ie, "http://m.youtube.com/profile?gl=DE&hl=de_DE&client=mv-google&user="&$user)
	$abo=_IEGetObjByName($ie,"submit",1)
	_IEAction($abo, "click")
	_IELoadWait($ie)
EndFunc
Dies läuft auch wieder über die Mobile Version von Youtube.
Hier wird also einfach der Username des zu abonnierenden Nutzers an die Funktion AboUser übergeben.

Zu guter letzt möchte ich euch noch zeigen, wie man einem Video ein Kommentar hinzufügt.
Das ist eigentlich auch gar nicht so schwer.
Dafür wird folgender Code benötigt:
Code:
func comment($url, $comment)
	_IENavigate($ie, "http://m.youtube.com/post_comment?gl=DE&hl=de&client=mv-google&v="&$url,1)
	$posten=_IEGetObjByname($ie, "action_comment")
	$form=_IEFormGetObjByName($ie, "commentForm")
	$box=_IEFormElementGetObjByName($form, "comment")
	_IEFormElementSetValue($box, $comment)
	_IEAction($posten, "click")
	_IELoadWait($ie)
EndFunc
Wieder läuft das über die Mobile Version.
Diesmal benötigen wir wieder die VideoID.
An die Funktion comment wird nun einfach die VideoID und das entsprechende Kommentar übergeben und schon haben wir erfolgreich einen Kommentar geschrieben.


Zum Ende müssen wir uns natürlich auch wieder ausloggen.
Das machen wir durch folgenden Code:
Code:
func logout()
	_IELinkClickByText($ie, "Abmelden")
	_IELoadWait($ie)
	sleep(1000)
EndFunc
(Selbstverständlich, dass dieser Code nicht funktioniert, wenn die Seite auf Englisch dargestellt wird).
Die Funktion wird einfach ohne alle Parameter aufgerufen.



Damit das nun nicht alles zu trocken ist, hier ein kleines Beispiel:
Code:
#include <IE.au3>
$username="testuser"
$passwort="testpasswort"
$videoURL="http://www.youtube.com/watch?v=XYZABC"
$videoID="XYZABC"
$aboUser="youtube"

YouLogin($username,$passwort)
like($videoURL) ODER dislike($videoURL)
AboV($videoID) ODER AboUser($aboUser)
comment($videoID, "Super Video!")
logout()
(Die ganzen oben aufgeführten Funktionen fehlen hier, da es sonst zu viel Text geworden wäre. Ihr müsst die Funktionen natürlich noch einfügen, damit es funktioniert)


Ich hoffe ich konnte euch ein wenig damit helfen.
Es sind nicht die besten und schnellsten Methoden, aber zum Lernen ideal.

MfG bassbanane
bassbanane is offline  
Thanks
2 Users
Old 07/29/2011, 12:22   #2
 
elite*gold: 0
Join Date: Mar 2011
Posts: 8,645
Received Thanks: 3,454
Freddy​ is offline  
Old 07/29/2011, 16:30   #3
 
Reeek's Avatar
 
elite*gold: 0
Join Date: Dec 2008
Posts: 1,304
Received Thanks: 485
ich hasse es, wenn Leute YT-Bots per Browsersteuerung machen >.< LiveHTTPHeaders + TCP = win, Browsersteuerung = langsam und fail!
Reeek is offline  
Old 07/29/2011, 17:54   #4
 
elite*gold: 0
Join Date: Mar 2011
Posts: 8,645
Received Thanks: 3,454
Quote:
Originally Posted by Reeek View Post
ich hasse es, wenn Leute YT-Bots per Browsersteuerung machen >.< LiveHTTPHeaders + TCP = win, Browsersteuerung = langsam und fail!
Ist halt das einfachste. Meiner läuft mitlerweile über API und besser als TCP
Freddy​ is offline  
Old 07/29/2011, 18:54   #5
 
Reeek's Avatar
 
elite*gold: 0
Join Date: Dec 2008
Posts: 1,304
Received Thanks: 485
same here, Python ftw... und rate mal, wie die API connected
Reeek is offline  
Old 07/29/2011, 21:17   #6
 
bassbanane's Avatar
 
elite*gold: 116
Join Date: Oct 2007
Posts: 677
Received Thanks: 248
Dass das alles viel einfacher mit der API ist, ist mir klar, aber damit würde ein Anfänger doch niemals klarkommen.
Außerdem würde ich meinen Code dafür nicht pub machen, da man eigentlich nur die Beispiele von Google kopieren muss.
Dies soll nur eine kleine Einsteigerhilfe sein, damit sie es auch verstehen.
bassbanane is offline  
Reply


Similar Threads Similar Threads
Some Code-Snippets[PSERVER]
07/15/2011 - Kal Hacks, Bots, Cheats & Exploits - 17 Replies
This is the code of the hack which Fremo released.. I got new methods so I dont need this anymore & maybe it'll help some people... G31 Adult Skill if(comboBox4->Text=="Panther'crit'") { KC->Chat(255," Panther Skill ON"); KC->Threads=1; KC->lasttime = timeGetTime()-15000; } else if(comboBox4->Text=="Tiger'otp'")
[Release] Code Snippets Manager
01/21/2011 - Coding Releases - 0 Replies
Code Snippets Manager http://upit.cc/images/1d47d78e.jpg Hab mich heute mal rangesetzt, und einen kleinen Manager für Code-Snippets(Code-Fetzen) gecodet, da ich alles sortiert in einer Anwendung wollte. Da es sicherlich jemand nützlich finden wird, lad ich es hier mal hoch.



All times are GMT +2. The time now is 09:42.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.