[VB.net] YouTube API Bot Snippets

08/11/2011 20:25 Yakiyo#1
Hey Leute,

da die Anfrage doch ziemlich groß ist, hier mal ein paar Snippets bezüglich der YouTube API.

Voraussetzungen:

- Visual Basic Grundlagen
- Die DLL's ([Only registered and activated users can see links. Click Here To Register...])
- Den Developerkey ([Only registered and activated users can see links. Click Here To Register...])
- Und ein Gehirn (Sollte nicht auf Stand-By sein!)

Erste Schritte:

Bevor man anfängt sollte man folgende Verweise setzen:
  • Google.GData.Client.dll
  • Google.GData.Extensions.dll
  • Google.GData.YouTube.dll

Außerdem benötigt man folgende Imports:

Code:
Imports Google.GData.Client
Imports Google.GData.Extensions
Imports Google.GData.YouTube
Imports Google.GData.YouTube.YouTubeService
Imports Google.GData.Extensions.MediaRss
Imports Google.YouTube
Imports System.Management
Imports System.Net
Imports System.IO
Die Snippets:

Als aller Erstes muss man sich mittels dem Developerkey und einem Account verifzieren:

Code:
Dim settings As YouTubeRequestSettings
Dim request As YouTubeRequest
settings = New YouTubeRequestSettings(APPLICATION_NAME, DEVELOPER_KEY, ACC_USERNAME, ACC_PASSWORD)
request = New YouTubeRequest(settings)
APPLICATION_NAME: Der Name, den du im Google-Dashboard gewählt hast.
DEVELOPER_KEY: Der Developerkey.
ACC_USERNAME + ACC_PASSWORD: Selbstverständlich


Dann solltest du ein Video definieren:

