Coder Social home page Coder Social logo

autofilm's People

Contributors

akimio521 avatar chenyanggao avatar lan-cliv avatar winnie0408 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

autofilm's Issues

请确保当前季度番剧文件夹存在

使用巴哈姆特动画疯Strm 出現下列問題
【INFO】2024-03-05 17:21:27,620 - bahastrm - Baha-Strm定时任务创建成功:*/20 22,23,0,1 * * *
【INFO】2024-03-05 17:21:27,621 - bahastrm - Baha-Strm服务启动,立即运行一次
【WARNING】2024-03-05 17:21:30,694 - bahastrm - 未获取到文件信息,3秒后重试 ...
【WARNING】2024-03-05 17:21:33,726 - bahastrm - 未获取到文件信息,3秒后重试 ...
【WARNING】2024-03-05 17:21:36,756 - bahastrm - 未获取到文件信息,3秒后重试 ...
【WARNING】2024-03-05 17:21:39,757 - bahastrm - https://aniopen.an-i.workers.dev/ 请确保当前季度番剧文件夹存在

Emby无法记录播放进度

通过Emby播放strm文件后无法记录播放进度,会直接标记为已播放,想请问一下你是否也遇到了这个问题。

get_config_value:Alist令牌token读取错误,默认 关闭,错误信息:'token'

setting:
output_path: ./media/ # 输出路径
l_threads: 3 # list_files线程数
p_threads: 8 # processing_file线程数
subtitle: True # 是否下载字幕
img: False # 是否下载图片
nfo: True # 是否下载视频信息文件
url_encode: True # 是否对生成的strm文件中的链接进行URL编码
webdav:
movie:
url: http://127.0.0.1:5244/dav/onedriver/movie/
username: admin
password: admin
我的alist没有设置token,在旧版本中,使用python3 autofilm.py --webdav_url http://127.0.0.1:5244/dav/onedriver/movie/ --username admin --password admin --output_path /opt/strm/ --nfo true --img true,这样是完全可以工作的。我不知道要怎么修改。

新的docker运行出错

docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/entrypoint.sh": stat /entrypoint.sh: no such file or directory: unknown.

python报错,请问你们lxml版本是多少?

zz@iStoreOS:/AutoFilm-1.0.1# python /mnt/-1/AutoFilm-1.0.1/main.py
Traceback (most recent call last):
File "/mnt/-1/AutoFilm-1.0.1/main.py", line 5, in
import autofilm
File "/mnt/-1/AutoFilm-1.0.1/autofilm.py", line 13, in
from webdav3.client import Client
File "/usr/lib/python3.10/site-packages/webdav3/client.py", line 12, in
import lxml.etree as etree
ModuleNotFoundError: No module named 'lxml.etree'
zz@iStoreOS:/AutoFilm-1.0.1# pip show lxml
Name: lxml
Version: 5.2.2
Summary: Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
Home-page: https://lxml.de/
Author: lxml dev team
Author-email: [email protected]
License: BSD-3-Clause
Location: /usr/lib/python3.10/site-packages
Requires:
Required-by: webdavclient3
root@iStoreOS:/mnt/-1/AutoFilm-1.0.1#

建议增加与本地对比

实际使用中发现的。大佬勿怪😁。
1,判断本地是否有.strm,有就跳过,没有就生成。或者增加跳过或覆盖模式。(增加效率)
2,判断图片和字幕与本地大小是否一致,一致就跳过,不一致就覆盖。(有些图片是0kb,图片损坏,需要手动删除,重新运行)
3,刮削完成后触发emby刷新库。(目前设定的每2小时刷库)

可以生成strm文件,但是不全

感谢这个小项目,用起来可以生成能使用的strm文件。但是文件夹嵌套的只能生成子文件夹的,在根目录的生成不了。
比如这种
image

上面的子文件夹可以识别生成,下面根文件夹的识别生成不出来。
解决办法只能再建一个文件夹把根文件夹下的零散的内容都塞到里面了么,还是能再优化下?

cannot import name 'TaskGroup' from 'asyncio'

