我需要帮助。我马上给你看代码。但首先我要概述一下我要做的事情。这是一个帮助我在Youtube上搜索最新歌曲的程序。在
本质上,它使用一个文本文件并使用这些数据在Youtube上搜索文本文件中的每一项。我使用readline,然后用制表符将它们分开。我使用的文本文件格式如下:
曲目编号[tab]歌曲名称[tab]艺术家[tab]标签 --进一步查看全文文件
文本文件前100名示例
1[tab]灯笼[tab]东京鸟[tab]CAP/EMI
当我是你的人时布鲁诺·马尔斯ATL/WMA
3[tab]嘿,发光二极管的惯性
4[tab]在您美丽的[tab]Labrinth ft.Emeli Sande[tab]SME下方
5[tab]给我一个理由[tab]Pink ft.Nate Ruess[tab]SME
import gdata.youtube
import gdata.youtube.service
import webbrowser
topSongVersion = "0.1"
yt_service = gdata.youtube.service.YouTubeService()
songListRaw = []
songList = []
videoData = []
def SearchAndBuild(keywords):
videoData = []
query = gdata.youtube.service.YouTubeVideoQuery()
for songEntry in range(0, 25):
query.orderby = 'viewCount'
query.racy = 'include'
query.vq = keywords[songEntry][0] + ' ' + keywords[songEntry][-1]
feed = yt_service.YouTubeQuery(query)
#videoData.append(feed.entry[songEntry].media.title.text)
#videoData.append(feed.entry[songEntry].GetSwfUrl())
videoData.append(query.vq + ' ' + feed.entry[songEntry].GetSwfUrl())
print songEntry, query.vq, feed.entry[songEntry].GetSwfUrl()
print(videoData[24])
#print videoData
def SongsFromFile():
f = open('top100.txt')
songData = f.readlines()
f.close()
for songRaw in range(1,101):
songListRaw.append(songData[songRaw].split('\t'))
for songEntry in range(0,100):
songList.append(songListRaw[songEntry][1:-1])
SearchAndBuild(songList)
# print(songList[0])
# print(songList[1])
# print(testSearch[0])
# print(testSearch[1])
SongsFromFile()
抱歉,打印太多了。这些是为了测试目的。如果你检查SearchAndBuild函数,你会发现我哪里出了问题。我试图获取由SongsFromFile设置的歌曲列表,然后使用该数据创建另一个包含歌曲标题和歌曲URL的列表。一开始我尝试了“songEntry in range(0,99)”,但这使索引一直超出范围。我怀疑这是Youtube设置api的方式,所以我把它改为“范围内的songEntry(0,25)”
这似乎已经修复了超出范围的异常。要么是Youtube api,要么是我遗漏了什么。我只是好奇为什么它会迫使我分开我的查询。我需要再设置三个for循环来建立100个项目吗?有更好的方法吗?在
显然,这是一个正在进行的工作。我可能做了很多蠢事,却错过了简单的解决方案。为什么我用范围,为什么我用列表而不是dict?如果你看到我在这里做的荒唐事,请告诉我并解释更好的方法。在
真诚的, 乔希
好吧,看来我自己已经修好了。起初我是对的。对。有更好的方法来做到这一点。然而,问题出在Youtube的API上,就像我最初怀疑的那样。默认情况下,最大查询结果变量设置为25。我想查询100。这就是为什么我会越界。我首先想到的应该是查阅Youtube API。解决这么多麻烦是件很容易的事;不过,现在不要指望它能起到多大作用。这是一项正在进行的工作。最终,我会用它在Youtube上找到我正在收集的数据库中的歌曲。在
就像我说的。这个程序还没有做任何有意义的事情。我还有很多代码要添加。无论如何,我应该把这一点记录下来,以防其他人在使用googlepythonyoutube API进行搜索查询时遇到类似的问题。记住这一点,如果你一直抛出超出范围,Youtube的限制是50,默认设置为25。你得设法解决这个问题。在
非常感谢hoopadady的评论,让我重回正轨。在
Text File ( top100.txt )
---------------------------------
Top 100
1 Lanterns Birds Of Tokyo CAP/EMI
2 When I Was Your Man Bruno Mars ATL/WMA
3 Ho Hey The Lumineers INERTIA
4 Beneath Your Beautiful Labrinth ft. Emeli Sande SME
5 Just Give Me A Reason Pink ft. Nate Ruess SME
6 Stay Rihanna ft. Mikky Ekko IDJ/UMA
7 Impossible James Arthur SME
8 Troublemaker Olly Murs ft. Flo Rida SME
9 Locked Out Of Heaven Bruno Mars ATL/WMA
10 Everybody Talks Neon Trees MERCUK/UMA
11 Love Is Easy McFly MERCUK/UMA
12 Little Talks Of Monsters And Men UNI/UMA
13 I Love It Icona Pop NEON/WMA
14 I Knew You Were Trouble Taylor Swift BIG/UMA
15 Can’t Hold Us Macklemore & Ryan Lewis ft. Ray Dalton MACKLEMORE LLC
16 I Could Be The One Avicii ft. Nicky Romero UNI/UMA
17 Thrift Shop Macklemore & Ryan Lewis ft. Wanz MACKLEMORE LLC
18 Thank You MKTO SME
19 Mirrors Justin Timberlake SME
20 Scream & Shout will.i.am ft. Britney Spears IGA/UMA
21 Feel This Moment Pitbull ft. Christina Aguilera SME
22 I Need Your Love Calvin Harris ft. Ellie Goulding SME
23 Try Pink SME
24 Small Bump Ed Sheeran ATL/WMA
25 Same Love Macklemore & Ryan Lewis ft. Mary Lambert MACKLEMORE LLC
26 I Will Wait Mumford & Sons DEW/UMA
27 Let Her Go Passenger INERTIA
28 What You’ve Done To Me Samantha Jade SME
29 Holdin On Flume FC/WMA
30 Hello Stafford Brothers ft. Lil Wayne & Christina Milian UNI/UMA
31 Sweet Nothing Calvin Harris ft. Florence Welch SME
32 Pompeii Bastille VIR/EMI
33 Give Me Love Ed Sheeran ATL/WMA
34 Diamonds Rihanna IDJ/UMA
35 Blow Me (One Last Kiss) Pink SME
36 Army Of Two Olly Murs SME
37 Still Into You Paramore ATL/WMA
38 Daylight Maroon 5 A&M/UMA
39 One More Night Maroon 5 A&M/UMA
40 Don’t You Worry Child Swedish House Mafia CAP/EMI
41 Mountain Sound Of Monsters And Men UNI/UMA
42 We Are Never Ever Getting Back Together Taylor Swift BIG/UMA
43 Guns & Roses T.I. ft. Pink ATL/WMA
44 Hall Of Fame The Script ft. will.i.am SME
45 Get Lucky Daft Punk ft. Nile Rogers, Pharrell SME
46 Drinking From The Bottle Calvin Harris ft. Tinie Tempah SME
47 Hey Porsche Nelly UNI/UMA
48 Beauty & A Beat Justin Bieber ft. Nicki Minaj IDJ/UMA
49 Blurred Lines Robin Thicke ft. T.I & Pharrell IGA/UMA
50 Change Your Life Little Mix SME
51 Get Up (Rattle) Bingo Players ft. Far East Movement ONELOVE
52 It’s Time Imagine Dragons IGA/UMA
53 The Other Side Jason Derulo WB/WMA
54 Waiting All Night Rudimental ft. Ella Eyre WMUK/WMA
55 Good Time Owl City & Carly Rae Jepsen UNI/UMA
56 Get Along Guy Sebastian SME
57 Next To Me Emeli Sande VIR/EMI
58 Suit & Tie Justin Timberlake ft. Jay Z SME
59 ThatPOWER Will.I.Am ft. Justin Bieber IGA/UMA
60 Not Giving In Rudimental ft. John Newman & Alex Clare WMUK/WMA
61 Right Now Rihanna ft. David Guetta IDJ/UMA
62 Treasure Bruno Mars ATL/WMA
63 Some Nights Fun. ATL/WMA
64 Radioactive Rita Ora SME
65 22 Taylor Swift BIG/UMA
66 Put Your Hands Up Matchbox Twenty ATL/WMA
67 Best Night Justice Crew SME
68 Rest Of My Life Ludacris ft. Usher & David Guetta IDJ/UMA
69 Battle Scars Guy Sebastian ft. Lupe Fiasco SME
70 Let Me Down Easy Sheppard CHUGG/MGM
71 Feel The Love Rudimental WMUK/WMA
72 She’s So Mean Matchbox Twenty ATL/WMA
73 Girl On Fire Alicia Keys SME
74 She Wolf (Falling To Pieces) David Guetta ft. Sia VIR/EMI
75 It’s A Beautiful Day Michael Buble WB/WMA
76 Let Me Love You (Until You Learn To Love Yourself) Ne-Yo IDJ/UMA
77 Global Concepts Robert DeLong LBR/UMA
78 Bed Of Clouds Swift K.I.D. ft. Guy Sebastian NEON/WMA
79 Alive Empire Of The Sun CAP/EMI
80 This Is What It Feels Like Armin Van Buuren ft Trevor Guthrie XXX
81 Everything Has Changed Taylor Swift ft. Ed Sheeran BIG/UMA
82 Beautiful Mariah Carey IDJ/UMA
83 Language Porter Robinson HUS/UMA
84 Here’s To Never Growing Up Avril Lavigne SME
85 C’mon Ke$ha SME
86 We Come Running Youngblood Hawke UNI/UMA
87 Let It Roll Flo Rida ATL/WMA
88 Spectrum Florence & The Machine ISLUK/UMA
89 How Ya Doin? Little Mix SME
90 Boom Boom Justice Crew SME
91 Happening Chiddy Bang CAP/EMI
92 Need U 100% Duke Dumont ft. AME MOS/UMA
93 We’ll Be Coming Back Calvin Harris ft. Example SME
94 Turn Up The Love Far East Movement ft. Cover Drive IGA/UMA
95 Don’t Wake Me Up Prinnie MERCAU/UMA
96 Saved In A Bottle The Potbelleez MOS/UMA
97 Arena B.o.B ft. Chris Brown & T.I. ATL/WMA
98 Dear Darling Olly Murs SME
99 Drunk Ed Sheeran ATL/WMA
100 My Songs Know What You Did In The Dark (Light Em Up) Fall Out Boy IDJ/UMA
我现在在做什么
这是下一步。以防有人好奇。在
def Ask2Open(songs):
for i in songs:
print i
我打算在这里使用webbrowser打开包含在歌曲中的Youtube网址。显然,我不想同时打开10多个网页。所以我将使用一个循环,然后在满足某些条件时中断,或者只是询问何时转到下一个项目,等等,不过,我稍后会解决这个问题。在
目前没有回答
相关问题 更多 >
编程相关推荐