Comments (9)
Hey @wangxu94!
That sounds a bit annoying. Definitely will try to add a better check/cleanup of those failed downloads. A couple questions that will help me track it down:
- Would you mind outputting the version number? Using
--version
should return it. - Does podcast-dl log a warning and/or delete the zero-byte file when this happens?
- If able, mind sharing one of the podcast feeds where you've seen this happen? Does it seem random?
from podcast-dl.
Thanks for replying!
- This happened on 4.1.1. I have just upgraded to 4.1.2 this morning so can't say for sure whether it happens on that version.
- It does not delete the zero-byte file. The meta.json file is written correctly. Unfortunately I don't know whether it logs a warning because I was running it on a cron job piped to /dev/null. I will write the output to a logfile now and get back to you if I see this happen again.
- I've seen this behaviour on multiple feeds, including a private patreon feed and a public podbean feed.
from podcast-dl.
Thanks a bunch for the info!
The script currently does a very simple check using fs.statSync
to determine the size and log an error if it's empty. My current guess is that it's behaving differently when running as a background task, but it's definitely something I would like to support.
Let me do some testing and see what I can find. ๐งช
from podcast-dl.
Ah yes, I see now that you do have a file size check. Thanks for looking into this, I'll report back with logs if I notice this behaviour again.
from podcast-dl.
Oh! Sorry, one more quick question: are you running it with the built binary or Node? If you're using Node 12 (either the binary or locally), I could package the script with Node 14. If it doesn't appear again it might be a bug in the OS-level hooks in Node 12.
Just another avenue to check! Let me know if you're interested.
from podcast-dl.
Hey sorry for the late reply! I am running the built binary.
EDIT: Also, looking more closely at the archive, it seems that when a download fails resulting in a zero-byte file, the meta.json file (which is written correctly) is written to the archive, but not the mp3 file. However this apparently still results in the file being skipped on subsequent runs.
from podcast-dl.
Ah! That's really interesting. It makes me think that the permissions around how the script is being run are preventing the empty files from being deleted on your system by the script, but it's good that they're not being written out to the archive when it's empty.
At the moment I don't think it is an issue with the archive check. The script by default will skip any local collisions, so if the next run of podcast-dl encounters one of the zero-byte files that haven't been cleaned up, it'll skip that download just because it sees it locally.
Since you're using --archive
, enabling the --override
flag as well might be a good solution if you're not able to figure out the permissions issue. The script will continue to skip items found in the archive but will write over those zero-byte files.
from podcast-dl.
I see. The folders are all owned by the user running the script, so I'm not sure why there would be a permissions issue. Thanks for suggesting the --override
flag though โ that should solve the problem for me.
Thanks for your help, and feel free to close this issue if there is nothing else on your end :)
from podcast-dl.
Cool! Glad that works out for now. Definitely let me know if you run into anything in the logs that doesn't look right.
Always happy to see someone using the script. ๐
from podcast-dl.
Related Issues (20)
- Archive re-downloading podcast imagery HOT 3
- Add date range examples HOT 2
- Automatically retry failed downloads HOT 3
- TypeError [ERR_INVALID_ARG_VALUE] HOT 3
- v8 Preparation & Discussion
- TimeoutError: Timeout awaiting 'request' for 5000ms HOT 6
- Proxy support HOT 2
- Strange duplication of directory names HOT 3
- A 0-byte archive file crashes podcast-dl HOT 2
- ERR_INVALID_URL HOT 3
- Unable to parse RSS URL Hostname/IP does not match certificate's altnames: Host: podiobooks.com. is not in the cert's altnames: DNS:scribl.com, DNS:www.scribl.com
- Option `episode-digits` has no effect on `episode-image` or `episode-meta` HOT 1
- Handling problematic feeds HOT 11
- Only downloads last 100 episodes HOT 2
- Support ffmpeg for more file types HOT 2
- Feature request: out-dir Templating options HOT 2
- Escape all metadata params passed into ffmpeg when using '--add-mp3-metadata' HOT 10
- Escape all metadata params passed into ffmpeg when using '--add-mp3-metadata HOT 1
- Feature Request: Download RSS podcast using Local RSS file HOT 3
- Can mp3/m4a files be downloaded from podcast links directly? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from podcast-dl.