Traceback (most recent call last):
File "/root/AutoFilm/main.py", line 5, in
import autofilm
File "/root/AutoFilm/autofilm.py", line 6, in
from modules import Alist2Strm
File "/root/AutoFilm/modules/init.py", line 1, in
from .Alist2Strm import Alist2Strm
File "/root/AutoFilm/modules/Alist2Strm.py", line 11, in
from alist import AlistFileSystem, AlistPath
File "/usr/local/lib/python3.10/dist-packages/alist/init.py", line 25, in
from asyncio import get_running_loop, run, TaskGroup
ImportError: cannot import name 'TaskGroup' from 'asyncio' (/usr/lib/python3.10/asyncio/init.py)

依赖包已安装,为啥还会出现这个错误?
python版本是3.10.7

docker存放位置错误

  1. docker运行时会将strm存放的base目录选定为docker内部的根目录,打印的日志缺没有问题,无论library_mode设置为True还是False。
    图片
    排查后发现这里在最后加上.lstrip("/")无论library_mode设置为True还是False都可以正常写入配置文件中output_dir所指定的位置。
  2. 多次观察到library_mode 设置为True 还是 False 最后输出的文件结构似乎是一样的,他们应该有什么不同?看源码文件是否应该平铺在output_dir路径下?平铺是否会涉及到文件名相同的情况,使用什么规则重命名?

目录问题

想咨询一下,这个脚本是不是不支持扫描子目录?
比如我的alist挂载云盘目录为:https://alist.example.com:666/dav/电视剧/**/2022 ,下面包含了狂飙、人世间两个子目录,运行后会报错:
Traceback (most recent call last):
File "D:\电影\autofilm.py", line 108, in
directory, files, count = list_files(args.webdav_url, args.username, args.password, args.show_path, depth=None, path='', count=0, proxies=proxies)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\电影\autofilm.py", line 41, in list_files
subdirectory, subfiles, count = list_files(webdav_url + item, username, password, depth=None if depth is None else depth - 1, path=path+item, count=count)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: list_files() missing 1 required positional argument: 'show_path'

但是当我改为:https://alist.example.com:666/dav/电视剧/**/2022/狂飙,则可以正常获取狂飙目录下的媒体信息并输出strm文件。

登录失败

正在执行主程序...
[2024-06-19 19:19:40,533][INFO]:当前的APP版本是:v1.1.1-2
[2024-06-19 19:19:40,533][INFO]:配置文件路径:/app/config/config.yaml
[2024-06-19 19:19:40,534][INFO]init:=================输出目录:/app/media==================
[2024-06-19 19:19:40,538][CRITICAL]_processer:登录失败,错误信息:401 Client Error: Unauthorized for url:

我保证我的账号和密码没有错误

整理刮削功能

建议根据alist中的视频文件,自动刮削整理分类成媒体库

本程序会计划做成docker吗

自行安装本程序有一定的难度,请问作者,有计划将本程序做成docker吗,这样NAS用户,都可以使用,会很方便的。

耗费服务器吗

我的服务器是1g/40g轻量云服务器,如果这样是emby边看边缓存,受服务器带宽限制,是否可以让他直接从alist获取播放链接直接播放

最新版docker 报错

错误信息

autofilm  | 正在执行主程序...
autofilm  | [2024-06-10 22:06:18,569][INFO]<module>:当前的APP版本是:v1.1.0
autofilm  | [2024-06-10 22:06:18,569][INFO]<module>:配置文件路径:config/config.yaml
autofilm  | [2024-06-10 22:06:18,571][ERROR]__init__:配置文件/app/config/config.yaml读取错误,错误信息:'output_dir'
autofilm  | Traceback (most recent call last):
autofilm  |   File "/app/main.py", line 20, in <module>
autofilm  |     my_autofilm = autofilm.AutoFilm(config_path=args.config_path)
autofilm  |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
autofilm  |   File "/app/autofilm.py", line 56, in __init__
autofilm  |     logging.info(f"输出目录:{self.output_dir}".center(50, "="))
autofilm  |                               ^^^^^^^^^^^^^^^
autofilm  | AttributeError: 'AutoFilm' object has no attribute 'output_dir'
autofilm  | 等待 3600 秒后再次执行...

config 配置文件内容

