Skip to content

Tutorialwork/deutsche_bahn_api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deutsche Bahn Api

This is a small Python package to access the Deutsche Bahn timetables api. The timetable api is able to request the timetable of a specific station and access all dynamic changes on the timetable e.g. changed departure or arrival of the train, changed platform of arrival or a changed path of the train.

Setup

ApiAuthentication

Create a new ApiAuthentication class and pass to it the newly created client id and client secret. And test with the api.test_credentials() function if the api authentication works.

api_authentication = ApiAuthentication("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET")
success: bool = api.test_credentials()

Stations

To get the timetable of a specific train station you can use the name or lat and long values.

station_helper = StationHelper()
found_stations = station_helper.find_stations_by_lat_long(47.996713, 7.842174, 10)
found_stations_by_name = station_helper.find_stations_by_name("Freiburg")

Timetable

With the station object you are able to request the timetable from the station using the following code.

timetable_helper = TimetableHelper(station_helper, api_authentication)
trains_in_this_hour = timetable_helper.get_timetable()
trains_at_given_hour = timetable_helper.get_timetable(12)
trains_at_given_hour_tomorrow = timetable_helper.get_timetable(12, datetime.now() + timedelta(days=1)) # It's also possible to request the next day

This method returns you a list with all trains that are scheduled for departure at this station in the current hour. You can also pass the get_timetable() function the hour you want to request. Important this list don't contains delays, platform changes or changed stations. This can be achieved by using the get_timetable_changes() function and passing the list from the previous step.

trains_with_changes = timetable_helper.get_timetable_changes(trains)

About

This is a package to interact with the Deutsche Bahn timetables api

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages