2014-11-23 71 views
1

我想找回的MP3的MP3鏈接目標在Perl的SoundCloud飼料,例如該播客的URL的最終位置:http://feeds.soundcloud.com/stream/176971524-thetalkshow-thetalkshow-100.mp3的Perl:如何獲得的SoundCloud飼料MP3的鏈接目標

如果我嘗試將它解析爲comlex http://ec-media.soundcloud.com/ ....地址。

有沒有可能在Perl中得到這個解決ec-media.soundcloud地址?

我已經嘗試下面的代碼,但沒有成功

use LWP::UserAgent qw(); 
my $ua = LWP::UserAgent->new; 
my $response = $ua->get('http://feeds.soundcloud.com/stream/176971524-thetalkshow-thetalkshow-100.mp3'); 
print $response->request->uri . "\n"; 
+1

獲取文件本身的URL很可能是由soundcloud動態生成的,即使您能夠提取它也可能無法持續工作。 – 2014-11-23 10:50:02

回答

0

您也可以下載使用LWP MP3文件::簡單:

use strict; 
use warnings; 
use LWP::Simple; 
my $url = "http://feeds.soundcloud.com/stream/176971524-thetalkshow-thetalkshow-100.mp3"; 
getstore($url, "my-file-name.mp3"); 
+0

謝謝,但我不想下載它,但只能得到最終的文件地址 – Andy 2014-11-23 10:52:47

+0

你在哪裏尋找該URL? – 2014-11-23 11:54:35

0

你的意思是獲得301或302重定向地址。只需禁用自動重定向。

use LWP::UserAgent qw(); 
my $ua = LWP::UserAgent->new; 
$ua->max_redirect(0); # disable auto redirect 
my $response = $ua->get('http://feeds.soundcloud.com/stream/176971524-thetalkshow-thetalkshow-100.mp3'); 
print "new location: " . $response->header('Location'); 
+0

謝謝你解決了我的問題。但是,我必須在第三行中將max_redirect從0更改爲1.如果您在答案中更改了此內容,我會立即將其標記爲答案。 – Andy 2014-11-23 16:04:00

+0

@我只是好奇,第一次重定向到哪裏? – idbehold 2014-11-23 16:54:06

+0

有時候我們不知道網址會產生多少重定向,通常你應該編寫一個循環,直到沒有重定向(帶有位置標頭的301,302)響應返回,然後得到最終的url。 – javamonk 2014-11-24 00:51:40