• AnyStream is having some DRM issues currently, Netflix is not available in HD for the time being.
    Situations like this will always happen with AnyStream: streaming providers are continuously improving their countermeasures while we try to catch up, it's an ongoing cat-and-mouse game. Please be patient and don't flood our support or forum with requests, we are working on it 24/7 to get it resolved. Thank you.

How to mark Subtitles as forced?

Rincewind76

New Member
Thread Starter
Joined
Nov 22, 2021
Messages
3
Likes
2
Hello together,
using AnyStream 1.2.5.0 I can download a movie with embedded subtitles.
In the resulting file, all is fine, all subtitles appear.
Some tracks are actually forced subtitles - but after download they appear all as non-forced subtitles.
How can I mark subtitles as forced?

thanks and bye,
Rincewind76
 
Same. In my view forced is there without doing anything.


But in your player you must select it manually..


witch is a big pain in my view
 
You need to use mkvmerge to create the final file
and on the subtitle track you need to set it as "default" and "forced"
 
Thank you kaka32

I will do this

I believe this app should be able to it without 3 party apps though
 
Old issue and several threads already on it to research.

mkvmerge only works if you've already muxed it into a MKV container from the MP4 one AS creates.
That creates a different set of issues, like timed text subtitles aren't supported in a MKV so those have to be converted if you download them as embedded like I do.

I've been searching for some easy tool that I can just load in the MP4 from AS, click on the forced tag on the forced subtitle track and save it without reencoding it, re-containerizing it, or anything else, just a straight across streams copy plus one checkbox. Haven't found that magic app yet so hopefully it stays on the devs radar to implement. If it was an easy fix I'm sure @Pete would have already done it under one of those "many minor changes and fixes" that always show up in the changelog :)

Batch mode rocks !
 
update for 1.2.6.1 on forced subtitles

Actually went backwards from 1.2.5.1. Before (at least on NF) it would show available subtitle tracks as english, english forced, and english descriptive. now there's no english forced shown as a selection choice, just 2 english subtitle tracks and a 3rd english descriptive track.

Once downloaded on 1.2.6.1 both english tracks show up labeled as the same, one's not even labeled as forced anymore in the MP4 and still no forced flag on it.

Can we go back to identifying the forced subtitle track as forced in the download selection list before pulling it down and storing it titled that way even if it can't get the flag as such?

Thanks devs
 

Attachments

  • Screenshot 1.2.5.1.jpg
    Screenshot 1.2.5.1.jpg
    83.5 KB · Views: 8
  • Screenshot 1.2.6.1.jpg
    Screenshot 1.2.6.1.jpg
    85.2 KB · Views: 6
The MP4 container doesn't have a forced subtitles flag. The only thing that can be done is to have the track name indicate it should be forced.
mkvmerge can easily remux the file into an MKV container, but it can't handle timed text (the subtitles format used by MP4) directly.
Either have AS download the subtitles as non-embedded, or use a tool like "My MP4Box" to extract them as srt files, and use these files in the remux.

Since that is all so laborious to do every time, I just created a bash script to extract the subtitles and remux them and the original MP4 into an MKV files, setting the forced flag as necessary. Then I just feed it all the stuff I download.
 
Well, technically, since AS uses 'sbtl' 4CC, it's possible, but (a) it's way too much hassle when other things are more important and (b) who knows what outside QuickTime would actually render them properly:

Code:
https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap3/qtff3.html#//apple_ref/doc/uid/TP40000939-CH205-SW81
 
@DrXenos "The only thing that can be done is to have the track name indicate it should be forced"
That's exactly what I'm asking for, and that's how it worked up until 1.2.6.1. I've also figured out some workarounds to getting it placed in a new container and forced subtitles getting flagged as such. Not perfect but workable and I agree, devs have plenty to work on. This batch dl with subtitle intricacy seems to have become way more involved to implement than it would have seemed on the surface to a non-dev, lots of nuances.

If @Pete could restore it back to how it used to be displayed at dl time without breaking something else he's currently solving it would be great, at least I'd be back to knowing which sub is the forced one to pick. It showed in the dialogue to pick correctly and was also labeled that way, 'forced english' in the MP4 container
 

