ykdl icon indicating copy to clipboard operation
ykdl copied to clipboard

请求添加西瓜视频下载支持

Open toorich opened this issue 4 years ago • 31 comments

在提交前,请确保您已经检查了以下内容!

请将错误输出粘贴在下面:

ykdl -i https://www.ixigua.com/i6785489916194193928/ --debug
DEBUG:common:video_host> www.ixigua.com
DEBUG:common:short_name> ixigua
DEBUG:common:> Try HTTP Redirection!
DEBUG:common:> NO HTTP Redirection
DEBUG:common:> Go Generalembed
DEBUG:html:get_content> URL: https://www.ixigua.com/i6785489916194193928/
DEBUG:html:get_content> Charset: utf-8
ERROR:YKDL:Playlist is not supported for GeneralEmbed ( 通用嵌入视频)with url: https://www.ixigua.com/i6785489916194193928/

如果您有其他附言,例如问题只在某个视频发生,或者是一般性讨论或者提出新功能,请在下面添加:

如题,you-get原版是支持的,但是只能支持到480p,如果可能最好连1080p一起支持上

toorich avatar Jan 25 '20 19:01 toorich

现在的头条接口好像不能获取1080P.mp4,只能获取到720P 1080P是dash格式,加密过的

    try:
        isDash = 0  # 1:dash , 0:mp4
        getToken = common.curl(
            "https://www.ixigua.com/api/videov2/video_token?_signature=&vid=%s&isDash=%s&isLVideo=0"
            % (vid, isDash)
        )
        getJson = common.loads(getToken)
        authToken = getJson["data"]["AuthToken"]
        pToken = getJson["data"]["BusinessToken"]

        headers = {
            "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:72.0) Gecko/20100101 Firefox/72.0",
            "Accept": "application/json, text/plain, */*",
            "Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
            "Authorization": authToken,
            "Origin": "https://www.ixigua.com",
            "Connection": "keep-alive",
            "Referer": "https://www.ixigua.com/",
        }

        params = (
            ("action", "GetPlayInfo"),
            ("video_id", vid),
            ("nobase64", "1"),
            ("ptoken", pToken),
            ("vfrom", "xgplayer"),
        )

        url = "https://vas.snssdk.com/video/openapi/v1/"
        html = common.curl(url, {"method": "get", "header": headers, "params": params})
        ....

    except:
        url = "http://i.snssdk.com/video/urls/1/toutiao/mp4/%s?nobase64=1" % vid
        html = common.curl(url)

图片

airdge avatar Jan 27 '20 07:01 airdge

可以用这个接口(使用iPhone的UA访问):https://api-hl.amemv.com/aweme/v1/play/?video_id=v02004140000boleciimac2vul5c8dr0&ratio=1080p&watermark=0&h265=0

供参考

xhlove avatar Jan 29 '20 04:01 xhlove

可以用这个接口(使用iPhone的UA访问):https://api-hl.amemv.com/aweme/v1/play/?video_id=v02004140000boleciimac2vul5c8dr0&ratio=1080p&watermark=0&h265=0

供参考

额 这个接口还能用 ratio参数可用

但单独使用这个接口是有问题的,还得配合其他接口来获取正确的分辨率

https://aweme.snssdk.com/aweme/v1/play/?video_id=v020430e0000boa819feqk8cg329n6i0&line=0&ratio=720p&watermark=0
https://aweme.snssdk.com/aweme/v1/play/?video_id=v020430e0000boa819feqk8cg329n6i0&line=0&ratio=1080p&watermark=0

airdge avatar Jan 29 '20 06:01 airdge

在名字中有xgplayer_encrypt的js中,于f = window.Module.UTF8ToString(p)处可以获取到解密需要的key(f值)。 例如该视频的1080对应的视频流可以通过下面的命令解密,其中

  • 5e2ae64a565305ff54ac43760002004b是license接口返回的kid(也是视频文件本身的id,可以通过bento4的mp4dump工具查看到)
  • 824f9b328d264c10b148488fd5ccd40a是f的值
mp4decrypt.exe --key 5e2ae64a565305ff54ac43760002004b:824f9b328d264c10b148488fd5ccd40a media-video-avc1.mp4 decrypt.mp4

mp4decrypt.exe文件可于此下载。