Settings:
  output_path: /opt/dockge/stacks/autofilm/media       # ./media    # 输出路径尝试过相关路径与绝对路径,都报这个错误
  subtitle: True            # 是否下载字幕
  img: False                # 是否下载图片
  nfo: True                 # 是否下载视频信息文件

AlistServerList:
  - id: X                                   
    url: "https://alist.example.com"
    username: alist
    password: "password"
    base_path: /xunlei-1/media

输出目录问题

[2024-07-05 10:57:43,228][INFO]:当前的APP版本是:v1.1.1-2
[2024-07-05 10:57:43,228][INFO]:配置文件路径:/app/config/config.yaml
[2024-07-05 10:57:43,230][INFO]init:=================输出目录:/data/media=================
[2024-07-05 10:57:43,230][DEBUG]run:Alist服务器加载成功

[2024-07-05 10:58:04,662][DEBUG]_file_process:The.Last.Kingdom.S01E02.1080p.BluRay.REMUX.AVC.DTS-HD.MA.5.1-NOGRP.srt下载成功,文件本地目录:/欧美剧/孤国春秋/孤国春秋S01
[2024-07-05 10:58:04,662][DEBUG]_file_process:Mad.Max.1979.2160p.BluRay.REMUX.HEVC.DTS-HD.MA.5.1-FGT.srt下载成功,文件本地目录:/Movie/疯狂的麦克斯1 4K REMUX (1979)
[2024-07-05 10:58:04,663][DEBUG]_file_process:疯狂的麦克斯4 1080P REMUX.ass下载成功,文件本地目录:/Movie/疯狂的麦克斯4 4K REMUX(2015)

使用docker部署,请问config.yaml配置的输出目录output_dir,对应的是docker容器的目录还是宿主机的目录,现在把文件放到了容器的根目录

请求添加同步删除参数

webdav删除后的文件夹后, 以相同参数再次运行, 原先已有的.strm .nfo 图片等文件不会同步删除

docker akimio/autofilm:Dev-20240707运行报错,latest版登录失败

