Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature]限制下载视频的起始日期 #295

Closed
cloudkku opened this issue Jan 29, 2023 · 4 comments
Closed

[Feature]限制下载视频的起始日期 #295

cloudkku opened this issue Jan 29, 2023 · 4 comments
Assignees
Labels
需求建议(enhancement) 新功能或需求(New feature or request)

Comments

@cloudkku
Copy link

config.ini设置日期开始往后下载,之前的时间不下载

@cloudkku cloudkku added the 需求建议(enhancement) 新功能或需求(New feature or request) label Jan 29, 2023
@GTXT88
Copy link

GTXT88 commented Feb 25, 2023

可以在util文件夹的Download.py里加下面的代码来临时解决这个问题, 加在76行

      # 如果视频时间早于date_limit,不下载
      before_date = 你自己设置要什么最早日期,比如 “2022-1-20”
      date_format = "%Y-%m-%d %H.%M.%S"
      date_limit = datetime.strptime(before_date, "%Y-%m-%d")
      creat_date = datetime.strptime(creat_time, date_format)
      if creat_date < date_limit:
          continue

@akafanfan
Copy link

可以在util文件夹的Download.py里加下面的代码来临时解决这个问题, 加在76行

      # 如果视频时间早于date_limit,不下载
      before_date = 你自己设置要什么最早日期,比如 “2022-1-20”
      date_format = "%Y-%m-%d %H.%M.%S"
      date_limit = datetime.strptime(before_date, "%Y-%m-%d")
      creat_date = datetime.strptime(creat_time, date_format)
      if creat_date < date_limit:
          continue

不行啊 没有生效

@akafanfan
Copy link

akafanfan commented May 18, 2023

修改了一下代码解决了这个问题。

修改思路:

阅读了一下源码修改了一下代码。在源代码代码的py文件中,我没有用到配置文件的 interval 变量。可能用在其他的js文件中,我对js不熟悉,就针对py代码做下修改,其实在Command.py文件中的 def setting(self): 方法作者已经读取了conf.ini文件中的interval变量。为此我将在后续的逻辑处理中使用 interval变量,通过配置的时间和获取到的文件的时间进行对比。目前修改了视频下载模块的代码,图片下载模块同理。

修改过程:

conf.ini

# 必须指定时间了 开始时间,格式如下
interval = 2023-05-8 00.00.00

Profile.py

在这个Profile.py 中的def getProfile(self, param) 方法下 新增一行代码 self.interval = param[4] (大概在50行)

self.music = param[1]
self.mode = param[2]
#新增代码
self.interval = param[4]

Download.py

在Download.py 的 def VideoDownload(self, profileData)方法下,在第79行 获取到creat_time后,新增时间转换的代码

creat_time = Util.time.strftime(
	"%Y-%m-%d %H.%M.%S", Util.time.localtime(js['aweme_detail']['create_time']))
# 新增的代码
start_time = profileData.interval
date_format = "%Y-%m-%d %H.%M.%S"
start_data = Util.time.strptime(start_time, date_format)
creat_date = Util.time.strptime(creat_time, date_format)

然后继续往下看,下面会有一个检查视频下载情况的判断(大概在100行)
原逻辑调用Check.py下的方法进行检查文件是否已经下载过了。

# 源代码
file_state = self.check.test(self.path, creat_time, self.author_list[i], ".mp4", creat_date, start_data)

把上面新生成的两个变量creat_date和start_data也传入这个 test 方法中
修改后代码如下:

file_state = self.check.test(
                        self.path, creat_time, self.author_list[i], ".mp4", creat_date, start_data)

然后就要去修改Check.py的test方法


Check.py

在Check.py的test方法中去判断时间,新增方法的入参和判断逻辑。
当获取的视频创建的时间小于配置文件设置的起始时间时,返回True,否则再去执行原有的检查文件是否已经下载过逻辑。

def test(self, path, creat_time, file_name, file_type, creat_date, start_data):
	if creat_date < start_data:
		return True

	return Util.os.path.exists(path + creat_time + file_name + file_type)

@GTXT88
Copy link

GTXT88 commented Jul 3, 2023

