Here is a simple pythonic way to use biomart:
import pybiomart as pbm
dataset = pbm.Dataset(name='hsapiens_gene_ensembl', host="http://sep2019.archive.ensembl.org/")
annot = dataset.query(attributes=['chromosome_name', 'transcription_start_site', 'strand', 'external_gene_name', 'transcript_biotype'])
Below is how annot results look like:
Chromosome/scaffold nameTranscription start site (TSS) Strand Gene name Transcript type
MT 577 1 MT-TF Mt_tRNA
MT 648 1 MT-RNR1 Mt_rRNA
MT 1602 1 MT-TV Mt_tRNA
MT 1671 1 MT-RNR2 Mt_rRNA
MT 3230 1 MT-TL1 Mt_tRNA
... ... ... ... ... ...
chr1 228416627 -1 TRIM17 protein_coding
chr1 228416652 -1 TRIM17 protein_coding
... ... ... ... ... ...
Seems that DBTSS doesn't work!
You can find TSS for all transcripts of a given gene by querying Biomart
you can use bioconductor as shown in this post using Genomicanges https://support.bioconductor.org/p/46508/