xhlove avatar Jan 29 '20 15:01 xhlove

mp4decrypt 是 Bento4 中的一个工具,完整的 Binary Releases 下载地址 https://www.bento4.com/downloads/

Bento4 的 git repository https://github.com/axiomatic-systems/Bento4

mengmo avatar Jan 29 '20 15:01 mengmo

mp4decrypt 是 Bento4 中的一个工具,完整的 Binary Releases 下载地址 https://www.bento4.com/downloads/

Bento4 的 git repository https://github.com/axiomatic-systems/Bento4

这你就naive了,在这里官方的并不能成功解密。

xhlove avatar Jan 29 '20 16:01 xhlove

mp4decrypt 是 Bento4 中的一个工具,完整的 Binary Releases 下载地址 https://www.bento4.com/downloads/ Bento4 的 git repository https://github.com/axiomatic-systems/Bento4

这你就naive了,在这里官方的并不能成功解密。

这就是用的就是 Bento4 官方 Binary Releases 中的 mp4decrypt media-video-avc1_decrypt

mengmo avatar Jan 29 '20 23:01 mengmo

另外,KID 也写在了 manifest 的</ContentProtection>

<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:cenc="urn:mpeg:cenc:2013" minBufferTime="PT5.00S" type="static" mediaPresentationDuration="PT5M10.800S" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011">
        <Period>
                <AdaptationSet segmentAlignment="true" maxWidth="854" maxHeight="480" mimeType="video/mp4" startWithSAP="1">
                        <Representation id="1" codecs="avc1.640032" width="1920" height="1080" frameRate="30" bandwidth="3207270" scanType="progressive">
                                <BaseURL>tos-cn-vd-0026/1e1c998b037141d594b0e11d887bcd85/media-video-avc1</BaseURL>
                                <SegmentBase indexRange="1347-2134">
                                        <Initialization range="0-1346"></Initialization>
                                </SegmentBase>
                                <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="5e2ae64a-5653-05ff-54ac-43760002004b"></ContentProtection>
                        </Representation>
                        <Representation id="2" codecs="avc1.64001F" width="1280" height="720" frameRate="30" bandwidth="1793630" scanType="progressive">
                                <BaseURL>tos-cn-vd-0026/aa4cf1585af24c73ba0145c3c5696fe7/media-video-avc1</BaseURL>
                                <SegmentBase indexRange="1345-2132">
                                        <Initialization range="0-1344"></Initialization>
                                </SegmentBase>
                                <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="5e2ae64a-5653-05ff-54ac-43760002004b"></ContentProtection>
                        </Representation>
                        <Representation id="3" codecs="avc1.64001E" width="640" height="360" frameRate="30" bandwidth="489857" scanType="progressive">
                                <BaseURL>tos-cn-vd-0026/f31e99f87ce0416e92b21bdbd75aff5e/media-video-avc1</BaseURL>
                                <SegmentBase indexRange="1347-2134">
                                        <Initialization range="0-1346"></Initialization>
                                </SegmentBase>
                                <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="5e2ae64a-5653-05ff-54ac-43760002004b"></ContentProtection>
                        </Representation>
                        <Representation id="4" codecs="avc1.64001F" width="854" height="480" frameRate="30" bandwidth="781957" scanType="progressive">
                                <BaseURL>tos-cn-vd-0026/18f3b6f56a5946f5b78ec3eaac9293f9/media-video-avc1</BaseURL>
                                <SegmentBase indexRange="1347-2134">
                                        <Initialization range="0-1346"></Initialization>
                                </SegmentBase>
                                <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="5e2ae64a-5653-05ff-54ac-43760002004b"></ContentProtection>
                        </Representation>
                </AdaptationSet>
                <AdaptationSet segmentAlignment="true" mimeType="audio/mp4" startWithSAP="1">
                        <Representation id="5" codecs="mp4a.40.2" bandwidth="72383">
                                <BaseURL>tos-cn-vd-0026/1e1c998b037141d594b0e11d887bcd85/media-audio-und-mp4a</BaseURL>
                                <SegmentBase indexRange="1187-1974">
                                        <Initialization range="0-1186"></Initialization>
                                </SegmentBase>
                                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></AudioChannelConfiguration>
                        </Representation>
                        <Representation id="6" codecs="mp4a.40.2" bandwidth="72383">
                                <BaseURL>tos-cn-vd-0026/aa4cf1585af24c73ba0145c3c5696fe7/media-audio-und-mp4a</BaseURL>
                                <SegmentBase indexRange="1187-1974">
                                        <Initialization range="0-1186"></Initialization>
                                </SegmentBase>
                                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></AudioChannelConfiguration>
                        </Representation>
                        <Representation id="7" codecs="mp4a.40.2" bandwidth="72383">
                                <BaseURL>tos-cn-vd-0026/f31e99f87ce0416e92b21bdbd75aff5e/media-audio-und-mp4a</BaseURL>
                                <SegmentBase indexRange="1187-1974">
                                        <Initialization range="0-1186"></Initialization>
                                </SegmentBase>
                                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></AudioChannelConfiguration>
                        </Representation>
                        <Representation id="8" codecs="mp4a.40.2" bandwidth="72383">
                                <BaseURL>tos-cn-vd-0026/18f3b6f56a5946f5b78ec3eaac9293f9/media-audio-und-mp4a</BaseURL>
                                <SegmentBase indexRange="1187-1974">
                                        <Initialization range="0-1186"></Initialization>
                                </SegmentBase>
                                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></AudioChannelConfiguration>
                        </Representation>
                </AdaptationSet>
        </Period>