Attachments

  • Screenshot AS new subs dialog box.jpg
    Screenshot AS new subs dialog box.jpg
    67.2 KB · Views: 11
  • Screenshot AS old subs dialog.jpg
    Screenshot AS old subs dialog.jpg
    63 KB · Views: 11
  • Screenshot 1.2.5.1.jpg
    Screenshot 1.2.5.1.jpg
    83.5 KB · Views: 10
@DrXenos "The only thing that can be done is to have the track name indicate it should be forced"
That's exactly what I'm asking for, and that's how it worked up until 1.2.6.1. I've also figured out some workarounds to getting it placed in a new container and forced subtitles getting flagged as such. Not perfect but workable and I agree, devs have plenty to work on. This batch dl with subtitle intricacy seems to have become way more involved to implement than it would have seemed on the surface to a non-dev, lots of nuances.

Oh, are you saying that forced subtitles no longer have "forced" in the track name? Sorry, I misunderstood.
 
Batch download is not supporting forced subtitles it seems. If you download an entire season where only some episodes have forced subtitles, it will not provide them as an option to be selected at the beginning nor will it download them.
 
Batch download is not supporting forced subtitles it seems. If you download an entire season where only some episodes have forced subtitles, it will not provide them as an option to be selected at the beginning nor will it download them.
Maybe those episodes do not need them.
 
Maybe those episodes do not need them.

Some episodes have characters speaking other languages, so even if most episodes do not have forced subtitles, some will due to bad guys speaking in Russian, etc.
 
Last edited:
You can make Apple-compatible / QuickTime-compatible forced subtitles in an mp4 container with the Mac app "Subler".

1. Change the subtitle track's language to "Unknown Language"
2. Select the Sound track, and set Subtitles to "Subtitle Track - Unknown Language"
3. Select the subtitle track → "Visual Settings". Set "Forced" to "All Samples Are Forced" and "Forced Track" to "Subtitle Track - Unknown Language"

If anyone can find an automated way to do this (or a way that doesn't require a Mac), definitely let me know, but this is my process.
 
If it helps someone, I made a script to create a MKV container out of the recorded files and setting the subtitles with correct flags (no recoding necessary, super fast).
The script browses through all files in a directory and combines MP4 video/audio with the subtitles and setting the parameters right.

I am storing all episodes of one season in a separate folder, using the following naming template:
Code:
%p/%n/Season %s/%n_S%sE%e_%t
and select to store all subtitles as separate file (SRT format)

I have a linux PC, but it should also work with the Linux subsystem in Windows by installing the MKV Tools:
Code:
sudo apt-get install mkvtoolnix

Then create a script, e.g.
Code:
nano makevideo.sh

The insert the following code:
Code:
#!/bin/bash
# NOTE : Quote it else use array to avoid problems #

FILES="*.mp4"
mp4ext=".mp4"
outext=".mkv"
forcedsrt=".de.forced.srt"
standardsrt=".de.srt"

for f in $FILES
do
        filename=$(basename -- "$f")
        filename="${filename%.*}"
        output="$@$filename$outext"

        #check if forced subtitles exist
        if [ -f "$filename$forcedsrt" ]
        then
                #check if standard subtitles exist
                if [ -f "$filename$standardsrt" ]
                then
                        echo "found $filename with forced and standard subtitles"
                        mkvmerge -o "$output" "$filename$mp4ext" --forced-track "0:yes" --default-track "0:yes" --language "0:deu" "$filename$forcedsrt" --language "0:deu" "$filename$standardsrt"
                else
                        echo "found $filename with forced subtitles"
                        mkvmerge -o "$output" "$filename$mp4ext" --forced-track "0:yes" --default-track "0:yes" --language "0:deu" "$filename$forcedsrt"
                fi
        else
                #check if standard subtitles exist
                if [ -f "$filename$standardsrt" ]
                then
                        echo "found $filename with standard subtitles"
                        mkvmerge -o "$output" "$filename$mp4ext" --language "0:deu" "$filename$standardsrt"
                else
                        echo "found $filename with no subtitles"
                        mkvmerge -o "$output" "$filename$mp4ext"
                fi
        fi

done

If the language is not german, then you have to update the "de" and "deu" thingis to "en" and "eng"...

You can use the script then with:
Code:
./makevideo.sh [output directory]

The script makes it super easy to process a whole season in one step and storing it in the right directory.
Disclaimer: The scripts works for me - but I cannot guarantee that it works for you. So be prepared that your video is not useable, your filesystem gets erased or your cat getting pregnant...
 
Back
Top