Dev-20240707 报错如下
正在执行主程序...
[2024-07-08 01:23:14,095][INFO]:当前的APP版本是:v1.1.2-2
[2024-07-08 01:23:14,095][INFO]:配置文件路径:/config/config.yaml
[2024-07-08 01:23:14,100][INFO]init:===================输出目录:/media====================
[2024-07-08 01:23:14,100][DEBUG]run_Alist2Strm:Alist服务器加载成功
[2024-07-08 01:23:14,101][DEBUG]load_ssl_context:load_ssl_context verify=True cert=None trust_env=True http2=False
[2024-07-08 01:23:14,102][DEBUG]load_ssl_context_verify:load_verify_locations cafile='/usr/local/lib/python3.12/site-packages/certifi/cacert.pem'
[2024-07-08 01:23:14,128][DEBUG]trace:connect_tcp.started host='192.168.2.174' port=5244 local_address=None timeout=5 socket_options=None
[2024-07-08 01:23:14,130][DEBUG]trace:connect_tcp.complete return_value=<httpcore._backends.sync.SyncStream object at 0x7f6bb24cfd70>
[2024-07-08 01:23:14,131][DEBUG]trace:send_request_headers.started request=<Request [b'POST']>
[2024-07-08 01:23:14,131][DEBUG]trace:send_request_headers.complete
[2024-07-08 01:23:14,131][DEBUG]trace:send_request_body.started request=<Request [b'POST']>
[2024-07-08 01:23:14,131][DEBUG]trace:send_request_body.complete
[2024-07-08 01:23:14,131][DEBUG]trace:receive_response_headers.started request=<Request [b'POST']>
[2024-07-08 01:23:14,134][DEBUG]trace:receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'Content-Type', b'application/json; charset=utf-8'), (b'Date', b'Sun, 07 Jul 2024 17:23:14 GMT'), (b'Content-Length', b'255')])
[2024-07-08 01:23:14,135][INFO]_send_single_request:HTTP Request: POST http://192.168.2.174:5244/api/auth/login/hash "HTTP/1.1 200 OK"
[2024-07-08 01:23:14,135][DEBUG]trace:receive_response_body.started request=<Request [b'POST']>
[2024-07-08 01:23:14,135][DEBUG]trace:receive_response_body.complete
[2024-07-08 01:23:14,135][DEBUG]trace:response_closed.started
[2024-07-08 01:23:14,136][DEBUG]trace:response_closed.complete
Traceback (most recent call last):
File "/app/main.py", line 29, in
my_autofilm.run_Alist2Strm()
File "/app/autofilm.py", line 74, in run_Alist2Strm
alist2strm = Alist2Strm(
^^^^^^^^^^^
File "/app/modules/alist2strm.py", line 63, in init
self.base_dir = client.fs.abspath(base_dir)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/alist/component/fs.py", line 2637, in abspath
path = fspath(path)
^^^^^^^^^^^^
TypeError: expected str, bytes or os.PathLike object, not NoneType
等待 3600 秒后再次执行...

用docker部署后,运行没有报错,但是没有生成strm文件

你好,不好意思麻烦帮忙看下哪里设置的有问题,谢谢!

config.yaml配置文件如下:

Settings:
  output_dir: media         # 输出路径
  subtitle: False             # 是否下载字幕
  img: False                # 是否下载图片
  nfo: False                  # 是否下载视频信息文件
  library_mode: False       # 媒体库模式

AlistServerList:
  - id: 视频115                       # 任意字符,用于标识Alist服务器
    url: http://192.168.0.100:35244   # Alist服务器URL
    username: admin                  # Alist账号
    password: admin               # Alist密码
    base_path: /115/video/     # Alist服务器上文件夹路径 
    token:       
    async_mode: False                # 设置 subtitle,img,nfo 等二进制文件是否启用异步下载
    overwrite: False # AList未启用签名时,设置为空字符串

日志信息如下:

<html>
<body>
<!--StartFragment-->
2024/06/30 21:18:32 | stdout | 等待 3600 秒后再次执行...
-- | -- | --
2024/06/30 21:18:31 | stdout | [2024-06-30 21:18:31,627][INFO]__init__:=================输出目录:/app/media==================
2024/06/30 21:18:31 | stdout | [2024-06-30 21:18:31,620][INFO]<module>:配置文件路径:/app/config/config.yaml
2024/06/30 21:18:31 | stdout | [2024-06-30 21:18:31,620][INFO]<module>:当前的APP版本是:v1.1.1-2
2024/06/30 21:18:30 | stdout | 正在执行主程序...

<!--EndFragment-->
</body>
</html>

然后我在挂载的media文件夹里没有发现任何文件,通过终端进入docker内部,在/app/media下面也没有任何文件生成。
请问下我这个有什么问题吗,请指教下,谢谢!

没有列出错误日志,也没有生成strm

本地指定目录里面一直没有生成strm文件
autofilm | 正在执行主程序... autofilm | [2024-05-11 16:40:58,276][INFO]<module>:当前的APP版本是:v1.0.1 autofilm | [2024-05-11 16:40:58,277][INFO]<module>:配置文件路径:config/config.yaml autofilm | [2024-05-11 16:40:58,279][INFO]__init__:输出目录:/opt/media/;list_files线程数:3;processing_file线程数:8 autofilm | [2024-05-11 16:40:58,279][INFO]run:开始生成[迪士尼动漫]Webdav服务器的Strm文件;剩余0个Webdav服务器未进行 autofilm | [2024-05-11 16:40:58,280][WARNING]get_config_value:Alist令牌token读取错误,默认关闭,错误信息:'token'

但是我并没有填写token,这个是固定报错的,后面没有任何日志内容了,也没有生成strm文件

关于目录格式不能够进行媒体库扫描

如果我添加了超过1个的WEBDAV地址,比如
webdav:
movie:
url: http://127.0.0.1:5244/dav/onedriver/movie/
username: admin
password: x
show:
url: http://127.0.0.1:5244/dav/onedriver/show/
username: admin
password: x
然后他的目录格式就会变成
image
只有奇怪的格式。这样在jellyfin扫描的时候,就无法分开了啊。就会被嵌套扫描。不能够每一个webdav地址都可以指定输出到某一个文件夹么。还是有我不知道的写法,我在论坛没有找到相关配置。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.