</MPD>

mengmo avatar Jan 29 '20 23:01 mengmo

mp4decrypt 是 Bento4 中的一个工具,完整的 Binary Releases 下载地址 https://www.bento4.com/downloads/ Bento4 的 git repository https://github.com/axiomatic-systems/Bento4

这你就naive了,在这里官方的并不能成功解密。

这就是用的就是 Bento4 官方 Binary Releases 中的 mp4decrypt media-video-avc1_decrypt

这就奇怪了,我用官方的解密出来的文件没有变化。 http://puui.qpic.cn/vshpic/0/UnPPXGE0dluWr0kALx3CzUSiM0vlKE56c0hR_i2Lkjr8HXwp_0/0

xhlove avatar Jan 30 '20 01:01 xhlove

用我发的那个版本却是可以的,解密出来也是正常的。 http://puui.qpic.cn/vshpic/0/C2-fa6rTcRic1efztuIZFm2VygDRDUT-puueV_HJLg1nkpVv_0/0

环境是 win10 家庭版1809

xhlove avatar Jan 30 '20 01:01 xhlove

经测试确认 Bento4 1.5.1-628 Binary Releases 中的 mp4decrypt 存在这个问题 http://puui.qpic.cn/vshpic/0/UnPPXGE0dluWr0kALx3CzUSiM0vlKE56c0hR_i2Lkjr8HXwp_0/0

sha1sum mp4decrypt.exe
11997148a8411e3ae6a3d8d4d131e7d6283de972 *mp4decrypt.exe

Bento4 最新版 1.5.1-629 Binary Releases 中的 mp4decrypt 不存在此问题

sha1sum mp4decrypt.exe
2b245ab77b54c9741cbd4ba947f8e034c345cbf9 *mp4decrypt.exe

@xhlove 另外,你只发了 Windows 版的 mp4decrypt.exe 没看到 @airdge 用的 Mac 吗?

mengmo avatar Jan 30 '20 01:01 mengmo

能直接解析的 没必要用到解密工具 用上面那个抖音api就行了

airdge avatar Jan 30 '20 01:01 airdge

一开始测试官网下载的mp4decrypt.exe发现不行,用其他来源(没有去验证是不是和官方的某一个版本一致)的可以,然后就只发了Windows这个版本。因为我也没法保证MAC的就能用,但是能保证我发出来的是可用的,这样做有什么问题吗? @mengmo

xhlove avatar Jan 30 '20 01:01 xhlove

能直接解析的 没必要用到解密工具 用上面那个抖音api就行了

虽然是这样说,但是目前国内视频网站也在推进各类drm,这方面的探究是有必要的。比如最近优酷改m3u8链接的type绕过加密的方法就不太灵了。

xhlove avatar Jan 30 '20 02:01 xhlove