Code:
Dim VideoFeedUri As Uri
Dim dVideo As Video
VideoFeedUri = New Uri("http://gdata.youtube.com/feeds/api/videos/" + dVideoID)
dVideo = request.Retrieve(Of Video)(VideoFeedUri)
dVideoID = Die Video ID (Das Teil hinter watch?v= OHNE spezielle Erweiterungen wie &feature=related

Nachdem du dich verifiziert hast und ein Video definiert hast, kannst du endlich loslegen.

Like Video:

Code:
dVideo.Rating = 5
request.Insert(dVideo.RatingsUri, dVideo)
Dislike Video:

Code:
dVideo.Rating = 1
request.Insert(dVideo.RatingsUri, dVideo)
Uploader vom Video abonnieren:

Code:
Dim s As Subscription = New Subscription
s.Type = SubscriptionEntry.SubscriptionType.channel
s.UserName = dVideo.Uploader
request.Insert(New Uri(YouTubeQuery.CreateSubscriptionUri("SUBSCRIBER_ACC")), s)
SUBSCRIBER_ACC: Der Account der den Uploader abonniert. Es muss der Account sein, mit dem du dich verifiziert hast.
Not: Du kannst jeden Kanal abonnieren. Du musst einfach nur s.UserName. konfigurieren.

Video den Favoriten hinzufügen:

Code:
Dim videoEntryUrl As String = "http://gdata.youtube.com/feeds/api/videos/" + dVideoID
Dim service As YouTubeService = request.Service
Dim videoEntry As YouTubeEntry = service.Get(videoEntryUrl)
Dim feedUrl As String = "http://gdata.youtube.com/feeds/api/users/default/favorites"
service.Insert(New Uri(feedUrl), videoEntry)
Kommentar hinzufügen:

Code:
Dim c As Comment = New Comment()
c.Content = "Comment Content"
request.AddComment(dVideo, c)
Video reporten:

Code:
Dim c As Complaint = New Complaint
c.Type = ComplaintEntry.ComplaintType.DANGEROUS
c.Content = "This video is dangerous!! My son watched it, this should be deleted"
request.Insert(dVideo.ComplaintUri, c)
Notiz: Andere Typen sind: ComplaintEntry.ComplaintType.HATE, ComplaintEntry.ComplaintType.PORN, ComplaintEntry.ComplaintType.RIGHTS, ComplaintEntry.ComplaintType.SPAM, ComplaintEntry.ComplaintType.VIOLENCE

Nachricht senden:

Code:
Dim friedsInbox As String = "http://gdata.youtube.com/feeds/api/users/" + id + "/inbox"
Dim newMessage As MessageEntry = New MessageEntry
Dim videoEntry As YouTubeEntry = request.Service.Get("http://gdata.youtube.com/feeds/api/videos/" + dVideoID)

newMessage.Title.Text = "Message Subject / Title"
newMessage.Summary.Text = "Message Text"
newMessage.Id = videoEntry.Id

request.Service.Insert(New Uri(friedsInbox), newMessage)
id = Account, der die Nachricht erhält.

Kontakt hinzufügen:

Code:
Dim feedUrl As String = "http://gdata.youtube.com/feeds/api/users/default/contacts"
Dim newFriend As FriendsEntry = New FriendsEntry
newFriend.UserName = "FriendToAdd"
newFriend.Categories.Add(New AtomCategory("Friend Category", YouTubeNameTable.FriendsCategorySchema))
request.Service.Insert(New Uri(feedUrl), newFriend)

Credits: Pwhoam, Yakiyo (Übersetzt)

MfG ~
08/15/2011 10:33 .Headliner#2
kannste mal n tutorial machen ???
in welchem das gezeigt wird und auch wie man die auto login, logout function einsetzt,
oder am besten wäre die google seite von API auf deutsch zu übersetzern.
08/18/2011 22:36 Che#3
hrm das guck ich mir mal an ^^ dev key hab ich mir schnell einen geholt... mal gucken obs funzt... aber was meinst du mit "verweise setzen" ?!?!
08/19/2011 20:36 Yakiyo#4
Müsste da zu finden sein:

Projekt -> Verweis hinzufügen -> Com (Musste mal schauen, bin mir da nicht so sicher. Auf jeden Fall solltest du DLL's auf deinem Computer suchen können) -> Dann die jeweiligen DLL's suchen und bestätigen.

Dann halt importieren.
08/19/2011 22:07 Che#5
achso die dlls ins projekt importieren.. sags halt gleich xDDD
08/19/2011 22:11 boxxiebabee#6
Quote:
Originally Posted by .Headliner View Post
kannste mal n tutorial machen ???
in welchem das gezeigt wird und auch wie man die auto login, logout function einsetzt,
oder am besten wäre die google seite von API auf deutsch zu übersetzern.
Bitte hör doch auf zu Programmieren.
1. Ich sehe now LQ-Post's von dir
2a. Weil du anscheinend nichtmal Englisch kannst
2b. Weil das erforderlich ist...
3. Weil du nichtmal einem Tutorial folgen kannst
4. Wieso gibs soviele (nicht alle) VB.net "Programmier" die von tuten und blasen keine ahnung haben?!

Achja, von Google selbst gibs auch nen "How-To". (hab keinen link hier im thread dazu gefunden)
[Only registered and activated users can see links. Click Here To Register...]
(müsst ihr selbst schaun obs das für vb.net gibt :>)
08/20/2011 02:44 FbFunnY#7
sehr gut.danke
08/21/2011 17:52 .Cdog#8
Kann jm mall sein Fertiges Projekt hochladen?
08/22/2011 12:51 Kraizy​#9
Damit dus dann verkaufen kannst?^^
09/01/2011 12:17 .Headliner#10
wann kommt das mir versprochene tut ???
09/01/2011 12:33 Yakiyo#11
Wenn ich Bock habe?

Und achja, wenn du noch nicht einmal die Grundlagen beherrscht, wirds schwierig mit nem Bot. ;)
12/27/2011 10:36 spidertimo#12
Wenn ich ein Video liken möchte, funktioniert das ja nur bei dem Video, von dem ich die ID angegeben habe. Gibt es eine Möglichkeit, wie ich alle Videos von einem Kanal liken kann?
12/27/2011 14:41 MoepMeep#13
Alle Videos von einem Channel auslesen sollte möglich sein, lies dir halt mal die Dokumentation durch.

edit: jo geht, und ist verdammt einfach. Wenn man auch nur ansatzweise lesen und denken kann, kriegt man das hin :>
12/27/2011 15:28 spidertimo#14
Danke, habs hinbekommen! :)
12/29/2011 10:44 Train™#15
ich hab ne frage: wie mache ich das das programm z.b. eine textbox nacheinander die account durcharbeitet?