Ascoware / get-iplayer-automator

The goal of Get iPlayer Automator is to allow iTunes and your Mac to become the hub for your British Television experience regardless of where in the world you are. Currently, Get iPlayer Automator allows you to download and watch BBC and ITV shows on your Mac. Series-Link/PVR functionality ensures you will never miss your favourite shows. Programmes are fully tagged and added to iTunes automatically upon completion. It is simple and easy to use, and runs on any machine running Mac OS X 10.7 or later. And since the shows are in iTunes, it is extremely easy to transfer them to your iPod, iPhone, or Apple TV allowing you to enjoy your shows on the go or on your television.
GNU General Public License v3.0
146 stars 26 forks source link

STV subtitles still missing for some programmes #456

Closed robincm closed 1 year ago

robincm commented 1 year ago

Tried downloading episodes from Six Four and Redemption from STV using GiA version 1.25.1 MacOS 12.6.5 Dowload appeared ok. All files put in iTunes media folder but instead of embedding subtitles as expected and progs being put in to TV app all I got was a "Download failed" message. Programmes can be imported manually but without subtitles so all the files seem to be complete. I have attached a verbose log and highlighted a short section saying ffprobe can't be found and needs to be installed. A couple of other programmes (can't remember which now) dowloaded perfectly complete with embedded subtitles. Any help would be much appreciated. Robin STV.doc STV.docx

eastcliffman commented 1 year ago

Is robincm the only person having this problem? I have just tried to download "Crime" from STV and all seemed to work well with the download but it never got transferred in to iTunes and the .srt file had 0bytes so even when I manually imported the .mp4 file there were no subtitles. STV Crime verbose log.docx

ian02054 commented 1 year ago

I have that as well, seems some At shows download fine, others, like crime have to be manually moved in..also, after the download, instead of being labeled as complete, Gia just says "downloaded 100%", and if not manually removed, will download again next time start is pressed.

On Fri, May 19, 2023, 11:28 eastcliffman @.***> wrote:

Is robincm the only person having this problem? I have just tried to download "Crime" from STV and all seemed to work well with the download but it never got transferred in to iTunes and the .srt file had 0bytes so even when I manually imported the .mp4 file there were no subtitles. STV Crime verbose log.docx https://github.com/Ascoware/get-iplayer-automator/files/11518321/STV.Crime.verbose.log.docx

— Reply to this email directly, view it on GitHub https://github.com/Ascoware/get-iplayer-automator/issues/456#issuecomment-1554754642, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEDRDZSIB7V3PISORGDLPN3XG6GQBANCNFSM6AAAAAAXH5XZTM . You are receiving this because you are subscribed to this thread.Message ID: @.***>

sleaux-meaux commented 1 year ago

Duplicate of #444. The fix mentioned there is trivial, but you would still need to rebuild GiA. For STV, it will probably be easier for now to use yt-dlp itself without GiA. Your log file shows the arguments you need to pass. Change --sub-format vtt to --sub-format dfxp/vtt for STV. You may also wish to remove -f best[height<=720] if you want to download 1080p video where it's available.

skovatch commented 1 year ago

Change --sub-format vtt to --sub-format dfxp/vtt for STV.

That doesn't help in this case. Using 'dfxp/vtt' downloads a dfxp file that ffmpeg rejects as invalid. This is most likely why I was limiting it to vtt format in the first place. If GiA detects that the embedding failed we could at least add the video to iTunes and consider it a partial success, which would be better than what we are doing now.

sleaux-meaux commented 1 year ago

Works fine here. I don't think it is possible for yt-dlp to route dfxp files to ffmpeg for conversion. If that's what you see, that's a different problem.

To anyone trying this at home: There is no guarantee dfxp subtitles will be available for a given programme. If not, --sub-format dfxp/vtt tells yt-dlp fall back to VTT, which it will route to ffmpeg for conversion to SRT. That will often fail due to limitations in ffmpeg (see #444). You may wish to add -k to your yt-dlp command in order to retain the raw dfxp or vtt file after download. That way, if conversion fails, you could try it yourself with an online convertor. BTW, dfxp is an XML format you may also see referred to as TTML.

skovatch commented 1 year ago

I think I can fix this by changing yt-dlp's arguments to --subformat dfxp/vtt --convert-subtitles srt and updating the internal copy of ffmpeg to v6.0 (it's currently 4.3.2) Doing all of that gets a successful download of Crime with subtitles correctly attached to the video.

sleaux-meaux commented 1 year ago

Which prompts a useful caveat for anyone experimenting with yt-dlp: use ffmpeg 5 or higher, and the latest you can find. When embedding subtitles in MP4 files, older ffmpeg versions (such as the one presently included with GiA) choke on the basically useless font face attributes that yt-dlp includes in the converted SRT subtitles. However, you would have to actively seek out such an obsolete version of ffmpeg, which you aren't likely to do.

robincm commented 1 year ago

All sorted with the latest release. Thanks Scott (and all the others who contribute) for all your work keeping things going.