一开始测试官网下载的mp4decrypt.exe发现不行,用其他来源(没有去验证是不是和官方的某一个版本一致)的可以,然后就只发了Windows这个版本。因为我也没法保证MAC的就能用,但是能保证我发出来的是可用的,这样做有什么问题吗? @mengmo

@xhlove 当然没问题,不过就只能使用 Windows 的人测试了。 而我又发了 Bento4 的官方下载链接就是方便使用其他系统的人测试

mengmo avatar Jan 30 '20 02:01 mengmo

能直接解析的 没必要用到解密工具 用上面那个抖音api就行了

虽然是这样说,但是目前国内视频网站也在推进各类drm,这方面的探究是有必要的。比如最近优酷改m3u8链接的type绕过加密的方法就不太灵了。

附议。 多一种方法就多一重保险。 而且这不就是在探讨吗? @airdge

mengmo avatar Jan 30 '20 02:01 mengmo

在名字中有xgplayer_encrypt的js中,于f = window.Module.UTF8ToString(p)处可以获取到解密需要的key(f值)。 例如该视频的1080对应的视频流可以通过下面的命令解密,其中

  • 5e2ae64a565305ff54ac43760002004b是license接口返回的kid(也是视频文件本身的id,可以通过bento4的mp4dump工具查看到)
  • 824f9b328d264c10b148488fd5ccd40a是f的值
mp4decrypt.exe --key 5e2ae64a565305ff54ac43760002004b:824f9b328d264c10b148488fd5ccd40a media-video-avc1.mp4 decrypt.mp4

mp4decrypt.exe文件可于此下载。

但如果像是《囧妈》这种只能在app播放的怎么办呢? 截至2020年2月1日4时(UTC+8),《囧妈》已经可以在PC端浏览器观看,但you-get似乎无法解析西瓜视频放映厅的视频

toorich avatar Jan 31 '20 20:01 toorich

@toorich 基本是一样的,只是稍微有一点区别,研究下mp4decrypt.exe用法就知道了。

xhlove avatar Feb 01 '20 04:02 xhlove

可用,mp4decrypt解密音视频后,用ffmpeg合并

$ ./mp4decrypt --key 5e2ae64a565305ff54ac43760002004b:824f9b328d264c10b148488fd5ccd40a 360en.mp4 360de.mp4
$ ./mp4decrypt --key 5e2ae64a565305ff54ac43760002004b:824f9b328d264c10b148488fd5ccd40a 1080en.mp4 1080de.mp4
$ ./mp4decrypt --key 5e2ae64a565305ff54ac43760002004b:824f9b328d264c10b148488fd5ccd40a aen.m4a ade.m4a
$  ffmpeg -i 1080de.mp4 -i ade.m4a -c copy 1080full.mp4

图片

airdge avatar Feb 01 '20 04:02 airdge

在名字中有xgplayer_encrypt的js中,于f = window.Module.UTF8ToString(p)处可以获取到解密需要的key(f值)。 例如该视频的1080对应的视频流可以通过下面的命令解密,其中

  • 5e2ae64a565305ff54ac43760002004b是license接口返回的kid(也是视频文件本身的id,可以通过bento4的mp4dump工具查看到)
  • 824f9b328d264c10b148488fd5ccd40a是f的值
mp4decrypt.exe --key 5e2ae64a565305ff54ac43760002004b:824f9b328d264c10b148488fd5ccd40a media-video-avc1.mp4 decrypt.mp4

mp4decrypt.exe文件可于此下载。

~但如果像是《囧妈》这种只能在app播放的怎么办呢?~ 截至2020年2月1日4时(UTC+8),《囧妈》已经可以在PC端浏览器观看,但you-get似乎无法解析西瓜视频放映厅的视频


https://www.ixigua.com/i6785164824050401799/

手机访问就行,这个不是大问题

airdge avatar Feb 01 '20 05:02 airdge

在名字中有xgplayer_encrypt的js中,于f = window.Module.UTF8ToString(p)处可以获取到解密需要的key(f值)。 例如该视频的1080对应的视频流可以通过下面的命令解密,其中

  • 5e2ae64a565305ff54ac43760002004b是license接口返回的kid(也是视频文件本身的id,可以通过bento4的mp4dump工具查看到)
  • 824f9b328d264c10b148488fd5ccd40a是f的值
