当前位置:   article > 正文

今日头条视频下载器[android下载源码]_utm_medium=toutiao_android&utm

utm_medium=toutiao_android&utm

在家无聊,看到赵四大神 写的一个python脚本下载今日头条的工具,最后他还给出了移动端的样子,可惜没有源码,在他的虚心教导下,看完了他的文章,我决定自己撸一个,见笑了:
这里写图片描述 这里写图片描述

CSDN图片最大值只能传2m,所以用了两张gif图,大家见笑了。
下面说一下具体的实现过程,这一点说实在,基本上是翻译了赵大神 的文章,没啥要说,但是还是记录一下吧。

具体的实现步骤大概可以用下的思路概括:
这里写图片描述

说得挺高上,其实实现起来还是蛮简单的。

1.分享代码如下,主要是activity的intent配置,这个一般人都知道,我就简单贴一下:

  <activity
            android:name=".MainActivity"
            android:configChanges="orientation|screenSize|keyboardHidden"
            android:screenOrientation="portrait">

            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>

            //----------------------分享关键代码------------------------------
            <intent-filter>
                <action android:name="android.intent.action.SEND"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <data android:mimeType="image/*"/>
            </intent-filter>

            <intent-filter>
                <action android:name="android.intent.action.SEND"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <data android:mimeType="text/plain"/>
            </intent-filter>

            <intent-filter>
                <action android:name="android.intent.action.SEND_MULTIPLE"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <data android:mimeType="image/*"/>
            </intent-filter>
        </activity>
        //----------------------分享关键代码------------------------------
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

在activity中,我们接收:

if (null != getIntent()) {
            String extra_text = getIntent().getStringExtra(Intent.EXTRA_TEXT);
            Log.d(TAG, "the extra text is " + extra_text);

            if (!TextUtils.isEmpty(extra_text)) {
                Pattern p = Pattern.compile("[a-zA-z]+://[^\\s]*");
                Matcher matcher = p.matcher(extra_text);
                if (matcher.find()) {
                    mBaseUrl = matcher.group();
                    Log.d(TAG, "the target url -->>" + mBaseUrl);
                }
            }
        }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

主要是分享的代码像这样的:

【再牛比的美国人也怕开挂的印度阿三,在阿三外挂面前都是弱鸡】
http://m.pstatp.com/group/6382357464158831106/?iid=7548236297&app=news_article&tt_from=android_share&utm_medium=toutiao_android&utm_campaign=client_share
(想看更多合你口味的内容,马上下载 今日头条)
http://app.toutiao.com/news_article/?utm_source=link
  • 1
  • 2
  • 3
  • 4

所以需要用正则切一下,把关键的网址请求出来:

http://m.pstatp.com/group/6382357464158831106/?iid=7548236297&app=news_article&tt_from=android_share&utm_medium=toutiao_android&utm_campaign=client_share
  • 1

2.网络请求框架是okhttp3
为啥用ok3呢?这主要是抓包的过程中发现了我们搞的地址,会重定向很多次,像这样的:

这里写图片描述
本来是打算自己写个HttpUrlConnection,或是使用Volley,但是发现处理这种多次的301,302不是特别方便,所以就使用了sequre的ok3,比较爽。具体的步骤,需要请求哪些参数,大家可以去看看赵四大神的文章,写的很清楚,虽然是python写的,相信大家能看懂。

  1. crc32算法
    这个我当初感觉很难写,没想到java大法内部自带了,很不错有没有:
String temp = "hello world";
CRC32 crc32 = new CRC32();
crc32.update(temp.getBytes());
Log.d(TAG, "crc32 code : " + crc32.getValue()));
  • 1
  • 2
  • 3
  • 4

就是这么简单

4.视频播放软件
这个是采用的gitbub上的一个知名软件jiecao,网址是https://github.com/lipangit/JieCaoVideoPlayer, 大家可以看看,蛮不错的一款视频播放软件,都是开源的,越来越屌啊 希望它。

5.侧滑播放,删除
这个不说了,RecyclerView中,比较多的,也就不说了,大家看源码就行了。

6.源码
源码是这个:http://download.csdn.net/detail/u013762572/9746448
app_debug版本在这里:http://download.csdn.net/detail/u013762572/9746736,比较小,我也就懒得存了,大家喜欢可以看看。好了,今天第一天上班又加班了,我要回家吃饭了,谢谢。。。。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/160197
推荐阅读
相关标签
  

闽ICP备14008679号