{"record":{"id":"0e5c4dab07b84d7f","repo":"nilaoda/N_m3u8DL-RE","slug":"resstring-nostreamstodownload","errorCode":null,"errorMessage":"ResString.noStreamsToDownload","messagePattern":"ResString\\.noStreamsToDownload","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"src/N_m3u8DL-RE/Program.cs","lineNumber":319,"sourceCode":"else if (option.SubOnly)\n{\n    selectedStreams.AddRange(subs);\n}\nelse if (option.VideoFilter != null || option.AudioFilter != null || option.SubtitleFilter != null)\n{\n    basicStreams = FilterUtil.DoFilterKeep(basicStreams, option.VideoFilter);\n    audios = FilterUtil.DoFilterKeep(audios, option.AudioFilter);\n    subs = FilterUtil.DoFilterKeep(subs, option.SubtitleFilter);\n    selectedStreams = basicStreams.Concat(audios).Concat(subs).ToList();\n}\nelse\n{\n    // 展示交互式选择框\n    selectedStreams = FilterUtil.SelectStreams(lists);\n}\n\nif (selectedStreams.Count == 0)\n    throw new Exception(ResString.noStreamsToDownload);","sourceCodeStart":301,"sourceCodeEnd":337,"githubUrl":"https://github.com/nilaoda/N_m3u8DL-RE/blob/e113dee70c924ee08dae5460624909b04d84cb76/src/N_m3u8DL-RE/Program.cs#L301-L337","documentation":"Stream-selection step of DoWorkAsync: after applying --sub-only, stream filters (--vf/--af/--sf), or interactive selection, the selectedStreams list is empty, meaning no stream survived selection. This is a generic sentinel guard that treats 'nothing selected' as a fatal condition because the downloader has no media to process.","triggerScenarios":"Filter expressions exclude every stream (e.g. --vf 'lang=en' on a source without English video); --sub-only is used on a manifest with no subtitle tracks; the user aborts/cancels interactive selection resulting in zero selected streams.","commonSituations":"Typo or wrong syntax in filter expressions; assumptions about stream languages/quality that do not match the manifest; picking only subtitles from an audio/video-only manifest.","solutions":["Relax or correct the --vf/--af/--sf filter expressions so at least one stream matches","Omit --sub-only when subtitle-only output is not intended, or verify the source actually contains subtitles","Drop --drop/--select options that exclude all streams","Check the parsed stream list printed by the tool and re-run with correct language/codec filters"],"exampleFix":"If using --vf lang=en on a source with only zh streams, either remove the filter or change it: --vf lang=zh. For --sub-only on a manifest without subtitles, run without --sub-only.","handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["Inspect the stream table the tool prints before applying aggressive filters","Test filters on a small stream first","Avoid combining --sub-only with sources known to lack subtitle tracks"],"tags":[],"backgroundTag":null,"analyzedSha":"e113dee70c924ee08dae5460624909b04d84cb76","analyzedAt":"2026-09-13T02:43:21.078Z","contentChangedAt":"2026-09-13T02:43:21.078Z","schemaVersion":2},"datasetVersion":"2026-09-16T09:17:16.951Z"}