可以在util文件夹的Download.py里加下面的代码来临时解决这个问题, 加在76行

      # 如果视频时间早于date_limit,不下载
      before_date = 你自己设置要什么最早日期,比如 “2022-1-20”
      date_format = "%Y-%m-%d %H.%M.%S"
      date_limit = datetime.strptime(before_date, "%Y-%m-%d")
      creat_date = datetime.strptime(creat_time, date_format)
      if creat_date < date_limit:
          continue

不行啊 没有生效

我这个早失效了Download.py文件之后已经被修改过很多次了

Johnserf-Seed added a commit that referenced this issue Dec 31, 2023
…#220 #223 #230 #242 #258 #260 #295 #312 #313 #320 #322 #332 #335 #341 # #343 #346 #348 #355 #357 #360 #361 #362 #364 #367 #370 #372 #373 #374 #376 #377 #379 #380 #381 #382 #383 #393 #394 #395 #396 #398 #399 #400 #401 #402 #403 #404 #405 #407 #408 #410 #412 #414 #416 #423 #424 #426 #432 #435 #438 #442 #443 #449 #450 #455 #456 #457 #459 #460 #465 #467 #470 #472 #473 #474 #475 #481 #482 #483 #488 #492 #493 #499 #502 #503 #504 #505 #507 #509 #512 #514 #524 #525 #530 #539 #540 #541 #547 #550 #554 #558 #563 #568 #569 #572 #574 #575 #576 #577 #578 #582 #583 #584 #587 #589 #590 #594 #595 #597 #598 #600 #601 #604 #605 #606 #608 #611 #617 #618 #619

[Added]
1. 新增了对直播间信息的详细获取和下载功能。
2. 添加详细直播间信息的下载支持。
3. 引入了提取评论的功能。
4. 新增支持下载 TikTok 数据,包括发布作品、喜欢作品、图集作品等。
5. 提供了自动生成 XB 参数的接口,支持真实和虚假的 msToken。
6. 引入接口数据过滤器,提高数据采集和处理效率。
7. 增加支持长短链解析的功能。
8. 新增了对合集作品的详细获取和下载功能。
9. 引入了 SSO 扫码登录和自动获取Cookie的功能,可通过 `--auto-cookie` 参数实现。

[Changed]
1. 优化了异步下载的网络并发数、超时重试设置,降低采集错误率。
2. 修改了文件检查逻辑,添加了黑名单选项,不再检查黑名单中的作品是否存在。(未来)
3. 对命令行交互进行了调整,添加了更多的配置选项,提供了更灵活的 CLI 模式。
4. 改进了版本更新机制,全新开发的 F2 现在依赖 pip 进行升级。
5. 对于多用户配置,现在可以为不同用户建立不同的配置与下载模式。

[Security]
1. 修复了可能导致信息泄露的漏洞。

[Deprecated]
1. 废弃了一些低版本接口的相关功能,建议使用更新的接口。

[Fixed]
1. 修复了一些在异步下载中可能导致的错误。
2. 修复了一些异步下载线程控制的错误。

[Removed]
1. 移除了不再支持的功能和接口。

[Documentation]
1. 更新了文档,提供了更详细的配置和使用说明。
2. 补充了开发者必读的内容,包括配置文件、调试日志级别等。
Johnserf-Seed added a commit to Johnserf-Seed/f2 that referenced this issue Jan 5, 2024
添加了新方法filter_aweme_datas_by_interval,可以对aweme_datas数据进行筛选。不在区间内退出轮询,已考虑到置顶作品时间的影响。

Johnserf-Seed/TikTokDownload#579

Johnserf-Seed/TikTokDownload#443

Johnserf-Seed/TikTokDownload#295
Johnserf-Seed added a commit to Johnserf-Seed/f2 that referenced this issue Jan 6, 2024
添加了新方法filter_aweme_datas_by_interval,可以对aweme_datas数据进行筛选。不在区间内退出轮询,已考虑到置顶作品时间的影响。

Johnserf-Seed/TikTokDownload#579

Johnserf-Seed/TikTokDownload#443

Johnserf-Seed/TikTokDownload#295
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
需求建议(enhancement) 新功能或需求(New feature or request)
Projects
None yet
Development

No branches or pull requests

4 participants