mp4decrypt.exe --key 5e2ae64a565305ff54ac43760002004b:824f9b328d264c10b148488fd5ccd40a media-video-avc1.mp4 decrypt.mp4

mp4decrypt.exe文件可于此下载。

~但如果像是《囧妈》这种只能在app播放的怎么办呢?~ 截至2020年2月1日4时(UTC+8),《囧妈》已经可以在PC端浏览器观看,但you-get似乎无法解析西瓜视频放映厅的视频


https://www.ixigua.com/i6785164824050401799/

手机访问就行,这个不是大问题

https://www.ixigua.com/cinema/album/85dS526nogC/ 《囧妈》这个我记得2020年1月30日(UTC+8)就已经能在 PC 浏览器上看了 而且到目前为止,我这儿获取到的播放链接一直就是未加密的

mengmo avatar Feb 01 '20 08:02 mengmo

那个是25号时app分享的链接,只能手机UA访问,并且西瓜视频api解析出来的数据是加密的

       tvid = '6785489916194193928'
       vid = 'v02004140000boleciimac2vul5c8dr0'

        isDash = 0
        try:
            acParams = (
                ("version_code", "8.2.1"),
                ("tma_jssdk_version", "1.29.1.1"),
                ("app_name", "video_article"),
                ("aid", "32"),
                ("ab_feature", "z1"),
                ("live_sdk_version", "1.3.0"),
                ("ac", "WIFI"),
                ("os_version", "12.2"),
                ("user_version", "4.2.1"),
                ("ssmix", "a"),
                ("device_platform", "iphone"),
                ("anti_addiction_model", "0"),
                ("ab_client", "a1,f2,f7,e1"),
                ("device_type", "iPhone SE"),
                ("itemID", tvid),
                ("prefix", "https://is.snssdk.com/video/app/article/full/"),
                ("category", "xg_search_inner"),
                ("commandID", "0"),
                ("aggrType", "1"),
                ("enter_type", "1"),
            )

            acUrl = "https://is-lq.snssdk.com/video/app/article/full/15/2/{0}/{0}/1/0/".format(
                tvid
            )
            getAccess = common.curl(
                acUrl,
                {
                    "method": "get",
                    "params": acParams,
                    "useragent": "Video 4.2.1 rv:4.2.1.4 (iPhone; iOS 12.2; zh_CN) Cronet",
                },
            ) 
            getJson = common.loads(getAccess)
            authToken = getJson["data"]["play_auth_token"]
            pToken = getJson["data"]["play_biz_token"]
        except:
            isDash = 1
            getToken = common.curl(
                "https://www.ixigua.com/api/videov2/video_token?_signature=&vid=%s&isDash=%s&isLVideo=0"
                % (vid, isDash)
            ) 
            getJson = common.loads(getToken)
            authToken = getJson["data"]["AuthToken"]
            pToken = getJson["data"]["BusinessToken"]

