【问题标题】:Decode url_encoded_fmt_stream_map to valid Url将 url_encoded_fmt_stream_map 解码为有效的 Url
【发布时间】:2013-04-02 20:14:39
【问题描述】:

我正在使用 url_encoded_fmt_stream_map 来获取 Youtube VideoStream“url”列表。 我想使用这些 url 在我的 VideoView 中显示 Youtube 视频。

我的方法几乎返回一个包含字符串的字符串数组,如下所示:

SIG = 3E0D90E459ADEF9F88553D716B9275930A8AA418.AD0319F9287244E34CCA97F7DE245C0606DD46C5&ITAG = 45&fallback_host = tc.v22.cache5.c.youtube.com&URL = HTTP%3A%2F%2Fr4 --- sn-uigxx50n-8pxl.c.youtube.com%2Fvideoplayback%3Fsparams%3Dcp %252Cid%252Cip%252Cipbits%252Citag%252Cratebypass%252Csource%252Cupn%252Cexpire%26id%3D4e6580527662c67d%26cp%3DU0hVSVlQV19FUENONV9RSkFIOnZ3SkZXb3hfdUdp%26source%3Dyoutube%26fexp%3D919110%252C913564%252C916624%252C932000%252C906383%252C902000%252C919512%252C929903%252C931202%252C900821 %252C900823%252C931203%252C931401%252C909419%252C913566%252C908529%252C930807%252C919373%252C930803%252C906836%252C920201%252C929602%252C930101%252C930603%252C900824%252C910223%26ms%3Dau%26mv%3DM%26mt%3D1364933359%26sver%3D3%26itag %3D45%26key%3Dyt1%26ip%3D178.115.248.80%26newshard%3Dyes%26upn%3DNLMBgU-0oUc%26expire%3D1364959706%26ipbits%3D8%26ratebypass%3Dyes&quality=hd720&type=3D%2Fwebm%3B+cscode%2Fwebm%3B+cscode .0%2C+vorbis%22

如果你仔细看,你会发现这个字符串实际上包含了有效的信息。不幸的是,我不知道如何从中提取有效的网址。

我该怎么做?

如果我使用上面的字符串创建一个 URI 并将其添加到我的 VideoView,则会出现一条消息“无法播放此视频”。弹出来。

【问题讨论】:

    标签: parsing url youtube uri


    【解决方案1】:

    你可能知道,youtube 链接是这样的:

    http://r6---sn-nhpax-ua8l.c.youtube.com/videoplayback?algorithm=throttle-factor&burst=40&cp=U0hVTFlTUV9HUUNONV9RTVVCOkk4ams1XzRlZUpq&cpn=qAthIxAZB16Q6_qB&expire=1367983127&factor=1.25&fexp=927900%2C919357%2C921716%2C916623%2C922911%2C931009%2C932000%2C932004%2C906383%2C904479%2C901208%2C925714%2C929119%2C931202%2C900821%2C900823%2C912518%2C911416%2C930807%2C919373%2C906836%2C926403%2C900824%2C912711%2C929606%2C910075&id=932a6c200e40b791&ip=84.228.249.95&ipbits=8&itag=34&key=yt1&ms=au&mt=1367957244&mv=m&newshard=yes&ratebypass=yes&signature=7E86D1813AE13CEB544CFF3749FBD042FF50EE91.AF7D6D9DCF286D291825630E733B3407683C46C9&source=youtube&sparams=algorithm%2Cburst%2Ccp%2Cfactor%2Cid%2Cip%2Cipbits%2Citag%2Csource%2Cupn%2Cexpire&sver=3&upn=t0jDC5Yk7Go
    

    正如你所说,我们需要的所有参数都显示在你的字符串中。

    我们需要从您的字符串中提取 2 个重要参数:url 和签名。

    链接最终应该是这样的:url + "&signature=" + sig。

    您可以查看我的代码,其中我从 youtube 链接中提取了所有可用的链接。它是用 Java 编写的,适用于 Android 应用程序:link

    【讨论】:

      【解决方案2】:

      感谢您的努力。

      我通过坚持使用官方 YouTube API 解决了这个问题。另请参阅此问题:

      Getting YouTube Video ID including parameters

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-03-26
        • 1970-01-01
        • 1970-01-01
        • 2013-11-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多