第一个api可以直接获取到未加密的1080P.MP4 但对于一些加密限制视频(https://www.ixigua.com/i6785164824050401799/) 无法解析不到ptoken和Authorization

第二个api获取到的是加密1080p.mp4,配合抖音api跳转未加密1080p.mp4

airdge avatar Feb 01 '20 08:02 airdge

补充 https://github.com/nilaoda/Blog/issues/17

xhlove avatar Feb 01 '20 16:02 xhlove

现在的头条接口好像不能获取1080P.mp4,只能获取到720P 1080P是dash格式,加密过的

    try:
        isDash = 0  # 1:dash , 0:mp4
        getToken = common.curl(
            "https://www.ixigua.com/api/videov2/video_token?_signature=&vid=%s&isDash=%s&isLVideo=0"
            % (vid, isDash)
        )
        getJson = common.loads(getToken)
        authToken = getJson["data"]["AuthToken"]
        pToken = getJson["data"]["BusinessToken"]

        headers = {
            "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:72.0) Gecko/20100101 Firefox/72.0",
            "Accept": "application/json, text/plain, */*",
            "Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
            "Authorization": authToken,
            "Origin": "https://www.ixigua.com",
            "Connection": "keep-alive",
            "Referer": "https://www.ixigua.com/",
        }

        params = (
            ("action", "GetPlayInfo"),
            ("video_id", vid),
            ("nobase64", "1"),
            ("ptoken", pToken),
            ("vfrom", "xgplayer"),
        )

        url = "https://vas.snssdk.com/video/openapi/v1/"
        html = common.curl(url, {"method": "get", "header": headers, "params": params})
        ....

    except:
        url = "http://i.snssdk.com/video/urls/1/toutiao/mp4/%s?nobase64=1" % vid
        html = common.curl(url)

图片

从《囧妈》的缓存内容来看应该是有办法能获取到整段视频的(但是也加密过)

toorich avatar Feb 02 '20 13:02 toorich

现在的头条接口好像不能获取1080P.mp4,只能获取到720P 1080P是dash格式,加密过的

    try:
        isDash = 0  # 1:dash , 0:mp4
        getToken = common.curl(
            "https://www.ixigua.com/api/videov2/video_token?_signature=&vid=%s&isDash=%s&isLVideo=0"
            % (vid, isDash)
        )
        getJson = common.loads(getToken)
        authToken = getJson["data"]["AuthToken"]
        pToken = getJson["data"]["BusinessToken"]

        headers = {
            "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:72.0) Gecko/20100101 Firefox/72.0",
            "Accept": "application/json, text/plain, */*",
            "Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
            "Authorization": authToken,
            "Origin": "https://www.ixigua.com",
            "Connection": "keep-alive",
            "Referer": "https://www.ixigua.com/",
        }

        params = (
            ("action", "GetPlayInfo"),
            ("video_id", vid),
            ("nobase64", "1"),
            ("ptoken", pToken),
            ("vfrom", "xgplayer"),
        )

        url = "https://vas.snssdk.com/video/openapi/v1/"
        html = common.curl(url, {"method": "get", "header": headers, "params": params})
        ....

    except:
        url = "http://i.snssdk.com/video/urls/1/toutiao/mp4/%s?nobase64=1" % vid
        html = common.curl(url)

图片

从《囧妈》的缓存内容来看应该是有办法能获取到整段视频的(但是也加密过)

部分加密视频好像是无法直接获取到1080p,不清楚有没其他api 配合抖音API可以解析1080P,不过要先确定该片源有没有1080P分辨率 从ptoken来看,信息是加密的

一般:{"exp":1580823937,"ver":"v1","ak":"bab42eac5b9e4a8eb25a91fc371ad533","sub":"pgc_1080p"} 
囧妈:{"exp":1580653162,"ver":"v1","ak":"cfc067bb39feff592af82085b42e6dc3","sub":"ixiguaweb_dash_encrypt_1min"}

从数据上看,api返回获取不到数据 图片

图片

airdge avatar Feb 02 '20 14:02 airdge

https://www.ixigua.com/cinema/album/7YryFjfa3PE/

https://aweme.snssdk.com/aweme/v1/play/?video_id=v02043ae0000bjhr6a4qs4su94hpa0e0&line=0&ratio=1080p&watermark=0

一部分影视数据,用抖音api获取不到的跳转链接

airdge avatar Feb 20 '20 10:02 airdge

哪位知道无水印接口怎么搞的, 能搞到的都是 /video/tos/hxsy/tos-hxsy-ve- 接口, 无水印接口 /video/tos/cn/tos-cn-v- 搞不到啊

hlyzh avatar Mar 09 '20 06:03 hlyzh

https://www.ixigua.com/cinema/album/7YryFjfa3PE/

https://aweme.snssdk.com/aweme/v1/play/?video_id=v02043ae0000bjhr6a4qs4su94hpa0e0&line=0&ratio=1080p&watermark=0

一部分影视数据,用抖音api获取不到的跳转链接

可能全部影视都不行了(悲)

toorich avatar Jul 17 '20 19:07 toorich

可以用这个接口(使用iPhone的UA访问):https://api-hl.amemv.com/aweme/v1/play/?video_id=v02004140000boleciimac2vul5c8dr0&ratio=1080p&watermark=0&h265=0

供参考

抖音API貌似搞不到2K和4K分辨率的视频?测试视频:https://www.ixigua.com/6785489916194193928/

toorich avatar Jul 17 '20 20:07 toorich

@hlyzh 你解决了吗

dcy0701 avatar Feb 03 '21 07:02 dcy0701

这个问题解决了吗

orestonce avatar Aug 07 '22 23:08 orestonce